Prometheus的告警规则一般都是在服务器中进行编辑修改,然后在重载prometheus,全程需要命令行敲代码进行操作,这些操作对于运维来说没有什么难度,但对于研发或者不清楚告警部署的人来说,还是会有一些不方面,因此本文通过gitlab代码管理平台的流水线来实现prometheus告警规则的现在编辑,主要分以下步骤:
- 在gitlab中创建项目和prometheus的告警规则
- 为项目创建runner并进行注册
- 创建流水线
1.在gitlab中创建项目和prometheus的告警规则
图片
图片
创建项目,并将所有告警规则放在main分支下
2.为项目创建runner并进行注册
创建runner
图片
在项目设置的CI/CD中创建runner,注意runner的标签需要设为空并勾选上允许运行未打标签的作业或在后面的流水线中设置相同的标签
注册runner
图片
根据步骤在服务器上注册runner,建议将runner部署到gitlab服务器
3.创建流水线并执行验证
创建流水线
在项目构建的流水线编辑器中编写流水线,设置为只有当分支中的yaml文件有更新才执行,执行内容为远程到prometheus服务器上,下载gitlab仓库中的告警规则,替换告警规则文件并重载pronetheus
示例:
deploy-job:
stage: deploy
environment: production
script:
- echo "Deploying application..."
- ssh -v root@192.168.118.12 -p58422 "cd /data/apps/prometheus;rm -rf alert;git clone ssh://git@192.168.180.171:9922/ops/alert.git;time=\$(date +\"%Y%m%d\");mv alter_rules alter_rules_bak\${time};mkdir alter_rules;cp -a alert/* alter_rules;curl -X POST http://localhost:9090/-/reload"
- echo "Application successfully deployed."
only:
changes:
- "*.yaml"
验证
图片
图片
图片
修改告警规则后可在构建的作业汇总查看流水线运行情况
注意,prometheus需要开启热加载web.enable-lifecycle