[开源]监控可视化维护基于Consul的WEB运维平台,优雅管理与展示

开源系统流程管理
2026-06-28 04:23 1 次浏览 • 0 次下载 0KB
[开源]监控可视化维护基于Consul的WEB运维平台,优雅管理与展示

一、开源项目简介

后羿 - TenSunS(原ConsulManager)是一个使用Flask+Vue开发,基于Consul的WEB运维平台,弥补了Consul官方UI对Services管理的不足;并且基于Consul的服务发现与键值存储:实现了Prometheus自动发现多云厂商各资源信息;基于Blackbox对站点监控的可视化维护;以及对自建与云上资源的优雅管理与展示。

二、开源协议

使用WTFPL开源协议

三、界面展示

Consul Web Manager 界面

多云ECS同步Consul界面

多云ECS同步JumpServer界面

Node Exporter Dashboard 截图

 

Blackbox Manager 界面

Blackbox Exporter Dashboard 截图

高危漏洞采集与通知 界面

钉钉告警通知

四、功能概述

功能描述

1. Consul管理(比官方更优雅的Consul Web UI)

  • 支持Consul Services的增删改查,可以批量删除Service。
  • 直观的查看每个Services实例的信息,及整体Services的健康状态。
  • 可以便捷的对Services实例的Tags、Meta、健康检查配置管理与查询。

2. 自建与云资源监控管理(ECS/RDS/Redis)

基于Consul实现Prometheus监控目标的自动发现。
  • ✔当前已支持对接阿里云、腾讯云、华为云。
  • ⭐支持多云ECS/RDS/Redis的资源、分组、标签自动同步到Consul并接入到Prometheus自动发现!(并提供云资源信息查询与自定义页面)
  • ⭐支持多云ECS信息自动同步到JumpServer。
  • ⭐支持多云账户余额与云资源到期日设置阈值告警通知。
  • ⭐支持作为Exporter接入Prometheus:Prometheus增加ConsulManager的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个漏洞列表。
  • 每小时采集一次,发现新漏洞立即推送到群机器人。
  • 支持企微、钉钉、飞书群机器人通知。

五、技术选型

部署说明

♨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
  • 一键安装:curl -s https://starsl.cn/static/img/all_install.sh|sudo bash
  • 运行该脚本后会使用docker-compose启动TenSunS和Consul,安装路径是:/opt/tensuns
  • 脚本运行完成后会有使用提示及自动生成登录密码,打开浏览器立刻登录TenSunS,开始体验吧!
  • 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文件。TenSunS是无状态的,有一个初始化容器检查consul连接是否成功,所以建议先安装Consul。Conusl是StatefulSet,需要先配置好存储(volumeClaimTemplates),默认是华为云自动创建存储的配置例子,请自行参考修改。完成安装后即可使用任意K8S节点IP+31026端口访问,调用的service是tensuns。


注意

  • 所有安装方式Consul的管理token会自动生成,可以在Consul的配置文件或TenSunS的docker-compose中查看。
  • 已经部署Consul的用户可以在TenSunS的docker-compose.yaml或者K8S yaml文件的环境变量部分找到:consul_token,consul_url,并配置上你的Consul信息;环境变量admin_passwd是TenSunS登录admin账号的密码。
  • 安装使用中遇到问题,以及问题排查,请参考:FAQ

感谢伟大的Flask、VUE、vue-admin-template

Flask 是一个微型的 Python 开发的 Web 框架,基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎。Flask 使用 BSD 授权。Flask 也被称为 “microframework”,因为它使用简单的核心,用 extension 增加其他功能。Flask 没有默认使用的数据库、窗体验证工具。然而,Flask 保留了扩增的弹性,可以用 Flask-extension 加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。

Consul是一个服务网格解决方案,提供了一个功能齐全的控制平面,具有服务发现、配置和分段功能。这些功能中的每一项都可以根据需要单独使用,也可以一起使用来构建一个完整的服务网格。Consul需要一个数据平面,并支持代理和原生集成模型。Consul提供了一个简单的内置代理,因此一切都可以开箱即用,但也支持第三方代理集成,如Envoy。回顾下面的视频,向HashiCorp的联合创始人Armon了解更多关于Consul的信息。

Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。