docker-prometheus-report 是专门针对 Prometheus制作的一个自动化生成月度报表脚本,目的是为了获取prometheus监控数据,从而可以更好的分析监控数据,同时也可以使用这些数据进行一些统计工作,方便更好的展示工作的内容,该功能包括:
-
集成SMTP,通过邮箱发送报表数据(xlsx格式)
-
统计月度监控主机
cpu数据,包括cpu平均使用率、cpu最低使用率和cpu最高使用率 -
统计月度监控主机
内存数据,包括内存总容量、内存平均使用率、内存最小使用率、内存最大使用率等 -
统计月度监控主机
磁盘数据,包括磁盘总容量、磁盘平均使用率、磁盘最小使用率、磁盘最大使用率 -
对月度的使用率超过80%做出红色预警
-
集成docker容器化部署
采用docker容器化一键部署:
下载源码:
git clone https://xxx.com
cd docker-prometheus-report/- 构建镜像
# 构建prometheus-report镜像
docker build -f report/Dockerfile -t prometheus-report:latest .- 启动容器
# 启动容器
docker compose up -d# config.yaml
email:
sender: 'xxxxxxxxx@xxx.com' # 发送邮箱
port: 587 # 邮箱端口,465/587
code: 'xxxxxxxxxxxxx' # 发送邮箱授权码/密码
receer: 'xxxx@xxx.com' # 接收邮箱
server: 'xxx' # 邮箱服务器,例如 smtp.163.com
insecure: 'true' # 开启ssl/tls,true为关闭,false开启
# prometheus配置
prometheus:
enable: true # 开启prometheus报表
urls: # prometheus的url
- http://xxx.com:port
# - http://192.168.1.224:30901 # 可以定义多个获取数据的url源
matches: # 匹配规则,需要获取到node-exporter
- job=~"node-exporter"
timeout: 10 #超时时间,这个很重要,网络延迟高建议调高
step: 5m # 5m(5分钟),5h(5小时)时间间隔/步长,这个越大,数据越稀疏,越小,数据越密集
insecure: 'false' # 开启tls连接prometheus,这个要看prometheus的服务配置
report_mode: aggregate # 默认即可
# zabbix配置
zabbix:
enable: false #开启zabbix报表
db_type: mysql # 可选: mysql / postgres
host: localhost # zabbix后端数据库
port: 3306 # 端口
user: zabbix # 用户
password: '123456' # 密码
database: zabbix # 数据库
charset: utf8mb4 # 字符集使用 crontab -e 打开定时任务配置,新增一下配置:
这里需要确定自己的源码下载的位置问题
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 每月1日12:00执行,自动获取上个月报表数据
0 12 1 * * root /usr/bin/docker-compose -f /path/to/docker-compose.yml run --rm prometheus-report > /path/to/cron.log 2>&1
执行一次报表生成:
# 进行一次容器执行,然后在删除容器
docker-compose run --rm prometheus-report查看是否能够收到邮箱。