你還用ES存請求日誌?ClickHouse+Vector打造最強Grafana日誌分析看板

StarsL發表於2024-11-02

為什麼要做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項,輸入你需要展示的日誌表的正則,或者留空,展示預設庫的所有表。

相關文章