為什麼我們需要 Kibana 公告?
身為 SRE,我們完成了 Elasticsearch 8.19.10 的升級,甚至還發現 Elastic 原廠把大家熟悉的 「APM」 改名成了 「Applications」。
如果這時候只發一封 Email 給全公司開發者,結果通常是:
- 大家沒看信。
- 登入 Kibana 找不到 APM。
- 維運團隊的電話被打爆。
為了避免這種情況,Kibana 提供了兩種內建機制:Global Banner (全域橫幅) 與 Access Agreement (存取協議)。以下教你如何設定。
方法一:溫和提醒 (Global Banner)
這是 Kibana 頂部的一條橫幅。它的優點是不會打斷使用者的工作流程,適合用來標示環境(如 UAT/Prod)或是簡單的狀態通知。
適用場景
- ✅ 標示「這是測試環境」。
- ✅ 簡單的版本升級通知。
- ✅ 系統維護中的狀態顯示。
設定範例 (kibana.yml)
在這次 8.19.10 升級中,我們用綠色背景代表「升級成功」,並用簡短文字提示功能變更。
# =================================================
# 🟢 頂部橫幅設定 (Global Banner)
# =================================================
# 位置:頁面最上方
xpack.banners.placement: "top"
# 內容:支援純文字 (不支援 Markdown)
xpack.banners.textContent: "✅ 測試環境已升級至 8.19.10 | ℹ️ 注意:原 APM 功能名稱現已變更為 Applications"
# 樣式:使用 HEX 色碼
xpack.banners.textColor: "#FFFFFF" # 白色文字
xpack.banners.backgroundColor: "#27AE60" # 綠色背景 (代表成功/正常)
SRE 小撇步: 如果是維護中或警告,背景色可以用紅色 (#E74C3C);如果是 UAT 環境常駐提示,可以用藍色 (#2980B9)。
方法二:強制告知 (Access Agreement)
這是一個登入後會跳出的「模態視窗 (Modal)」。使用者 必須 點擊「我同意 (Accept)」才能進入系統。這非常適合用來公告重大變更,確保每個人「被迫」看過一次。
適用場景
- ✅ 重大功能改版 (如 APM 改名)。
- ✅ 系統維護時間預告。
- ✅ 資安合規宣告。
設定範例 (kibana.yml)
這裡支援 Markdown 語法,所以我們可以做排版、粗體,甚至留下聯絡人資訊。
# =================================================
# 📢 登入彈窗設定 (Access Agreement)
# =================================================
# 注意:使用 '|' 符號來支援多行 Markdown 內容
xpack.security.accessAgreement.message: |
### 📢 測試環境公告 (System Announcement)
---
**✅ 版本升級完成**
本環境已順利升級至版本 **8.19.10**。
**ℹ️ 重要功能名稱變更**
請注意,為了配合新版介面整合,原 **「APM」** 功能入口名稱已變更為 **「Applications」**。
---
若有任何使用問題,請聯繫系統管理員:
* samo
注意: 修改此設定後,所有使用者 (包含已經登入的) 在下次重新整理頁面或登入時,都會再次看到這個視窗。
總結:我該用哪一個?
在這次升級案中,我建議 「兩者並用」,但有階段性:
-
剛升級完的第一週: 開啟 Access Agreement (彈窗)。因為「APM 改名」這件事很容易讓人迷路,需要強迫告知。
-
一週後: 關閉彈窗,改用 Global Banner (橫幅) 常駐。讓使用者知道目前的環境版本,但不再干擾操作。
部署指令
修改完 kibana.yml 後,別忘了重啟服務才會生效:
sudo systemctl restart kibana
現在,享受一個電話不再被打爆的寧靜下午吧!