🦄概述
后羿 - TenSunS(原ConsulManager)是一個使用Flask+Vue開發,基於Consul的WEB運維平臺,彌補了Consul官方UI對Services管理的不足;並且基於Consul的服務發現與鍵值儲存:實現了Prometheus自動發現多雲廠商各資源資訊;基於Blackbox對站點監控的視覺化維護;以及對自建與雲上資源的優雅管理與展示。
- v1.0.0開始支援自定義登入頁,登入後你可以在
系統設定
中自定義登入頁:歡迎Show出你的登入頁。 - 如果你覺得本專案還不錯,煩請在這裡留下腳印,簡單登記下,也可以分享您的使用經驗與實踐,感謝支援!
🌈功能描述
🎡1. Consul管理(比官方更優雅的Consul Web UI)
- 支援Consul Services的增刪改查,可以批次刪除Service。
- 直觀的檢視每個Services例項的資訊,及整體Services的健康狀態。
- 可以便捷的對Services例項的Tags、Meta、健康檢查配置管理與查詢。
💎2. 自建與雲資源監控管理(ECS/RDS/Redis)
基於Consul實現Prometheus監控目標的自動發現。
-
✔當前已支援對接阿里雲、騰訊雲、華為雲、AWS。
- ⭐支援多雲ECS/RDS/Redis的資源、分組、標籤自動同步到Consul並接入到Prometheus自動發現!(並提供雲資源資訊查詢與自定義頁面)
- ⭐支援多雲ECS資訊自動同步到JumpServer。
- ⭐支援多雲賬戶餘額與雲資源到期日設定閾值告警通知。
- ⭐支援作為Exporter接入Prometheus:Prometheus增加TenSunS的JOB後可抓取雲廠商的部分MySQL/Redis指標。(彌補原生Exporter無法獲取部分雲MySQL/Redis指標的問題)
-
✔支援自建主機/MySQL/Redis接入WEB管理,支援增刪改查、批次匯入匯出,自動同步到Consul並接入到Prometheus監控!
-
✔提供了按需生成Prometheus配置與ECS/MySQL/Redis告警規則的功能。
-
✔設計了多個支援同步的各欄位展示的Node_Exporter、Mysqld_Exporter、Redis_Exporter Grafana看板。
🚀3. 站點與介面監控管理
基於Consul + Prometheus + Blackbox_Exporter實現站點的自動發現與監控。
- 使用Web頁面即可對監控目標增刪改查,支援站點的分級分組查詢管理。
- 支援對監控目標的批次刪除與批次匯入,資料實時同步到Consul。
- 提供了Blackbox的配置、Prometheus的配置以及Prometheus站點監控的告警規則。
- 設計了一個支援各分級分組欄位展示的Blackbox_Exporter Grafana看板。
💫4. 高危漏洞採集與實時告警
- 增加了高危風險漏洞採集與實時告警通知功能。
- 功能開啟即可採集最新30個漏洞列表。
- 每小時採集一次,發現新漏洞立即推送到群機器人。
- 支援企微、釘釘、飛書群機器人通知。
倉庫地址:https://github.com/starsliao/TenSunS
💾部署說明
- ♨TenSunS 版本更新只需在
docker-compose.yaml
所在目錄執行docker-compose pull && docker-compose up -d
即可完成更新。 - 💥新增基於docker/K8S的一鍵部署指令碼,Consul獨立部署指令碼,安裝指令碼統一放置install目錄
基於docker-compose安裝
-
install/docker-compose/all_install.sh
(推薦):- 前提伺服器需要先安裝好docker和docker-compose (新版docker自帶compose指令可以提供docker-compose的功能)
- 一鍵安裝:
curl -s https://starsl.cn/static/img/all_install.sh|sudo bash
- 執行完成後注意檢查輸出是否有異常資訊,如果有iptables相關的異常可能是docker引起的,可以重啟docker(
systemctl restart docker
)後重試。 - 執行該指令碼後會使用docker-compose啟動TenSunS和Consul,安裝路徑是:/opt/tensuns
- 指令碼執行完成後會有使用提示及自動生成登入密碼,開啟瀏覽器立刻登入TenSunS,開始體驗吧!
- 編輯
docker-compose.yaml
的變數admin_passwd
的值可以修改登入的密碼,修改完成後必須執行docker-compose up -d
使修改密碼生效。
-
install/docker-compose/consul_install_only.sh
獨立的Consul安裝指令碼 -
install/docker-compose/tensuns_install_only.sh
獨立的TenSunS安裝指令碼(已經有Consul的使用者可以使用這個指令碼)
基於K8S安裝
install/k8s/install.sh
:- 執行後需要設定admin使用者的密碼。
- 指令碼執行完成後只會生成TenSunS的安裝yaml檔案和Consul的安裝yaml檔案,不會做其它操作,需要執行
kubectl apply
命令來完成安裝。TenSunS是無狀態的,有一個初始化容器檢查consul連線是否成功,所以建議先安裝Consul。Consul是StatefulSet,需要先配置好儲存(volumeClaimTemplates),預設是華為雲自動建立儲存的配置例子,請自行參考修改。
- 完成安裝後即可使用任意K8S節點IP+31026埠訪問,呼叫的service是tensuns。
注意
- 所有安裝方式Consul的管理token會自動生成,可以在Consul的配置檔案或TenSunS的docker-compose.yaml中檢視。
- 已經部署Consul的使用者可以在TenSunS的docker-compose.yaml或者K8S yaml檔案的環境變數部分找到:
consul_token
,consul_url
,並配置上你的Consul資訊;環境變數admin_passwd
是TenSunS登入admin賬號的密碼。 - 安裝使用中遇到問題,以及問題排查,請參考:FAQ
🎉活動
- 登入後你可以在
系統設定
中來自定義登入頁
:歡迎Show出你的登入頁。 - 如果你覺得本專案還不錯,煩請在這裡留下腳印,簡單登記下,也可以分享您的使用經驗與實踐,感謝支援!
📌更新記錄
🎨截圖預覽(點選檢視完整截圖)
Consul Web Manager 介面
多雲ECS同步Consul介面
多雲ECS同步JumpServer介面
Node Exporter Dashboard 截圖
Blackbox Manager 介面
Blackbox Exporter Dashboard 截圖
高危漏洞採集與通知 介面
釘釘告警通知
🥇最佳實踐
-
TenSunS:實踐與FAQ
-
應用場景1:如何優雅的基於Consul自動同步ECS主機監控
-
應用場景2:如何優雅的使用Consul管理Blackbox站點監控
-
應用場景3:如何把雲主機自動同步到JumpServer
-
應用場景4:使用1個mysqld_exporter監控所有的MySQL例項
-
應用場景5:使用1個redis_exporter監控所有的Redis例項