preface
說道分析日誌,我們知道的採集方式有2種:
通過grok在logstash的filter裡面過濾匹配。
logstash --> redis --> python(py指令碼過濾匹配) --> es
第一種方式是不怎麼推薦使用的,除非是在日誌量比較小的場景才推薦使用。因為grok非常影響效能的,且不夠靈活,除非你很懂ruby。
第二種方式是 我們一直推薦使用的架構,講究松耦合關係。
下面我們還是說說第一種方式,然後再說第二種方式。
grok模組是作用在filter裡面的,它是個可以分析任意文字內容和重構內容的模組。它是當前最好的模組在logstash上處理糟糕,亂序的日誌資料,可以把這些資料分析成有序,可查詢的。並且,它可以很好的處理syslog,apache 和其他的webserver,mysql logs等日誌。通常來說,對於我們使用者(不是計算機,是人類)來說,任何日誌格式都可以被寫入的。
所以這裡我們讓grok結合apache的日誌做分析。
apache預設日誌格式:
我們開啟apache的日誌配置選項,可以看到
logformat "%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"" combined
引數解釋:
grok模組使用--拿個例子熱熱身
[root@linux-node1 conf.d]# cat apache.conf
input
}filter % % % %" } # 這些ip,word等等都是logstash內部設定好的匹配。
}}output
}
確認無誤後啟動,輸入一列資訊:
[root@linux-node1 conf.d]# /opt/logstash/bin/logstash -f apache.conf
settings: default pipeline workers: 2
pipeline main started
55.3.244.1 get /index.html 15824 0.043
上面可得,logstash是正常工作的,filter裡面能夠識別對應的資訊。下面就開始真正分析apache的日誌。
分析apapche的日誌
我們使用logstash自帶的apache日誌分析模組來使用,模組位於這下面:
[root@linux-node1 conf.d]# vim /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.5/patterns/grok-patterns
''''''
93 commonapachelog % % % \[%\] "(?:% %(?: http/%)?|%)" % (?:%|-) # 第93行
94 combinedapachelog % % % # 第94行
''''''
這個檔案裡有很多模組可以使用,可以根據自己的需求來呼叫。
根據上面提供的模組,我們可以直接配置在logstash裡面,如下所示:
[root@linux-node1 conf.d]# cat /etc/logstash/conf.d/apache.conf
input
}filter "} # 呼叫剛才找到的模組
}}output
}
確認配置沒有問題,那麼就啟動logstash
[root@linux-node1 conf.d]# /opt/logstash/bin/logstash -f /etc/logstash/conf.d/apache.conf
此時我們可以在head上看到apache的日誌索引了。。。然後老套路,在kibana裡面建立索引就可了。 (一)ELK系列之ELK介紹
elk介紹 elk簡介 隨著業務的不斷擴大,伺服器的不斷增加,各種服務的不斷增加,相應的日誌量也大量增加,訪問日誌 應用日誌 錯誤日誌種類繁多。從兩個角度進行分析 1 開發人員的角度來說,還需要去到伺服器上檢視繁多的日誌,無法高效的定位問題所在,所以並不方便 2 運營人員的角度來說,他們也需要獲取一...
(三)ELK系列之Kibana搭建
一 elk系列之elk介紹 二 elk系列之elasticsearch搭建 環境準備 centos7 1810 kibana 6.6.1 10.9.8.93 master node 資源準備 1 kibana包準備 提取碼 fbjo 當然也可以直接用wget在linux裡面獲取 root es1 m...
(五)ELK系列之Filebeat搭建
一 elk系列之elk介紹 二 elk系列之elasticsearch搭建 三 elk系列之kibana搭建 四 elk系列之logstash搭建 1 filebeat包準備 提取碼 fbjo 當然也可以直接用wget在linux裡面獲取 root es1 master node test wget...