后羿 - TenSunS v1.1.0 支援對接AWS的EC2、RDS、ElastiCache

StarsL發表於2024-11-02

🦄概述

后羿 - TenSunS(原ConsulManager)是一個使用Flask+Vue開發,基於Consul的WEB運維平臺,彌補了Consul官方UI對Services管理的不足;並且基於Consul的服務發現與鍵值儲存:實現了Prometheus自動發現多雲廠商各資源資訊;基於Blackbox對站點監控的視覺化維護;以及對自建與雲上資源的優雅管理與展示。

tensuns-arch

  • 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推薦):

    1. 前提伺服器需要先安裝好docker和docker-compose (新版docker自帶compose指令可以提供docker-compose的功能)
    2. 一鍵安裝curl -s https://starsl.cn/static/img/all_install.sh|sudo bash
    3. 執行完成後注意檢查輸出是否有異常資訊,如果有iptables相關的異常可能是docker引起的,可以重啟docker(systemctl restart docker)後重試。
    4. 執行該指令碼後會使用docker-compose啟動TenSunS和Consul,安裝路徑是:/opt/tensuns
    5. 指令碼執行完成後會有使用提示及自動生成登入密碼,開啟瀏覽器立刻登入TenSunS,開始體驗吧!
    6. 編輯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
    1. 執行後需要設定admin使用者的密碼。
    2. 指令碼執行完成後只會生成TenSunS的安裝yaml檔案和Consul的安裝yaml檔案,不會做其它操作,需要執行kubectl apply命令來完成安裝。

      TenSunS是無狀態的,有一個初始化容器檢查consul連線是否成功,所以建議先安裝Consul。Consul是StatefulSet,需要先配置好儲存(volumeClaimTemplates),預設是華為雲自動建立儲存的配置例子,請自行參考修改。

    3. 完成安裝後即可使用任意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例項

相關文章