夜莺-Nightingale
夜莺V6
项目介绍 架构介绍
快速开始 快速开始
黄埔营
安装部署 安装部署
升级
采集器 采集器
使用手册 使用手册
API API
数据库表结构 数据库表结构
FAQ FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵 第1章:天降奇兵
第2章:探索PromQL 第2章:探索PromQL
第3章:Prometheus告警处理 第3章:Prometheus告警处理
第4章:Exporter详解 第4章:Exporter详解
第5章:数据与可视化 第5章:数据与可视化
第6章:集群与高可用 第6章:集群与高可用
第7章:Prometheus服务发现 第7章:Prometheus服务发现
第8章:监控Kubernetes 第8章:监控Kubernetes
第9章:Prometheus Operator 第9章:Prometheus Operator
参考资料

ES 日誌告警

ES 日誌告警可以通過對日誌進行查詢分析,來及時發現異常日誌,並觸發告警。

首先可以選擇ES數據源,然後配置查詢條件和告警條件,下面針對每個數字指向的功能,進行詳細說明

1 選擇索引

支持多種配置方式

  1. 指定單個索引 gb 在 gb 索引中搜索所有的文檔
  2. 指定多個索引 gb,us 在 gb 和 us 索引中搜索所有的文檔
  3. 指定索引前綴 g*,u* 在任何以 g 或者 u 開頭的索引中搜索所有的文檔

2 設置過濾條件

目前支持的是 query string 語法

可以指定字段名稱進行查詢:

  • status:active - 查詢 status 字段包含 active 的記錄
  • title:(quick OR brown) - 查詢 title 字段包含 quick 或 brown 的記錄
  • author:“John Smith” - 查詢 author 字段包含完整短語 “John Smith” 的記錄

支持使用 ? 和 * 通配符:

  • qu?ck - ? 匹配單個字符
  • bro* - * 匹配零個或多個字符

使用 ~ 運算符進行模糊匹配:

  • quikc~ - 匹配與 quick 相似的詞
  • “fox quick”~5 - 短語查詢中的詞之間可以相隔最多5個位置

支持數值和日期範圍:

  • count:[1 TO 5] - 閉區間,包含1和5
  • date:[2022-01-01 TO 2022-12-31]
  • age:>=10 - 大於等於10

可以使用 AND、OR、NOT 等布爾操作符:

  • quick AND brown - 同時包含兩個詞
  • quick OR brown - 包含其中任意一個詞
  • quick NOT fox - 包含 quick 但不包含 fox

詳細的語法可以參考 ES 文檔

3 設置日期字段

點擊可以選擇日誌中的日期字段,通過此字段來作為查詢日誌的時間範圍的依據

4 設置查詢日誌的時間範圍

如果是 5 分鐘,表示在做告警查詢時,會查詢過去 5 分鐘內的日誌

5 數值提取

對日誌進行統計分析的函數,比如 count、sum、avg、min、max 等

6 Group By

對日誌進行分組,比如按照 host 字段進行分組,進行 count 統計, 查詢到的結果會按照 host 字段進行分組

7 告警條件

統計分析得到的數值,會賦值給告警條件中的 A、B、C 等變量,然後根據這些變量進行告警條件判斷,比如 $A > 10 表示日誌數量大於10條時觸發告警

8 高級配置

在有的場景,日誌會出現延遲,如果延遲3分鐘,查詢最近3分鐘的數據,會查不到數據,這時,可以在高級配置中,設置延遲查詢時間,比如延遲180s,表示查詢查詢的時候,把開始時間和終止時間都向前偏移180s

使用範例

示例1:錯誤日誌監控

  • 索引:app-logs-*
  • 查詢條件:level:ERROR AND service:payment
  • 時間範圍:5分鐘
  • 數值提取:count()
  • 告警條件:$A > 10 說明:監控支付服務在5分鐘內的錯誤日誌數量是否超過10條

示例2:接口響應時間監控

  • 索引:nginx-access-*
  • 查詢條件:path:"/api/v1/order*" AND response_time:>500
  • 時間範圍:10分鐘
  • 數值提取:avg(response_time)
  • Group By:path
  • 告警條件:$A > 1000 說明:監控訂單相關接口的平均響應時間是否超過1秒

示例3:異常狀態碼監控

  • 索引:nginx-*
  • 查詢條件:status:[500 TO 599]
  • 時間範圍:15分鐘
  • 數值提取:count()
  • Group By:host, status
  • 告警條件:$A > 50 說明:按主機和狀態碼分組統計5xx錯誤,如果某台主機的某個狀態碼出現次數超過50次則告警

示例4:業務異常關鍵字監控

  • 索引:business-logs-*
  • 查詢條件:message:(“timeout” OR “connection refused” OR “out of memory”)
  • 時間範圍:30分鐘
  • 數值提取:count()
  • 告警條件:$A > 5 說明:監控包含特定錯誤關鍵字的日誌數量
快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat