喬叔的 Elastic Stack 專業教育訓練
  • 喬叔的 Elastic Stack 專業教育訓練
  • 🧑關於喬叔 (Joe Wu)
  • Elastic 課程公開班
    • 🎯Elasticsearch 基礎實務班
      • 💯學員課後回饋
    • 🆕Elasticsearch 進階運維班
      • 💯學員課後回饋
    • Elasticsearch 進階開發班
    • Elastic Stack 基礎實務班
    • Elastic Observability 基礎實務班
    • 📩課程許願池
  • 技術分享
    • 📗喬叔帶你上手 Elastic Stack
      • 前言
      • Elastic Cloud 如何建立 Deployment
        • ES Node 的種類
        • 配置的選擇
      • Index 建立前你該知道的
        • ES Index 如何被建立
        • ES 的超前佈署 - Dynamic Mapping
        • ES 的超前佈署 - Index Template
        • ES Index 的別名 (Alias)
        • 管理你的 Index - Kibana Index
      • 管理 Index 的 Best Practices
        • Shard 的數量與 Rollover & Shrink API
        • 三溫暖架構 - Hot Warm Cold Architecture
        • Index Lifecycle Management (ILM)
        • Rollup
        • Transform
        • Snapshot Lifecycle Management (SLM)
        • 總結
      • Elastic Cloud 比免費版還多的功能
        • Elastic Stack 的方案比較與銷售方式
        • Centralized Beats Management
        • Centralized Pipeline Management
        • Watcher
        • Elasticsearch Token Service
        • Multi-stack monitoring & Automatic stack issue alerts
      • 向 App Search 學習怎麼用 Elasticsearch
        • 揭開 App Search 的面紗
        • Engine 的 Index Settings 篇
        • Engine 的 Mapping 篇
        • Engine 的 Search 基礎剖析篇
        • Engine 的 Search 進階剖析篇
      • Elasticsearch 的優化技巧
        • Indexing 索引效能優化
        • Searching 搜尋效能優化
        • Index 的儲存空間最佳化
        • Shard 的最佳化管理
      • 完賽心得
    • 📘喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 系列
      • 前言 & 淺談 Observability
      • Elastic 的 Observability 解決方案
      • Uptime - 掌握系統的生命徵象
        • 我們要觀測的生命徵象是什麼?
        • 使用 Heartbeat 收集系統生命徵象數據
        • 透過 Kibana 觀看心電圖及設定警報
        • 使用合成監控 (Synthetics Monitor) 從使用者情境驗證服務的運作狀態
      • Metrics - 觀察系統的健康指標
        • Metrics 與 Metricbeat 的基本介紹
        • 使用 Metricbeat 掌握 Elastic Stack 的健康狀態
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 Host 篇
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 Docker 篇
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 Kubernetes 篇
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 AWS 篇
      • Logs - 挖掘系統內部發生的狀況
        • Logs 與 Filebeat 的基本介紹
        • 使用 Filebeat 應該要了解的設計細節與原理
        • 透過 Filebeat 收集 Elastic Stack 中各種服務的細節資訊
        • 透過 Filebeat 收集 Infrastructure 中各種服務的細節資訊
      • Traces - 觀察應用程式的效能瓶頸
        • Elastic APM 基本介紹
        • 使用 APM-Integratoin-Testing 建立 Elastic APM 的模擬環境
        • 如何在 Kibana 使用 APM UI
        • 使用 APM Server 來收集 APM 數據
        • 透過 APM Agents 收集並傳送後端服務運作的記錄
        • 透過真實使用者監控 (RUM, Real User Monitoring) 來改善使用者體驗
      • 建立結構化的 Log
        • Elastic Common Schema 結構化 Log 的規範
        • Elasticsearch Ingest Pipeline 資料 Index 前的轉換好幫手
          • 基本介紹
          • 各種常用的 Processor
          • Enrich 資料與例外處理
      • 有效的使用 Observability 的資料
        • 透過 Machine Learning 發現異常的問題
        • 使用 Kibana Alerts 主動通知異常狀況
        • 資料的生命週期管理
        • 使用 Elastic Observability 追縱及觀察問題的心得
      • 完賽心得
    • 😀Elasticsearch 技術分享小品
      • 🤖Elastic 與 AI
        • Elasticsearch Inference API 讓我們直接在 ES 裡運用 OpenAI Completion API
    • 🎥線上分享
      • 喬叔 Elasticsearch Index 管理與效能優化技巧
      • Elastic Certification 認證經驗分享
    • 🛠️workshop
      • 如何在 Elasticsearch 實現敏捷的資料建模與管理 @ DevOpsDays 2023
        • 工作坊實作內容
      • Elastic Observability 實作體驗坊 @ DevOpsDays 2022
        • 行前準備
        • 工作坊實作內容
      • 當 Elasticsearch 搜尋引擎遇上 AI @ HelloWordDevConference 2024
        • 投影片
        • Elasticsearch 環境準備
        • Google Colab 環境準備
        • 工作坊操作說明
        • ElasticSearch Relevance Engine (ESRE)
    • ⬆️Elastic Stack 版本升級記錄
      • 🔍Elasticsearch
  • 其他專業服務
    • 👩‍🎓企業包班 | 企業內訓
    • 👨‍💼顧問服務
    • 🈺專案合作
    • 🧩Elastic 授權代理
  • 相關連結
    • Facebook 粉絲頁
Powered by GitBook
On this page
  • 本篇學習重點
  • 使用 Kibana Alerts
  • 準備及設定好加密的密鑰
  • 設定好對外開放存取的 Base URL
  • 使用 TLS 安全的連線
  • 建立好 Connector
  • Elastic Observability 對於 Alerts 的整合與支援
  • Logs
  • Metrics
  • Uptime
  • 參考資料
  1. 技術分享
  2. 喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 系列
  3. 有效的使用 Observability 的資料

使用 Kibana Alerts 主動通知異常狀況

Previous透過 Machine Learning 發現異常的問題Next資料的生命週期管理

Last updated 2 years ago

本篇學習重點

  • 使用 Kibana Alerts 之前的準備工作。

  • 了解 Elastic Observability 針對 Kibana Alerts 的整合上有提供哪些 Alert 的設置。

使用 Kibana Alerts

在使用 Kibana Alerts 之前,有以下幾點需要注意及準備的項目:

準備及設定好加密的密鑰

由於 Kibana 中的敏感資料和 Alerting Rules (警報規則),儲存時都會進行加密,所以要先準備好加密的密鑰。

密鑰需設定在 kibana.yml 中的 xpack.encryptedSavedObjects.encryptionKey 設定之中,以下是協助產生密鑰的工具及指令:

bin/kibana-encryption-keys generate

設定好對外開放存取的 Base URL

要讓 Alert 發送通知到外部之後,可以透過連結導回 Kibana,所以會需要設定好外部存取 Kibana 時有效的 Base URL,設定在 kibana.yml 中的 server.publicBaseUrl 。

使用 TLS 安全的連線

如果有啟用 Elastic 的 Security 功能時,必須要設定並啟用 TLS 連線。(可參考 )

為了在背景執行的處理程式能安全的存取 Elasticsearch,Kibana alerting 會使用 API key 的安全認證機制,而要使用 API key 的話,就一定要啟用 TLS。

要讓 Elasticsearch 與 Kibana 之間使用 TLS 連線,會有以下幾個設置步驟:

  1. 使用 elasticsearch-certutil 配合 http 參數,來建立 TLS 相關的 certificate。

如果你的環境之中沒有 CA (Certificate Authorities),又或是先前沒有建立過 CA 的話,會要先透過 bin/elasticsearch-certutil 配合 ca 參數來建立 CA。

建立完成 http 使用的 certificate 之後,壓縮檔裡面會有以下的內容:

  1. 將 kibana/elasticsearch-ca.pem 檔案,複制到 Kibana 的 config 目錄中,並修改 kibana.yml 中 的 elasticsearch.ssl.certificateAuthorities 設定,以及將 Elasticsearch 的 protocol 改成 HTTPS:

elasticsearch.ssl.certificateAuthorities: $KBN_PATH_CONF/elasticsearch-ca.pem
elasticsearch.hosts: ["https://localhost:9200"]
  1. 同時也要確保 Elasticsearch 也啟用 TLS 連線有正確設定,並且將先前產生的 http.p12 複制到 config 目錄底下。

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: http.p12
  1. 重新啟動 Elasticsearch 與 Kibana 。

建立好 Connector

Kibana Alerts 有支援多種的 Connectors 如下:

  • 寄 Email

  • 寫入 Elasticsearch Index

  • 建立 Jira incident

  • PageDuty

  • Slack

  • Webhook

  • IBM Resilient

  • Microsoft Teams

  • 寫到 Kibana 的 ServerLog

  • 建立 ServiceNow incident

  • 建立 Swimlane incident

這些 Connector 建立好之後,就會是 Alert 最後要發送通知時的接口。

Elastic Observability 對於 Alerts 的整合與支援

Elastic Observability 的功能之中,有針對 Alerts 進行整合,也就是在 Observability 的 UI 當中,針對該服務的特性,有建立能較快速建立 Alerts Rules (規則) 的功能,以下針對 Alerts 設置的部份進行說明。

Logs

Log 的部份,能快速針對 Log threshold (門檻) 進行 Alerts 的設置,設置重點如下:

  • 在一段時間區間之中,針對一個特定條件下的 logs 數量,或某兩種條件之間的 logs 數量的比例,達到一個門檻時,發出 alert。

  • 同時這個計算時,能依照特定欄位的值來進行分群 (group by),也就是上述的規則可以限定在某些條件的分類上執行,例如每台機器分開計算、或是每種服務分開計算。

Metrics

Metrics 在 Inventory 與 Metric Explorer 的頁面當中,分類提供不同的 Alerts 設置。

Inventory - Infrastructure Alerts

在 Inventory 當中,關注的重點就是 Infrastructure,不論是 Host、Docker、Kubernetes 或是 AWS 雲端主機或服務。

所以針對 Inventory 的部份,Alerts 的主要設置重點如下:

  • 當指定的主機或服務,在最近一段時間內,在任何 metrics 的條件下 (例如:CPU 或 Memory 使用率、網路流量、Log rate、甚至是任何一個欄位的平均數…等) 達到指定的門檻時,就發出 Alert。

  • 除了以上的 metrics 條件外,若是在最近一段時間內,沒有任何的 logs 產生,也可以發出 Alert。

  • 另外除了 Alert 的報警之外,也可以定義 Warning 層級的條件。

  • 與 Metrics 中 Alert 設定的差別,主要在於 Inventory 會指定主機或服務相關的範圍。

Metric Explorer

在 Metric 的部份,主要的設定如下:

  • 支援任何所收集到的 Metrics,在最近的一段時間內,若達到一定的門檻,就發送 Alert。

  • 若是在最近一段時間內,沒有任何的 logs 產生,也可以發出 Alert。

  • 也能支援設定 Warning 的門檻。

Uptime

在 Uptime 的部份,主要的 Alert 設定有以下三種:

  • Monitor status: 服務的可用性是否正常。

  • TLS certificate: 憑證是否快過期。

  • Uptime duration anomaly: 服務的回應時間是否異常。

Monitor Status

在 Monitor 的頁面之中,Uptime 最主要的任務就是確認服務是否還活著,因此 Alert 的設定重點為:

  • Status Check,在一小段時間區間,如果服務沒有依照預期的結果回應並且超過一定的數量,就發出 Alert。

  • Availability,在較長的一段時間區間 (例如一個月),如果服務總共異常超過某個比例 (例如 99.9%),就發出 Alert,可用作 SLA 的警示。

TLS Certificate

TLS Certificate 的 Alert 很單純,就只有一個重點:

  • 在 Certificate 剩一段時間就要過期時,發出 Alert。

Uptime Duration 異常

在 Uptime Monitor 的頁面中,如我們前一篇文章的介紹,可以開啟 Machine Learning 的 Anomaly detecion 的功能。

一但開始這個功能之後,就可以在 Monitor 的回應時間被判定成異常時,主動發送 Alert。

點選 Enable anomaly alert 後的設定畫面如下:

參考資料

image-20211013021828881

在 Kibana > Stack Management > Rules and Connectors > Connector 裡可以進行設定,有些與 Security 相關的,可能會要使用到 keystore 來保存密鑰,細節相關的設定,可以參考 的說明。

28-logs

設定細節可以參考 。

28-metrics-inventory

設定細節可以參考 。

28-metrics-metrics

設定細節可以參考 。

28-uptime-monitor

設定細節可以參考 。

28-uptime-tls

設定細節可以參考 。

28-uptime-abnormal
28-uptime-abnormal-alert

設定細節可以參考 。

📘
官方文件 - Setup basic security for the Elastic Stack plus secured HTTPS traffic
官方文件 - Kibana Action Types
官方文件 - Observability - Create a logs threshold rule
官方文件 - Observability - Infrastructure threshold rule
官方文件 - Observability - Metrics threshold rule
官方文件 - Observability - Monitor status rule
官方文件 - Observability - TLS certificate rule
官方文件 - Observability - Uptime duration anomaly rule
官方文件 - Kibana Alerting Setup
官方文件 - Setup basic security for the Elastic Stack plus secured HTTPS traffic
官方文件 - Kibana Action Types