夜莺-Nightingale
夜莺V7
项目介绍 功能概览
部署升级 部署升级
数据接入 数据接入
告警管理 告警管理
数据查看 数据查看
功能介绍 功能介绍
API FAQ
夜莺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