夜莺-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
参考资料

接入 CLS 數據源

在創建數據源連接時,主要填寫以下參數:

地域(Region)可以在騰訊雲 CLS 的日誌主題中找到,地域需要和騰訊雲日誌主題所在地域一致;如下圖所示

AK ID 和 AKS騰訊雲用戶密鑰管理查看創建。

CLS 日誌查詢

日誌原文

展示騰訊雲 CLS 接入源數據,未經過原文處理。

統計圖表

統計表是將查詢條件結果進行展示,展示方式分為表格圖和時序圖兩種。

表格圖

根據舉例的查詢條件語句*|SELECT status, count(*) as pv GROUP BY status。將查詢統計 status 欄位,並將統計計算結果命名為 pv ,將結果 pv 以 status 透過表格分組展示。

語句簡析 | select …: |管道符左側為檢索條件,select …語句檢索 SQL status: 將 status 欄位結果展示 count() AS pv: 將 status 統計 pv 命名。 GROUP BY status: 將 status 結果分組展示。

可參考 語法規則學習瞭解

時序圖

將騰訊雲 CLS 日誌查詢結果提取 value 值進行展示,並將篩選條件以 tag 的方式展示在指標欄位;以下為部分查詢語句供學習參考。

常用查詢語句語法

  1. 查詢 GET 請求且狀態碼大於400的日誌:method:GET AND status>400
  2. 查詢 level 為 ERROR 或 WARNING 的日誌:level:(ERROR OR WARNING)
  3. 查詢非 INFO 級別的日誌:NOT level:INFO
  4. 查詢不存在 remote_user 欄位的日誌:not remote_user:*
  5. 查詢存在 remote_user 欄位的日誌:remote_user:*
  6. 查詢 host 欄位值不為 123 的日誌:not host:123.*

場景一:按分鐘統計 GET 請求且狀態碼大於400的日誌 method:GET AND status:>400 | select histogram(__TIMESTAMP__, interval 1 minute) as analytic_time_minute, count(*) as errorCount group by analytic_time_minute limit 1000

場景二:查詢 request_method 欄位值為 GE 開頭,且 client_ip 欄位值為 116.178.232.,並以 host, method, request_uri 欄位分組統計*

method:GE* and remote_addr:116.178.232.* | SELECT http_host AS host, method AS method, request_uri AS url, count(*) AS count GROUP BY host, method, url

場景三:查詢成功請求且請求耗時小於1秒,並包含 flashcat 的日誌,並以 host, method, request_uri, status, request_uri 欄位分組統計

flashcat AND read_request_time < 1 AND (status >= 200 AND status <= 299) | SELECT host AS host, request_method AS method, request_uri AS url, status as st, read_request_time as rqt, count(*) AS COUNT GROUP BY host, method, url, st, rqt

CLS 日誌告警

在告警規則選擇 日誌數據源,配置查詢語句和提取數值 ValueKey ,並在簡單模式設置時間範圍內 ValueKey 閾值,進行規則觸發。

配置場景1:統計代理日誌狀態碼為 200 和 301 的日誌數量,查詢結果大於10且小於15 則觸發告警。

查詢語句如上所述: status:403 OR status:402 | SELECT status AS status, count(*) AS count GROUP BY status ,此處為查詢數值結果用於條件判斷,因此判斷條件使用 $A > 10$A < 15

配置場景2:配置不同指標結果判斷,status:200 大於 100,且 status:301 大於 1 則觸發告警

需實現不同查詢值判斷,需填寫兩條不同查詢分析語句提取數值,並對提取數值 $A $B 進行判斷

提示:

  • 與 PromQL 類似,如資料標籤不一致,將會將查詢分析語句計算結果作為兩條不同曲線無法比較;此時不需要設置 LabelKey 確保資料曲線計算不受標籤不同影響。

  • 當前支援數字判斷相等,無法判斷字串相等;因此過濾字串時需將字串放在查詢語句中。

問題排查

若配置告警後無法正常生效觸發,可以通過 N9E INFO.log 日誌以 rule_eval 關鍵字進行過濾排查;如下為日誌示例。

***正確日誌:***從日誌可以看出 $A $B 都已經獲得對應數值,且表達式結果 true 表示條件已經成立。

錯誤日誌:日誌結果 false 表示條件不成立;另外從日誌結果看到兩次返回 false ,而僅配置一條告警計算條件,可能為資料標籤不一致,將查詢分析語句結果作為兩條不同曲線導致告警計算條件不成立,無法正常

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat