注意:修改配置后建议重新创建index

1、nginx 日志文件格式

1
2
3
log_format elk "$http_clientip | $http_x_forwarded_for | $time_local | $request | $status | $body_bytes_sent | "
 "$request_body | $content_length | $http_referer | $http_user_agent | "
 "$http_cookie | $remote_addr | $hostname | $upstream_addr | $upstream_response_time | $request_time";

2、logstash nginx 服务器上的配置文件 agent.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
input {  
        file {  
                type => "elk_frontend_access"  
                path => ["/data/logs/flight1-access_log"]  
        }
}  
filter {
ruby {
init => "@kname = ['http_clientip','http_x_forwarded_for','time_local','request','status','body_bytes_sent','request_body','content_length','http_referer','http_user_agent','http_cookie','remote_addr','hostname','upstream_addr','upstream_response_time','request_time']"
code => "new_event = LogStash::Event.new(Hash[@kname.zip(event.get('message').split('|'))])
new_event.remove('@timestamp')
event.append(new_event)"
}
if [request] {
ruby {
init => "@kname = ['method','uri','verb']"
code => "new_event = LogStash::Event.new(Hash[@kname.zip(event.get('request').split(' '))])
new_event.remove('@timestamp')
event.append(new_event)
"
}
if [uri] {
ruby {
init => "@kname = ['url_path','url_args']"
code => "new_event = LogStash::Event.new(Hash[@kname.zip(event.get('uri').split('?'))])
new_event.remove('@timestamp')
event.append(new_event)
"
}
kv {
prefix => "url_"
source => "url_args"
field_split => "& "
remove_field => [ "url_args","uri","request" ]
}
}
}
mutate {
convert => ["body_bytes_sent" , "integer", "content_length", "integer", "upstream_response_time", "float","request_time", "float"]
}
date {
match => [ "time_local", "dd/MMM/yyyy:hh:mm:ss Z" ]
locale => "en"
}
        grok {
        match => { "message" => "%{IP:clientip}" }
  }
        geoip 
{
        source => "clientip"
        }
}
output {
        redis {  
                host => "10.10.45.200"  
                data_type => "list"  
                key => "elk_frontend_access:redis"  
                port=>"5379"  
        }  
}

3、logstash elk服务器上的配置文件server.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
input {  
        redis {  
                host => "10.10.45.200"  
                data_type => "list"  
                key => "elk_frontend_access:redis"  
                port =>"5379"  
        }  
}  
output {  
        elasticsearch {  
                hosts => "10.10.45.200:8200"  
                index => "logstash-zjzc-frontend-%{+YYYY.MM.dd}"  
        }  
        stdout {  
            codec => rubydebug  
        }  
}

注意:如果修改后没有生效,在kibana上重建索引。

本文转自1321385590 51CTO博客,原文链接:http://blog.51cto.com/linux10000/1922391,如需转载请自行联系原作者

ELK 分析 nginx access 日志相关推荐

  1. CentOS 7.2下ELK分析Nginx日志生产实战(高清多图)

    注:本文系原创投稿 本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名 ...

  2. 通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx...

    为什么80%的码农都做不了架构师?>>>    通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx 脚本如下: ...

  3. 使用ELK分析Windows事件日志

    这是ELK入门到实践系列的第三篇文章,分享如何使用ELK分析Windows事件日志. Windows系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以监视系统中发生的事件.用户可以通过它来检查 ...

  4. 利用ELK分析Nginx日志生产实战(高清多图)

    本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...

  5. GoAccess安装及分析nginx实时日志

    GoAccess是一个基于终端的快速日志分析器.其核心思想是实时快速分析和查看Web服务器统计信息,而无需使用您的浏览器(如果您希望通过SSH快速分析访问日志,或者只是喜欢在终端中工作),终端输出是默 ...

  6. awstats linux日志分析,(总结)Linux下使用awstats分析Nginx的日志详情

    系统环境为CenoOS 5.6,详细请参考之前的日志<CentOS 5.x使用yum安装Nginx+PHP(FastCGI)+MySQL生产环境>. Awstats 是目前最流行的日志分析 ...

  7. 在Linux中使用GoAccess分析Nginx的日志

    一 GoAccess简介 GoAccess是一款日志分析工具,可以用来分析Apache,IIS,Nginx的日志,或者一些其他web服务的日志.其特点是安装简单,使用方便,分析速度快 二 GoAcce ...

  8. nginx access日志按时间进行分割

    按小时过滤日志: #!/bin/bash #file log path log_file='/var/log/nginx/access.log'last_hour=1 # start time sta ...

  9. shell分析nginx access log日志

    统计访问最多的ip 1. tail -n 10000 xxaccess_log | cut -d " " -f 1 |sort|uniq -c|sort -rn|head -10 ...

最新文章

  1. 【ZT】我家宝宝不会哭----分享在美国养孩子的妈妈经(必看)
  2. WCF后续之旅(16): 消息是如何分发到Endpoint的--消息筛选(Message Filter)
  3. 将json转换成struts参数
  4. 国内外NLP领域学术界和工业界的牛人和团队
  5. python教程:sum(1-2+3-4+...+99)
  6. java二级考点速记_同学,你要的考点速记口诀汇总篇来啦,速记!
  7. 线上环境部署MongoDB的官方建议
  8. Android Sqlite
  9. C++基础13-类和对象之继承1
  10. AndroidStudio_开发工具调试入门---Android原生开发工作笔记70
  11. 会c 学plc编程语言,想学PLC编程?先弄清5种PLC专用语言!
  12. 用c语言求定积分实验报告,C语言用六种方法求定积分.doc
  13. 职场生涯的3个步骤--法、儒、道家的管理哲学
  14. 离散数学自反,对称,传递闭包
  15. 人工智能专业应不应该读博士?
  16. JAVA计算机毕业设计高校教材征订管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  17. svm和k-最近邻_使用K最近邻的电影推荐和评级预测
  18. k8s_难产的ingress架构初体验(一)
  19. CSS阿里矢量图标(字体图标)
  20. 工业水处理行业主要壁垒构成及重点企业分析、相关风险、处理规模

热门文章

  1. 事物与持久化_跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现...
  2. linux kset subsystem 3.10内核,Kobject、Kset 和 Subsystem
  3. log加时间 securecrt_SecureCRT配置自动记录日志
  4. html的opacity标签,css中opacity是什么意思
  5. matlab字符和字符串,MATLAB字符和字符串
  6. netty java开发文档_Netty简明教学文档
  7. 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...
  8. 12c集群日志位置_Kubernetes(k8s)那些套路之日志收集
  9. php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法
  10. java ==和=_Java ==和equals()的区别