在使用 Kibana Alerts 之前,有以下幾點需要注意及準備的項目:
由於 Kibana 中的敏感資料和 Alerting Rules (警報規則),儲存時都會進行加密,所以要先準備好加密的密鑰。
密鑰需設定在 kibana.yml
中的 xpack.encryptedSavedObjects.encryptionKey
設定之中,以下是協助產生密鑰的工具及指令:
bin/kibana-encryption-keys generate
要讓 Alert 發送通知到外部之後,可以透過連結導回 Kibana,所以會需要設定好外部存取 Kibana 時有效的 Base URL,設定在 kibana.yml
中的 server.publicBaseUrl
。
如果有啟用 Elastic 的 Security 功能時,必須要設定並啟用 TLS 連線。(可參考 官方文件 - Setup basic security for the Elastic Stack plus secured HTTPS traffic )
為了在背景執行的處理程式能安全的存取 Elasticsearch,Kibana alerting 會使用 API key 的安全認證機制,而要使用 API key 的話,就一定要啟用 TLS。
要讓 Elasticsearch 與 Kibana 之間使用 TLS 連線,會有以下幾個設置步驟:
elasticsearch-certutil
配合 http
參數,來建立 TLS 相關的 certificate。如果你的環境之中沒有 CA (Certificate Authorities),又或是先前沒有建立過 CA 的話,會要先透過 bin/elasticsearch-certutil
配合 ca
參數來建立 CA。
建立完成 http 使用的 certificate 之後,壓縮檔裡面會有以下的內容:
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"]
http.p12
複制到 config 目錄底下。xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: http.p12
Kibana Alerts 有支援多種的 Connectors 如下:
在 Kibana > Stack Management > Rules and Connectors > Connector 裡可以進行設定,有些與 Security 相關的,可能會要使用到 keystore 來保存密鑰,細節相關的設定,可以參考 官方文件 - Kibana Action Types 的說明。
這些 Connector 建立好之後,就會是 Alert 最後要發送通知時的接口。
Elastic Observability 的功能之中,有針對 Alerts 進行整合,也就是在 Observability 的 UI 當中,針對該服務的特性,有建立能較快速建立 Alerts Rules (規則) 的功能,以下針對 Alerts 設置的部份進行說明。
Log 的部份,能快速針對 Log threshold (門檻) 進行 Alerts 的設置,設置重點如下:
設定細節可以參考 官方文件 - Observability - Create a logs threshold rule。
Metrics 在 Inventory 與 Metric Explorer 的頁面當中,分類提供不同的 Alerts 設置。
在 Inventory 當中,關注的重點就是 Infrastructure,不論是 Host、Docker、Kubernetes 或是 AWS 雲端主機或服務。
所以針對 Inventory 的部份,Alerts 的主要設置重點如下:
設定細節可以參考 官方文件 - Observability - Infrastructure threshold rule。
在 Metric 的部份,主要的設定如下:
設定細節可以參考 官方文件 - Observability - Metrics threshold rule。
在 Uptime 的部份,主要的 Alert 設定有以下三種:
在 Monitor 的頁面之中,Uptime 最主要的任務就是確認服務是否還活著,因此 Alert 的設定重點為:
設定細節可以參考 官方文件 - Observability - Monitor status rule。
TLS Certificate 的 Alert 很單純,就只有一個重點:
設定細節可以參考 官方文件 - Observability - TLS certificate rule。
在 Uptime Monitor 的頁面中,如我們前一篇文章的介紹,可以開啟 Machine Learning 的 Anomaly detecion 的功能。
一但開始這個功能之後,就可以在 Monitor 的回應時間被判定成異常時,主動發送 Alert。
點選 Enable anomaly alert 後的設定畫面如下:
設定細節可以參考 官方文件 - Observability - Uptime duration anomaly rule。
查看最新 Elasticsearch 或是 Elastic Stack 教育訓練資訊: https://training.onedoggo.com
歡迎追蹤我的 FB 粉絲頁: 喬叔 - Elastic Stack 技術交流
不論是技術分享的文章、公開線上分享、或是實體課程資訊,都會在粉絲頁通知大家哦!