為什麼要做NGINX日誌分析看板
Grafana官網的dashboards有NGINX日誌採集到ES資料來源的展示看板,也有采集到LOKI資料來源的展示看板,唯獨沒有采集到ClickHouse資料來源的展示看板。所以這個輪子是必須要造的。
為什麼不使用ES儲存
ElasticSearch是全文檢索引擎的文件資料庫,對於業務日誌、異常日誌、多行日誌這類,非結構化、半結構化的日誌資料,經常需要做關鍵字查詢,模糊匹配等操作,非常適合使用es,使用倒排索引實現快速全文搜尋。
ClickHouse是一個列式儲存資料庫,尤其擅長處理結構化的大規模的SQL查詢和聚合分析操作,所以針對NGINX這類結構化的請求日誌,在處理多維分析、聚合查詢、分組統計等操作速度極快,並且壓縮比極高,儲存成本比ES低10倍,CPU、記憶體的佔用也有巨大優勢。
NGINX日誌採集架構
- 基礎架構
- 完整架構
Grafana請求日誌分析看板預覽
該看板是基於 ClickHouse + Vector 的NGINX請求日誌分析看板。包括請求與耗時分析、異常請求分析、使用者分析、地理位置分佈圖、指定介面分析、請求日誌明細。
尤其在異常請求分析方面,總結多年異常請求分析經驗,從各個角度設計大量異常請求的分析圖表。
-
整體請求與耗時分析
-
NGINX異常請求分析
- 使用者請求資料分析
- 地理位置資料分析
- 指定介面明細分析
- 請求日誌詳情分析
匯入NGINX請求日誌分析的Grafana看板
Grafana看板ID:22037
下載地址:
https://grafana.com/grafana/dashboards/22037
注意:
- 在Grafana中增加ClickHouse資料來源時,注意點開Additional settings右邊的箭頭,配置Default database為存放日誌的預設庫,如上的:nginxlogs。
- 如果你儲存日誌的表名不是
access
結尾的,專案
選單會沒有資料,需要點選看板右上角的設定
-變數
-project
,在下方的Regex
項,輸入你需要展示的日誌表的正則,或者留空,展示預設庫的所有表。