环境:
192.168.10.129
安装ES 9200,kibana:5601
192.168.10.131
安装了logstash:9600
登录到131上
log_format格式变量: $remote_addr #记录访问网站的客户端地址 $remote_user #远程客户端用户名 $time_local #记录访问时间与时区 $request #用户的http请求起始行信息 $status #http状态码,记录请求返回的状态码,例如:200、301、404等 $body_bytes_sent #服务器发送给客户端的响应body字节数 $http_referer #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。 $http_user_agent #记录客户端访问信息,例如:浏览器、手机客户端等 $http_x_forwarded_for #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
[root@localhost patterns]# pwd
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns
将创建好的nginx_access文件上传至这个目录下
vim nginx_access
URIPARAM1 [A-Za-z0-9$.+!*'|(){},~@#%&/=:;_?\-\[\]]* NGINXACCESS %{IPORHOST:client_ip} (%{USER:ident}|- ) (%{USER:auth}|-) \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} (%{NOTSPACE:request}|-)(?: HTTP/%{NUMBER:http_version})?|-)" %{NUMBER:status} (?:%{NUMBER:bytes}|-) "(?:%{URI:referrer}|-)" "%{GREEDYDATA:agent}"
添加logstash的nginx 日志收集配置文件
logstash grok 内置正则:https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns
vim /etc/logstash/conf.d/nginx.conf
input { file { path => "/usr/local/nginx/logs/access.log" type => "nginx-log" start_position => "beginning" } } filter { grok { match => { "message" => "%{NGINXACCESS}" } } } output { elasticsearch { hosts => ["192.168.10.129:9200"] index => "nginx_log-%{+YYYY.MM.dd}" } }
注意:如果你的log放在/var/log下请给chmod 777 /var/log -R
添加nginx日志的可视化图形
1 添加状态码统计饼状图
2 添加一个统计pv的图形
3 添加ip访问量前10的ip
4 访问量趋势图
5 添加一个仪表盘
没有nginx 索引需注意以下几点:
1:chmod 777 /var/log/nginx -R
2: pipiline.yml 文件
3:nginx log 里要有内容 可以用ab压测用具生成一些日志