logstash 过虑nginx访问日志
生活随笔
收集整理的這篇文章主要介紹了
logstash 过虑nginx访问日志
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
標題是不是可以翻譯成這樣:logstash Filters nginx access log
好了,進入正題,日志管理服務器我用ElasticSearch+LogStash+Kibana+Redis
先說下我的架構:
遠程NGINX采集日志數據到REDIS+logstash+elasticsearch+kibana服務器
至于怎么部署,因本人之前用baidu博客寫在那上面了,以后有時間把百度的搬過來
好了,這里就先不說部署了,我們直接進入配置正題
在nginx服務器,我們一、先配置nginx的日志格式
log_format?main?'$http_host?$remote_addr?-?$remote_user?[$time_local]?"$request"?''$status?$body_bytes_sent?"$http_referer"?''"$http_user_agent"?"$upstream_addr"?$request_time';二、配置logstash采集文件
1.1 配置logstash patterns
logstash/patterns#?vi?nginx? NGUSERNAME?[a-zA-Z\.\@\-\+_%]+ NGUSER?%{NGUSERNAME} NGINXACCESS?%{IPORHOST:http_host}?%{IPORHOST:clientip}?-?%{USERNAME:remote_user}?\[%{HTTPDATE:timestamp}\]?\"(?:%{WORD:http_verb}?%{NOTSPACE:http_request}(?:?HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\"?%{NUMBER:response}?(?:%{NUMBER:bytes_read}|-)?%{QS:referrer}?%{QS:agent}?%{QS:xforwardedfor}?%{NUMBER:request_time:float}注意,我們配置的日志格式完全要和我們的patterns解析出來
具體解析方式,可以到https://grokdebug.herokuapp.com/
input:nginx的日志
patterns:就是要過濾的格式,如圖
2.1 配置nginx日志采集腳本
logstash#vi?nginx_logs.conf? input?{file?{type?=>?"nginx-access"path?=>?"/www/log/nginx/access/default.log"start_position?=>?"beginning"} }filter?{if?[type]?==?"nginx-access"?{grok?{match?=>?{?"message"?=>?"%{NGINXACCESS}"?}}date?{match?=>?[?"timestamp"?,?"dd/MMM/YYYY:HH:mm:ss?Z"?]}geoip?{source?=>?"clientip"target?=>?"geoip"database?=>"/server/logstash/vendor/geoip/GeoLiteCity.dat"add_field?=>?[?"[geoip][coordinates]",?"%{[geoip][longitude]}"?]add_field?=>?[?"[geoip][coordinates]",?"%{[geoip][latitude]}"??]} mutate?{convert?=>?[?"[geoip][coordinates]",?"float"?]}?} }output?{redis?{host?=>?"10.252.35.170"port?=>?6379data_type?=>?"list"key?=>?"logstash"} }這個腳本里,我主要采集了geoip的信息,當然,你也直接可以將數據導入到redis,我就附上我的全腳本吧~~
啟動:
?#/server/logstash/bin/logstash?agent?-f?/alidata/server/logstash/nginx_logs.conf?&三、配置REDIS+logstash
直接寫logstash腳本
logstash#?vi?nginx.conf? input?{redis?{host?=>?"127.0.0.1"port?=>?"6379"data_type?=>?"list"key?=>?"logstash"type?=>?"redis-input"codec?=>?"json"} }output?{elasticsearch?{embedded?=>?falseprotocol?=>?"http"host?=>?"localhost"port?=>?"9200"} }啟動腳本
?#/logstash/bin/logstash?agent?-f?/alidata/server/logstash/nginx.conf?&好的,腳本配置完畢,接下來我們訪問看看
轉載于:https://blog.51cto.com/xiangcun168/1643577
總結
以上是生活随笔為你收集整理的logstash 过虑nginx访问日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC中的几种播放声音的方法
- 下一篇: 细说新一代HTML5/JavaScrip