elk系列7之通過grok分析apache日誌

2021-09-07 08:04:52 字數 1951 閱讀 8479

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...