国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解用ELK來分析Nginx服務器日志的方法

2024-08-30 12:21:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了用ELK來分析Nginx服務器日志的方法,ELK是三個開源軟件的縮寫,分別表示Elasticsearch,Logstash,Kibana,需要的朋友可以參考下

所有ELK的安裝包都可以去官網下載,雖然速度稍慢,但還可以接受,官網地址:https://www.elastic.co/

logstash

在Logstash1.5.1版本,pattern的目錄已經發生改變,存儲在/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-0.1.10/目錄下,但是好在配置引用的時候是可以對patterns的目錄進行配置的,所以本人在Logstash的根目錄下新建了一個patterns目錄。而配置目錄在1.5.1版本中也不存在了,如果是rpm包安裝的,可以在/etc/logstash/conf.d/下面進行配置,但個人測試多次,這樣啟動經常性的失敗,目前還沒有去分析原因(個人不推薦使用RPM包安裝)。所以大家可以采用Nohup或者screen的方式進行啟動
專屬nginx的pattern配置:

復制代碼 代碼如下:
NGINXACCESS %{IP:client} %{USER:ident} %{USER:auth} /[%{HTTPDATE:timestamp}/] /"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)/" %{HOST:domain} %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:useragent} "(%{IP:x_forwarder_for}|-)"

由于是測試環境,我這里使用logstash讀取nginx日志文件的方式來獲取nginx的日志,并且僅讀取了nginx的access log,對于error log沒有關心。

使用的logstash版本為2.2.0,在log stash程序目錄下創建conf文件夾,用于存放解析日志的配置文件,并在其中創建文件test.conf,文件內容如下:

input {  file {    path => ["/var/log/nginx/access.log"]  }}filter {  grok {    match => {      "message" => "%{IPORHOST:clientip} /[%{HTTPDATE:time}/] /"%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}/" %{NUMBER:http_status_code} %{NUMBER:bytes} /"(?<http_referer>/S+)/" /"(?<http_user_agent>/S+)/" /"(?<http_x_forwarded_for>/S+)/""    }  }  }output {  elasticsearch {    hosts => ["10.103.17.4:9200"]    index => "logstash-nginx-test-%{+YYYY.MM.dd}"    workers => 1    flush_size => 1    idle_flush_time => 1    template_overwrite => true  }  stdout{codec => rubydebug}} 

需要說明的是,filter字段中的grok部分,由于nginx的日志是格式化的,logstash解析日志的思路為通過正則表達式來匹配日志,并將字段保存到相應的變量中。logstash中使用grok插件來解析日志,grok中message部分為對應的grok語法,并不完全等價于正則表達式的語法,在其中增加了變量信息。

具體grok語法不作過多介紹,可以通過logstash的官方文檔中來了解。但grok語法中的變量類型如IPORHOST并未找到具體的文檔,只能通過在logstash的安裝目錄下通過grep -nr "IPORHOST" .來搜索具體的含義。

配置文件中的stdout部分用于打印grok解析結果的信息,在調試階段一定要打開。

可以通過這里來驗證grok表達式的語法是否正確,編寫grok表達式的時候可以在這里編寫和測試。

對于elasticsearch部分不做過多介紹,網上容易找到資料。


elk收集分析nginx access日志

使用redis的push和pop做隊列,然后有個logstash_indexer來從隊列中pop數據分析插入elasticsearch。這樣做的好處是可擴展,logstash_agent只需要收集log進入隊列即可,比較可能會有瓶頸的log分析使用logstash_indexer來做,而這個logstash_indexer又是可以水平擴展的,我可以在單獨的機器上跑多個indexer來進行日志分析存儲。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清新县| 延川县| 竹溪县| 革吉县| 伊宁市| 临海市| 许昌市| 汕头市| 如皋市| 思茅市| 黄石市| 宁强县| 阿合奇县| 张家川| 家居| 巴马| 定西市| 武义县| 康平县| 图木舒克市| 华阴市| 兴山县| 定州市| 台前县| 来宾市| 台东县| 武平县| 汝南县| 红安县| 威远县| 建水县| 邵阳市| 英山县| 岱山县| 长顺县| 淮滨县| 鸡泽县| 鸡泽县| 嘉义市| 泸定县| 永寿县|