喬叔的 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 的 Uptime 功能介面
  • Monitors 主畫面
  • 指定 Monitor 的內容畫面
  • TLS Certificates 監控總覽
  • 除了 Kibana Uptime 的功能之外,可以匯入 Elastic 替 Heartbeat 建好的 Dashboard
  • 設定 Alert 讓我們能主動接受到異常的通知
  • 初始化 Kibana 的 Alert 設定
  • 建立 Connectors
  • Uptime 設定 Default Connectors
  • 在 Monitors 中啟用 Alert 的通知
  • 設定 TLS Certifcate 快過期時的通知報警
  • 從 Slack 接收 Alert 的通知
  • 參考資料
  1. 技術分享
  2. 喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 系列
  3. Uptime - 掌握系統的生命徵象

透過 Kibana 觀看心電圖及設定警報

Previous使用 Heartbeat 收集系統生命徵象數據Next使用合成監控 (Synthetics Monitor) 從使用者情境驗證服務的運作狀態

Last updated 2 years ago

本篇學習重點

  • 如何使用 Kibana 的 Uptime 功能來觀察 Heartbeat 記錄的資料。

  • 當發生問題時,如何透過 Alert 設定主動通知。

Kibana 的 Uptime 功能介面

當我們透過前一篇所介紹的 Heartbeat 收集資料後,接下來我們要將介紹如何透過 Kibana 的 Uptime 功能,來檢視這些資料。

進入 Kibana 的主畫面後,點選主選單,並從 Observability 的區塊,可以找到 Uptime 的進入點。

05-kibana-uptime-ui

Monitors 主畫面

點選進入後,我們可以看到 Uptime 的主要 Dashboard,畫面蠻單純,直接列出監控的彙總結果,包含多少個 Monitors 其中有哪些目前是 Down 以及過去指定的時間區間中,Up 與 Down 的 Histogram 圖表。

在底下的監控總覽的區塊,會條列出每一項我們所設定的 Monitor,並且包含這些 Monitor 的主要狀態資訊。

指定 Monitor 的內容畫面

點選其中一個 Monitor 之後,可以進入 ES Cluster Monitor 的頁面,如下圖。

這個 Monitor 的畫面會包含幾個重點,以上圖我的情境為例進行說明:

  • 這一組 Monitor 項目的主要資訊,包含這組監控在指定時間之內的可用性 (availability) 比例 100.00%、監控這組服務的 URL http://training.onedoggo.com,監控的類型 HTTP 、有哪些 Tags onedoggo training web、以及 TLS Certificate 多久之後會到期 Expires in 9 monthes。

  • 這一組 Monitor 項目,包含哪些從哪些地區的監控: taipei 與 tokyo,以及這些地區各自在這段時間的可性用 (availability) 比例及最後檢查的時間。

  • Monitor duration: 這裡會列出每個地區在監控時,Heartbeat 所收到回應的時間,可以看出有沒有在那個時段或是哪個地區的延遲時間 (latency) 特別久。

  • Pings over time: 在每個時段之中,總共 Pings 多少次,也就是代表發送了多少次 monitor check 的請求,以及異常與正常的比例 (圖中都是正常,所以都是灰色,有異常會是紅色)。

  • History: 這部份會詳細的列出每次執行檢查請求的執行結果,包含結果是否正常 Up 或 Down、檢查的時間、從哪個 Geo Location 執行、HTTP status,花了多少時間 (Duration)、如果有錯誤的話,錯誤的內容是什麼 (如下圖),另外如果有開啟記錄 HTTP response 的話,包含 HTTP Response Headers 與 Body 都會被詳細的記錄下來,在追查問題時很方便。

TLS Certificates 監控總覽

Kibana Uptime 會協助我們將所有 Monitors 之中有包含 SSL/TLS 的 Certificate 彙總起來,在 TLS Certificates 這裡可以看到所有的憑證列表及狀態,這個功能很方便,可以直接一覽所有憑證的狀態。

另外也能透過 Settings 的畫面,指定 Certificate 的過期通知的期限設定。

除了 Kibana Uptime 的功能之外,可以匯入 Elastic 替 Heartbeat 建好的 Dashboard

若要使用 Elastic 替 Uptime 建立的 Dashboard,要另外到 Github (https://github.com/elastic/uptime-contrib) 下載,並且使用 Kibana > Stack Management > Saved Objects 的功能,使用 Import 將對應 Github 裡的 http_dashboard.ndjson 檔案匯入,匯入完成後,就可以到 Dashboard 選擇開啟 Heartbeat HTTP monitoring 的 Dashboard。

設定 Alert 讓我們能主動接受到異常的通知

當有異常發生時,我們想要主動收到通知,這時就要使用到 Elastic Alert 的功能,我們首先要建立 Connector 來設定通知發送到哪邊,再透過 Uptime 進行 Alert 的設定。

這邊要注意 Alert 的功能有蠻多會是需要使用到進階的授權,不是免費的。

初始化 Kibana 的 Alert 設定

如果是第一次使用 Alerting 的功能,在進入 Stack Management 的 Connectors 設定中要建立 Connectors 時,會看到以下的畫面,提示我們會需要先設定好 xpack.encryptedSavedObjects.encryptionKey。

要產生這個 EncryptionKey 可以透過 kibana-encryption-keys 的指令來協助產生,這個指令就放在 kibana 的 bin 資料夾裡面。[1]

./bin/kibana-encryption-keys generate

執行指令後,就會產生 encryption keys。

這個指令只會協助我們產生 key,我們需要將產生出來的設定,添加到 config/kibana.yml 裡面。

一但設定完成、重新啟動 kibana 之後,我們回到 Connectors 的設定頁面,就可以建立新的 Connector 了。

建立 Connectors

這邊使用 Slack Connector 為例。

請注意:要使用 Slack Connector 會需要擁有 Gold License 以上的授權。

選擇 Slack 之後,在建立 Connector 的畫面,會出現 Create a Slack Webhook URL 的連結,點選下去之後,會導到 Elastic 的官方文件,裡面有完整的設定教學,當中有提到要進入 Slack WebHook 的設定頁面 https://my.slack.com/services/new/incoming-webhook 去建立 WebHook。

指定 Alert 要通知的 Channel 之後,建立 WebHook integration,就可以拿到 WebHook URL。

接著在 Add Connector 的地方,把這些資訊填寫完成,並且建立 Connector。

Uptime 設定 Default Connectors

接下來,我們可以在 Uptime 設定 Default Connectors,讓之後 Uptime 有異常發生時,透過這些 Connectors 發送通知。

在 Monitors 中啟用 Alert 的通知

一但我們設定好 Alert 的 Connectors 之後,我們就可以到 Monitors 的頁面,啟動 Status alert,接下來有異常發生時,就會通知到我們指定的 Connecters 了。

設定 TLS Certifcate 快過期時的通知報警

如果我們想在 TLS Certificate 快要過期時收到通知,我們要在 Uptime 設定 Alert。

  1. 建立 Alerts and rules 。

  2. 選擇 Create rules 。

  3. 選擇 TLS rule 。

  4. 填寫基本資料後,選擇要使用的 Actions。

  5. 按下 Save。

從 Slack 接收 Alert 的通知

接著從 Slack 的畫面可以看到有發生問題、或是狀態恢復時通知的內容。


以上的介紹,是透過 Kibana 針對 Uptime 所提供的功能,讓我們能迅速的掌握系統的可用性狀態,以及能在異常時發送通知提醒,除了 Kibana Uptime 所提供的畫面之外,我們也能自己透過 Virtualize 等工具,從 Heartbeat 所記錄並存放在 Elasticsearch 裡的資料,建立我們自己想要檢視的圖表與儀表版 (Dashboard),這部份就不在這裡介紹,有興趣的可以從官方 Kibana 的說明文件參考做法。

參考資料

05-kibana-uptime-overview
05-kibana-uptime-monitor-detail
image-20210920134237187
05-kibana-uptime-tls-certificates
05-kibana-uptime-setting-tls
image-20210920224716126
05-alert-warning
05-kibana-generate-encryption-key
05-kibana-create-connector
image-20210920125136535
image-20210920125453553
image-20210920125647084
image-20210920130533941
05-kibana-uptime-setup-default-connector
image-20210920135724633
05-kibana-create-tls-expire-alert
05-slack-alert

📘
官方文件 - Alerting and action settings in Kibana