log文件

centos7 部署 ELK 日志系统

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-28 11:15:52
转载:棕先生 =============================================== 2017/12/24_第3次修改 ccb_warlock 更新说明: 1.2017/12/24:补全部署内容 2.2017/12/25:修改部署存在的问题,修改描述不合理的内容 =============================================== ELK(elasticsearch、logstash、kibana)可以作为日志收集及分析的一整套系统,通过阿里的普及也有越来越多的公司在使用,使用下来功能还可以,这里整理记录一个部署手册。 为了方便,将ELK都部署在一台os里。 一、环境准备 操作系统:centos7(CentOS-7-x86_64-Minimal-1708) CPU:1核 内存:4G 可以在你的windows上安装Bitvise SSH Client远程执行命令行和传输文件。 1.1 安装vim、wget yum install -y vim wget 二、安装Java环境 根据官方的描述, Elasticsearch要求是java8以上。 Logstash要求是Java 8,不支持Java 9。 官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8

Hive_基于Hive的网站日志分析

馋奶兔 提交于 2019-12-28 07:47:43
文章目录 概述 1. 引出需要进行数据预处理的必要性[→](#toc) 2. 使用RegexSerDe处理apache或者ngnix日志文件[→](#toc) 3. 根据不同业务拆表[→](#toc) 3.1 需求分析 3.2 拆表 4. 数据清洗[→](#toc) 4.1 Hive自定义函数的方式 4.2 UDF去除数据双引号 4.3 UDF转换日期时间格式 5. 编写hql分许数据[→](#toc) 5.1 分析用户访问网站的时间段 5.2 分析用户的ip地址 总结 概述 本文将基于Hive数据仓库工具对一份网站日志进行数据分析,包括分析IP地址。包括在插入数据时使用正则表达式对日志文件进行预处理、利用UDF进行数据清洗、使用ORC格式存储和SNAPPY压缩等。 1. 引出需要进行数据预处理的必要性 → 原日志文件的字段信息统计如下,总共11个字段: 日志文件中信息展示: "27.38.5.159" "-" "31/Aug/2015:00:04:37 +0800" "GET /course/view.php?id=27 HTTP/1.1" "303" "440" - "http://www.ibeifeng.com/user.php?act=mycourse" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36

nginx日志配置指令详解

纵饮孤独 提交于 2019-12-28 07:22:26
这篇文章主要介绍了nginx日志配置指令详解,nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,需要的朋友可以参考下 日志对于统计排错来说非常有利的。本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。 nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。ngx_http_log_module是用来定义请求日志格式的。 1. access_log指令 语法: access_log path [format [buffer=size [flush=time]]]; 复制代码 代码如下: access_log path format gzip[=level] [buffer=size] [flush=time]; access_log syslog:server=address[,parameter=value] [format]; access_log off; 默认值: access_log logs/access.log combined; 配置段: http, server, location, if in

nginx日志配置指令详解

允我心安 提交于 2019-12-28 07:22:09
nginx 日志配置指令详解 日志对于统计排错来说非常有利的。本文总结了 nginx 日志相关的配置如 access_log 、 log_format 、 open_log_file_cache 、 log_not_found 、 log_subrequest 、 rewrite_log 、 error_log 。 nginx 有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过 log_format 命令来定义。 ngx_http_log_module 是用来定义请求日志格式的。 1. access_log 指令 语法 : access_log path [format [buffer=size [flush=time]]]; access_log path format gzip[=level] [buffer=size] [flush=time]; access_log syslog:server=address[,parameter=value] [format]; access_log off; 默认值 : access_log logs/access.log combined; 配置段 : http, server, location, if in location, limit_except gzip 压缩等级。 buffer

移动开发:APP定位过于频繁,我用这种方式“揪出元凶”!

℡╲_俬逩灬. 提交于 2019-12-28 00:56:08
背景 定位现在是很多APP最基本也不可或缺的能力之一,尤其是对打车、外卖之类的应用来说。但对定位的调用可不能没有节制,稍有不慎可能导致设备耗电过快,最终导致用户卸载应用。 笔者所在项目是一个在后台运行的APP,且需要时不时在后台获取一下当前位置,再加上项目里会引入很多合作第三方的库,这些库内部同样也会有调用定位的行为,因此经常会收到测试的反馈说我们的应用由于定位过于频繁导致耗电过快。 排查这个问题的时候,笔者首先排除了我们业务逻辑的问题,因为项目中的各个功能模块在定位时调用的是统一封装后的定位模块接口,该模块中由对相应的接口做了一些调用频率的统计和监控并打印了相关的log语句, 而问题log中跟定位相关的log语句打印频率跟次数都是在非常合理的范围内。 这时我才意识到频繁定位的罪魁祸首并不在我们内部,而是第三方库搞的鬼。 那么问题来了,引入的第三方库那么多,我怎么知道谁的定位调用频率不合理呢? 虽然我在项目中的公共定位模块中打了log,但问题是第三方库可调不到我们内部的接口。 那么我们能不能到更底层的地方去埋点统计呢? AOP AOP,即面向切面编程,已经不是什么新鲜玩意了。 就我个人的理解,AOP就是把我们的代码抽象为层次结构,然后通过非侵入式的方法在某两个层之间插入一些通用的逻辑,常常被用于统计埋点、日志输出、权限拦截等等,详情可搜索相关的文章,这里不具体展开讲AOP了。

MySQL入门(二)

故事扮演 提交于 2019-12-27 23:44:18
1. MySQL 架构 1.1 逻辑架构图 1.1.1 Connection Pool: 连接池 * 管理缓冲 用户连接 , 线程处理 等需要缓存的需求。 * 负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到 线程管理模块 。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。 * 而 连接线程 的主要工作就是负责 MySQL Server 与客户端的通信,接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的 cache 等。 1.1.2 Parser: 解析器 * SQL 命令传递到解析器的时候会被解析器 验证和解析 。 主要功能: a . 将 SQL 语句进行 语义和语法的分析,分解成数据结构 ,然后按照 不同的操作类型进行分类, 然后做出针对性的转发到后续步骤,以后 SQL 语句的传递和处理就是基于这个结构的。 b. 如果在分解构成中遇到错误,那么就说明这个 sql 语句是不合理的 1.1.3 Optimizer: 查询优化器 * SQL 语句在查询之前会 使用查询优化器对查询进行优化 。 * 它使用的是“ 选取 - 投影 - 联接 ”策略进行查询。 用一个例子就可以理解: select uid,name from user

Apache深度优化

泄露秘密 提交于 2019-12-27 19:36:30
博文大纲: Apache深度优化 一、开启apache的Gzip(deflate)功能 二、开启expires缓存功能 三、禁止Apache进行目录遍历 四、隐藏apache的版本信息 五、apache日志切割 六、配置防盗链 一、开启Apache的Gzip(deflate)功能 gzip 可以极大的加速网站, 有时压缩比率高到 80%,最少都有 40%以上, 还是相当不错的。 在 Apache2 之后的版本, 模块名不叫 gzip,而叫 mod_deflate 如果要开启apache的压缩功能,需要在编译安装apache时,增加“--enable-deflate”配置项,并且必须在主配置文件中打开下面两个模块: LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so 注意:如果在编译安装时,没有增加“--enable-deflate”选项,可以使用DSO方式安装此功能,如下: [root@www ~]# cd /root/httpd-2.4.23/modules/filters/ #切换至apache 源码包 mod_deflate 所在的目录下 [root@www ~]# /usr/local/http-2.4.23/bin/apxs -c

mysql日志详细解析

£可爱£侵袭症+ 提交于 2019-12-27 19:21:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> MySQL 日志: 主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志; 日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。 错误日志 在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。默认情况下,错误日志存储在mysql数据库的数据文件中。错误日志文件通常的名称为hostname.err。其中,hostname表示服务器主机名。 错误日志信息可以自己进行配置的,错误日志所记录的信息是可以通过log-error和log-warnings来定义的,其中log-err是定义是否启用错误日志的功能和错误日志的存储位置,log-warnings是定义是否将警告信息也定义至错误日志中。默认情况下错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中的信息(未必是错误信息,如mysql如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、服务器运行过程中的错误信息、事件调度器运行一个事件时产生的信息、在从服务器上启动服务器进程时产生的信息。

Delta Lake源码分析

China☆狼群 提交于 2019-12-27 18:05:05
目录 Delta Lake源码分析 Delta Lake元数据 snapshot生成 日志提交 冲突检测(并发控制) delete update merge Delta Lake源码分析 Delta Lake元数据 delta lake 包含Protocol、Metadata、FileAction(AddFile、RemoveFile)、CommitInfo和SetTransaction这几种元数据action。 Protocol:这是delta lake自身的版本管理,一般只出现在第一次的commit日志里(之后版本升级应该也会有); Metadata:存储delta表的schema信息,第一次commit和每次修改schema时出现,以最后一次出现的为准; FileAction:文件的相关操作,delta lake的文件操作只有添加文件和删除文件; CommitInfo:保存关于本次更改的原始信息,如修改时间,操作类型,读取的数据版本等; SetTransaction:设置application的提交版本,一般用于流式计算的一致性控制(exactlyOnce)。 //初始的commit log会包含protocol和metaData的信息 {"commitInfo":{"timestamp":1576480709055,"operation":"WRITE",

MySQL复制原理

蹲街弑〆低调 提交于 2019-12-27 17:48:19
mysql从3.23开始提供复制功能,复制指将主库的ddl和dml操作通过binlog文件传送到从库上执行,从而保持主库和从库数据同步。mysql支持一台主库同时向多台从库复制,从库同时也可以作为其他从库的主库,从而实现级联复制功能。mysql复制功能相当于oracle数据库的逻辑dg功能。 mysql复制原理大致如下: 1)mysql主库事务提交时会把数据变更作为event记录在binlog文件中,mysql主库的sync_binlog参数控制binlog日志刷新到磁盘。 2)主库推送binlog中的event到从库的中继日志relay log中,之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到与主库同步的目的。 mysql通过3个线程完成复制功能:其中binlog dump线程跑在主库上,io线程和sql线程跑在从库上。当从库启动复制(start slave)时,首先创建io线程连接主库,主库随后创建binlog dump线程读取event发送给io线程,io线程获取到event后更新到从库中继日志relay log中,之后从库sql线程根据relay log内容在从库从做操作。从而完成mysql复制功能。mysql复制结构如图: 主库通过show processlist命令可以看到binlog dump进程,如下: mysql> show processlist \G