使用elk redis搭建nginx日誌分析平台

2021-07-30 05:24:35 字數 2190 閱讀 6149

elk+redis 搭建nginx日誌分析平台

logstash,elasticsearch,kibana 怎麼進行nginx的日誌分析呢?首先,架構方面,nginx是有日誌檔案的,它的每個請求的狀態等都有日誌檔案進行記錄。其次,需要有個佇列,redis的list結構正好可以作為佇列使用。然後分析使用elasticsearch就可以進行分析和查詢了。

我們需要的是乙個分布式的,日誌收集和分析系統。logstash有agent和indexer兩個角色。對於agent角色,放在單獨的web機器上面,然後這個agent不斷地讀取nginx的日誌檔案,每當它讀到新的日誌資訊以後,就將日誌傳送到網路上的一台redis佇列上。對於佇列上的這些未處理的日誌,有不同的幾台logstash indexer進行接收和分析。分析之後儲存到elasticsearch進行搜尋分析。再由統一的kibana進行日誌web介面的展示。

下面我計畫在一台機器上實現這些角色。

準備工作

安裝了redis,開啟在6379埠

安裝了elasticsearch, 開啟在9200埠

安裝了kibana, 開啟了監控web

logstash安裝在/usr/local/logstash

nginx開啟了日誌,目錄為:/usr/share/nginx/logs/test.access.log

設定nginx日誌格式

在nginx.conf 中設定日誌格式:logstash

在vhost/test.conf中設定access日誌:

access_log /usr/share/nginx/logs/test.access.log logstash;

開啟logstash agent

注:這裡也可以不用logstash,直接使用rsyslog

建立logstash agent 配置檔案

vim /usr/local/logstash/etc/logstash_agent.conf

**如下:

input

} output

} 啟動logstash agent

/usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash_agent.conf

這個時候,它就會把test.access.log中的資料傳送到redis中,相當於tail -f。

開啟logstash indexer

建立 logstash indexer 配置檔案

vim /usr/local/logstash/etc/logstash_indexer.conf

**如下:

這份配置是將nginx_access結構化以後塞入elasticsearch中。

對這個配置進行下說明:

grok中的match正好匹配和不論是get,還是post的請求。

kv是將request中的a=b&c=d的key,value擴充套件開來,並且利用es的無schema的特性,保證了如果你增加了乙個引數,可以立即生效

urldecode是為了保證引數中有中文的話進行urldecode

date是為了讓es中儲存的文件的時間為日誌的時間,否則是插入es的時間

好了,現在的結構就完成了,你可以訪問一次test.dev之後就在kibana的控制台看到這個訪問的日誌了。而且還是結構化好的了,非常方便查詢。

祝:玩的愉快

使用elk redis搭建nginx日誌分析平台

logstash,elasticsearch,kibana 怎麼進行nginx的日誌分析呢?首先,架構方面,nginx是有日誌檔案的,它的每個請求的狀態等都有日誌檔案進行記錄。其次,需要有個佇列,redis的list結構正好可以作為佇列使用。然後分析使用elasticsearch就可以進行分析和查詢...

使用elk redis搭建nginx日誌分析平台

logstash,elasticsearch,kibana 怎麼進行nginx的日誌分析呢?首先,架構方面,nginx是有日誌檔案的,它的每個請求的狀態等都有日誌檔案進行記錄。其次,需要有個佇列,redis的list結構正好可以作為佇列使用。然後分析使用elasticsearch就可以進行分析和查詢...

使用elk redis搭建nginx日誌分析平台

logstash,elasticsearch,kibana 怎麼進行nginx的日誌分析呢?首先,架構方面,nginx是有日誌檔案的,它的每個請求的狀態等都有日誌檔案進行記錄。其次,需要有個佇列,redis的list結構正好可以作為佇列使用。然後分析使用elasticsearch就可以進行分析和查詢...