ELK如何分析nginx access日志,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)致力于互聯(lián)網品牌建設與網絡營銷,包括成都做網站、成都網站制作、SEO優(yōu)化、網絡推廣、整站優(yōu)化營銷策劃推廣、電子商務、移動互聯(lián)網營銷等。成都創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網應用定制及解決方案,成都創(chuàng)新互聯(lián)核心團隊十載專注互聯(lián)網開發(fā),積累了豐富的網站經驗,為廣大企業(yè)客戶提供一站式企業(yè)網站建設服務,在網站建設行業(yè)內樹立了良好口碑。注意:修改配置后建議重新創(chuàng)建index
1、nginx 日志文件格式
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
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
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上重建索引。
看完上述內容,你們掌握ELK如何分析nginx access日志的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。