ConsulManager

Consul WEB 管理工具
授权协议 MIT
开发语言 Python JavaScript TypeScript
所属分类 Web应用开发、 后台管理系统(模板)
软件类型 开源软件
地区 国产
投 递 者 邬飞捷
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ConsulManager 是一个使用 Flask+Vue 开发的 Consul WEB 管理工具,比官方自带的 WEB UI 实现了更多的功能。

  • 可以方便的对Consul Services进行增删改查,支持批量操作;并优化了对Tags、Meta、健康检查的配置管理与查询展示。
  • 本工具基于Prometheus自动发现Consul,实现了两个监控管理维护的应用:
    1. 基于云厂商ECS的自动同步到Consul,并接入Prometheus监控。(设计了一个关联的Grafana看板)
    2. 基于Blackbox实现站点与接口监控接入Consul,通过Web界面方便管理。(设计了一个关联的Grafana看板)
  • 本工具支持使用docker-compose快速部署。

实现功能

Consul Web Manager

  • 比官方自带的WEB UI实现了更多的功能。
  • 包含Consul服务器的状态信息。
  • 支持Consul Services的增删改查,可以批量删除Service。
  • 直观的查看每个Services实例的信息,及整体Services的健康状态。
  • 可以方便的对每个Services实例的Tags、Meta、健康检查进行配置。

ECS Manager

  • 支持同步阿里云,腾讯云,华为云的ECS主机信息到Consul。
  • 基于Consul实现Prometheus监控目标的自动发现。
  • 支持同步各云厂商的分组信息到Consul,用于关联ECS分组。
  • 提供了可查询分组与ECS信息的页面,指标中加入了ECS到期日等信息,可直接监控。
  • 可调整同步的时间间隔。
  • 提供了按需的Prometheus配置生成功能。
  • 提供了一个匹配ECS Manager各字段的node_exporter Grafana展示看板。

Blackbox Manager

  • 基于Prometheus + Blackbox_Exporter实现站点与接口监控。
  • 基于Consul实现Prometheus监控目标的自动发现。
  • 使用Web操作即可简单的对监控目标增删改查,支持批量删除,以及方便的分类维护管理。
  • 提供了Blackbox的配置,Prometheus的配置以及Prometheus站点监控的告警规则。
  • 提供了一个匹配Blackbox Manager各字段的Blackbox Exporter Grafana展示看板。
  • 提供脚本可批量导入监控目标到Consul。

更新记录

部分截图 (点击查看完整截图

Consul Web Manager 界面

ECS Manager 界面

Blackbox Manager 界面

Node Exporter Dashboard 截图

Blackbox Exporter Dashboard 截图

部署说明

1. 部署Consul

安装

# 使用yum部署consul
yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul
# 或者直接下RPM包安装
wget https://rpm.releases.hashicorp.com/RHEL/7/x86_64/stable/consul-1.11.4.x86_64.rpm
rpm -ivh ./consul-1.11.1-1.x86_64.rpm

配置

vi /etc/consul.d/consul.hcl
advertise_addr = "192.168.x.x" #可以先不加这行,如果启动有问题再加上,一般有多网卡需要配置这行,填写你的网卡IP
data_dir = "/opt/consul"
client_addr = "0.0.0.0"
ui_config{
  enabled = true
}
server = true
bootstrap = true
acl = {
  enabled = true
  default_policy = "deny"
  enable_token_persistence = true
}

启动与鉴权配置

chown -R consul:consul /opt/consul  #注意下数据目录的权限。
systemctl enable consul.service
systemctl start consul.service
# 获取登录密码
consul acl bootstrap
# 记录 SecretID

2. 部署Consul Manager

使用docker-compose来部署

  • 下载:https://raw.githubusercontent.com/starsliao/ConsulManager/main/docker-compose.yml
  • 编辑:docker-compose.yml,修改3个环境变量:
    • consul的token:consul_token
    • consul的URL(/v1要保留):consul_url
    • 登录Consul Manager的密码:admin_passwd
  • 启动:docker-compose pull && docker-compose up -d
  • 访问:http://{IP}:1026

应用场景1:如何优雅的基于Consul自动同步ECS主机监控

应用场景2:如何优雅的使用Consul管理Blackbox站点监控

开发线路


  • 【ConsulManager介绍】 Consul字段设计说明 服务首次启动时会创建一个随机秘钥,存放到consul_kv的/ConsulManager/assets/secret/skey,该秘钥用于对登录Token,各云厂商账号AKSK的加解密使用。 云厂商的每个账号下的ECS实例信息:会存储到Consul的对应Services下的实例中,ECS的实例ID会作为ServiceID。 云厂商的每个

  • 【ConsulManager介绍】 Consul字段设计说明 所有数据存在一个名为blackbox_exporter的Services项中,每个监控目标为一个子Service。 每个Service使用Meta的kv保存监控目标的属性:module,company,project,env,name,instance,分别表示:监控类型,公司部门,项目,环境,名称,实例url。 新增监控时,监控类型字

 相关资料
  • 主要内容:下载 RockMongo,安装 RockMongo,创建数据库,创建集合,创建文档,导出/导入数据RockMongo 是一个 MongoDB 管理工具,您可以使用它来管理 MongoDB 服务、数据库、集合、文档、索引等等。它为阅读、编写和创建文档提供了一种非常友好的方式,类似于使用 PHP 开发的 MySQL 管理工具 PHPMyAdmin。 下载 RockMongo 您可以从 https://gitee.com/mirrors/rockmongo 或 https://github.

  • crontab A crontab tool build by golang Crontab 背景: 在实际工作中经常需要在服务器上添加定时任务,当任务多了的时候管理起来就比较麻烦,所以想要有一个方便使用和管理的crontab工具 功能介绍: 使用web api的方式提供任务的添加、删除、查看、运行状态、暂停、恢复、重新加载配置、日志查看等功能,清晰的任务执行日志和工具的系统日志便于问题查找和任务

  • rpcx提供了一个简单的UI管理程序,可以查看和搜索当前注册的服务以及服务的状态, 同时你也可以临时禁用服务,分组或者更改服务的元数据。 rpcx-ui

  • 提纲ceph auth [ add | caps | del | export | get | get-key | get-or-create | get-or-create-key | import | list | print-key | print_key ] ... ceph compact ceph config-key [ del | exists | get | list | put

  • Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: /HelloWorld/HelloWorld/settings.py 文件代码:INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib

  • Package Import Paths # demopkg1/__init__.py import pkgutil import pprint print('demopkg1.__path__ before:') pprint.pprint(__path__) print() __path__ = pkgutil.extend_path(__path__, __name__) print(

  • 工作管理指的是在单个登录终端(也就是登录的 Shell 界面)同时管理多个工作的行为。也就是说,我们登陆了一个终端,已经在执行一个操作,那么是否可以在不关闭当前操作的情况下执行其他操作呢? 当然可以,我们可以再启动一个终端,然后执行其他的操作。不过,是否可以在一个终端执行不同的操作呢?这就需要通过工作管理来实现了。 例如,我在当前终端正在 vi 一个文件,在不停止 vi 的情况下,如果我想在同一个

  • 我虽不要求达不到软件工程的高度,但基本的管理还是有必要的,比如,工程文件的管理、多文档编辑、工程环境的保存与恢复。 6.1 工程文件浏览 我通常将工程相关的文档放在同个目录下,通过 NERDtree (https://github.com/scrooloose/nerdtree )插件可以查看文件列表,要打开哪个文件,光标选中后回车即可在新 buffer 中打开。 安装好 NERDtree 后,请