-
项目简介
Prometheus Manager 是由Aide-Cloud团队开发并维护的一款管理工具,专为简化Prometheus监控系统的运维工作而设计。该工具提供了一站式的解决方案,能够集中管理和配置多个Prometheus实例及其相关的服务发现、规则集和警报通知。
-
体验demo
https://prometheus.aide-cloud.cn/
账号:prometheus
密码:123456
账号:num1
密码:68b329da9893e34099c7d8ad5cb9c940
- 操作系统:Linux、macOS、Windows
- Go语言环境:Go 1.20+
- Docker (可选,用于快速部署)
- K8s (暂时未尝试)
- 环境依赖:
- mysql数据库:8.0+
- redis数据库(可选)
- kafka消息队列(可选)
如果没有这些环境,可以直接进入
./deploy/rely
录下, 执行docker-compose up -d
启动本地默认依赖, 该依赖包含了mysql,redis,kafka等,你可以选择屏蔽掉redis和kafka, 只启动mysql部分
- 准备如下配置文件
# app/prom_server/configs_local/config.yaml
env:
name: prometheus-manager_prom_server
version: 0.0.1
# local dev两种模式会自动migrate数据库
env: pro
metadata:
description: Prometheus Manager Server APP
version: 0.0.1
author: 梧桐
license: MIT
email: aidecloud@163.com
url: https://github.com/aide-cloud/prometheus-manager
server:
http:
addr: 0.0.0.0:8000
timeout: 1s
grpc:
addr: 0.0.0.0:9000
timeout: 1s
data:
database:
driver: mysql
# mysql数据库地址,替换为自己的数据库实际连接,并创建prometheus-manager数据库
source: root:123456@tcp(localhost:3306)/prometheus-manager?charset=utf8mb4&parseTime=True&loc=Local
debug: true
# 开启redis配置,则使用redis作为缓存组件
# redis:
# addr: localhost:6379
# password: redis#single#test
# read_timeout: 0.2s
# write_timeout: 0.2s
apiWhite:
all:
- /api.auth.Auth/Login
- /api.auth.Auth/Captcha
- /api.interflows.HookInterflow/Receive
jwtApi:
rbacApi:
- /api.auth.Auth/Logout
- /api.auth.Auth/RefreshToken
log:
filename: ./log/prometheus-server.log
level: debug
encoder: json
maxSize: 2
compress: true
# 添加mq配置,则会使用mq通信
#mq:
# kafka:
# groupId: http://localhost:8001/api/v1/interflows/receive
# endpoints:
# - localhost:9092
# app/prom_agent/configs_local/config.yaml
env:
name: prometheus-manager_prom_agent
version: 0.0.1
env: pro
metadata:
description: Prometheus Manager Agent APP
version: 0.0.1
author: 梧桐
license: MIT
email: aidecloud@163.com
url: https://github.com/aide-cloud/prometheus-manager
server:
http:
addr: 0.0.0.0:8001
timeout: 1s
grpc:
addr: 0.0.0.0:9001
timeout: 1s
# 开启redis配置,则使用redis作为缓存组件
#data:
# redis:
# addr: localhost:6379
# password: redis#single#test
# read_timeout: 0.2s
# write_timeout: 0.2s
watchProm:
interval: 10s
# mq配置
#mq:
# kafka:
# groupId: prometheus-agent
# endpoints:
# - localhost:9092
# mq替代配置, 二选一
interflow:
# prom_server的通信地址
server: http://prometheus_manager:8000/api/v1/interflows/receive
# 自身的通信地址
agent: http://prometheus_manager_agent:8000/api/v1/interflows/receive
- 按顺序执行启动命令
# 1. 服务端启动
make local app=app/prom_server
# 2. agent启动
make local app=app/prom_agent
# 3. web端启动
make web
-
如果本地没有mysql数据库,可以通过以下命令在本地快速拉起一个mysql容器,然后通过工具创建一个名为 prometheus-manager 的数据库,如果执行完这步则直接跳过第2步,直接执行执行第3步
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
-
准备上述类似配置,通过容器体验该项目时的配置文件地址
-
prometheus-manager/app/prom_agent/configs/config.yaml
-
prometheus-manager/app/prom_server/configs/config.yaml
- 进入到项目根目录下执行下述命令,在本地一站式启动服务
make all-docker-compose-up
- 功能说明:
主要管理用户信息,包括新增、修改、删除等操作。该系统不提供用户注册功能,用户信息由管理员添加。
- 注意事项:
无
- 功能说明:
主要管理角色信息,包括新增、修改、删除等操作。通过权限和角色绑定,实现权限控制,精确到接口粒度。 采用RBAC模式实现,具体请参见RBAC。
- 注意事项:
无
- 功能说明:
主要管理权限信息,包括新增、修改、删除等操作。这里维护系统全部需要权限控制的接口。系统新增接口, 需要再次录入到权限管理中。
- 功能说明:
主要管理字典信息,包括新增、修改、删除等操作。字典信息主要用于系统中需要使用到的枚举值,比如状态、类型、告警等级等。
- 功能说明:
主要维护告警规则组、告警规则,通过表单方式维护prometheus规则信息,并支持多数据源场景,我们在配置规则时候,可以选择不同数据源,编写不同的报警规则,完成告警规则配置。 同时,还支持配置报警页面,告警事件发生后,能够把相同类型的各种规则事件归类到同一个报警页面,帮助我们运维同学集中处理告警。
- 功能说明:
主要是展示产生的告警数据,并按照不同报警页面分类展示。每一条告警数据除了展示基本信息外, 还可以展示持续时常,支持告警静默、强制删除、告警升级等操作。
- 功能说明:
主要用于查询历史告警,提供统计数据大盘,为复盘提供数据支撑
- 功能说明:
主要提供报警组、报警hook等通信方式维护,为报警策略提供通知对象数据。