ELK:Nginx日志记录
目的
- 目的:需要统计推广带来的转化效果
- 思路:通过统计 Nginx 日志,来分析不同渠道带来的访问量的变化。(可能再通过新增用户比去计算下转化率,不确定是不是需要这个值)
技术方案
- 修改 Nginx 日志格式为JSON ,通过 Qbus 收集 Nginx 的访问日志到消息队列。再使用 Logstash 同步到 ES 中;接着创建 Kibana 索引查询模板,筛选展示数据
- Qbus
- Elasticsearch
- Kibana
- Logstash
- Nginx 日志
修改 Nginx 日志格式
日志格式修改 是为了 Logstash 同步方便,可以自动创建索引 mapping 。 在Hulk 平台修改配置。
1 | log_format logstash '{"@timestamp":"$time_iso8601",' |
日志收集
Qbus 日志收集服务:本质上还是使用 Logstash 收集 Nginx 日志文件,导入到 kafka
- 指定收集路径,日志量,保留期限
- 指定生产机
- 指定消费机
日志同步到ES
使用 Logstash 同步;kafka 做 Input , ES 做 Output;
- logstash 2.4 -> logstash 5.0 + ; 配置项有修改:文档
1 | [root@p34108v baqianxin]# cat /home/logstash/jiagu_nginx_log.conf |
Kibana 筛选展示
- 按照来源IP 转换为坐标信息统计区域热力图
- 按照访问地址 统计访问量最大的接口或页面
- 按照每小时日志量来判断高峰期出现情况
- …….
创建查询索引;具体使用查阅 (kibana 官方文档)[https://www.elastic.co/guide/en/kibana/index.html]
问题记录
问题1:input-kafka 配置项错误
1 | [baqianxin@p34108v ~]$ /usr/share/logstash/bin/logstash -f ~/jiagu_nginx_log.conf |
问题2:logstash 常见自定义索引模板,需要根据版本修改模板内容
1 | { |