iT邦幫忙

2021 iThome 鐵人賽

DAY 5
2
DevOps

喬叔帶你上手 Elastic Stack - 探索與實踐 Observability系列 第 5 篇

05 - Uptime - 掌握系統的生命徵象 (3/4) - 透過 Kibana 觀看心電圖及設定警報

  • 分享至 

  • xImage
  •  

Uptime - 掌握系統的生命徵象 系列文章


本篇學習重點

  • 如何使用 Kibana 的 Uptime 功能來觀察 Heartbeat 記錄的資料。
  • 當發生問題時,如何透過 Alert 設定主動通知。

Kibana 的 Uptime 功能介面

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

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

05-kibana-uptime-ui

Monitors 主畫面

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

05-kibana-uptime-overview

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

指定 Monitor 的內容畫面

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

05-kibana-uptime-monitor-detail

這個 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 都會被詳細的記錄下來,在追查問題時很方便。

image-20210920134237187

TLS Certificates 監控總覽

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

05-kibana-uptime-tls-certificates

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

05-kibana-uptime-setting-tls

除了 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。

image-20210920224716126

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

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

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

初始化 Kibana 的 Alert 設定

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

05-alert-warning

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

./bin/kibana-encryption-keys generate

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

05-kibana-generate-encryption-key

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

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

05-kibana-create-connector

建立 Connectors

這邊使用 Slack Connector 為例。

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

image-20210920125136535

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

image-20210920125453553

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

image-20210920125647084

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

image-20210920130533941

Uptime 設定 Default Connectors

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

05-kibana-uptime-setup-default-connector

在 Monitors 中啟用 Alert 的通知

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

image-20210920135724633

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

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

  1. 建立 Alerts and rules 。
  2. 選擇 Create rules 。
  3. 選擇 TLS rule 。
  4. 填寫基本資料後,選擇要使用的 Actions。
  5. 按下 Save。

05-kibana-create-tls-expire-alert

從 Slack 接收 Alert 的通知

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

05-slack-alert


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

參考資料

  1. 官方文件 - Alerting and action settings in Kibana

查看最新 Elasticsearch 或是 Elastic Stack 教育訓練資訊: https://training.onedoggo.com
歡迎追蹤我的 FB 粉絲頁: 喬叔 - Elastic Stack 技術交流
不論是技術分享的文章、公開線上分享、或是實體課程資訊,都會在粉絲頁通知大家哦!


上一篇
04 - Uptime - 掌握系統的生命徵象 (2/4) - 使用 Heartbeat 收集系統生命徵象數據
下一篇
06 - Uptime - 掌握系統的生命徵象 (4/4) - 使用合成監控 (Synthetics Monitor) 從使用者情境驗證服務的運作狀態
系列文
喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 共 31 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言