1、部署pushgateway并配置prometheus能够拿到pushgateway的数据,类似下图。部署过程参考:https://www.cnblogs.com/sunnytomorrow/p/16068405.html
2、创建脚本生成监控项数据并写入文件,然后将数据put或post到pushgateway中。注意:数据必须为数字格式。
我这里创建”存活容器数量”和”停止容器数量”的监控项
bash;gutter:true;
]# cat query.sh#!/bin/bash
Up_container=docker ps -a |grep Up|wc -l
Exit_container=docker ps -a |grep Exit|wc -l
echo -e "Up_container $Up_container\nExit_container $Exit_container" > result.txt]# ./query.sh]# cat result.txtUp_container 1 # Up_container类似于为变量名Exit_container 0]# curl -X PUT --data-binary @result.txt http://192.168.4.67:9091/metrics/job/test_job/instance/test_instance
3、访问prometheus界面,查看pushgateway中的数据
这里,我们便能看到我们put上来的数据已经进入到prometheus中了。然后我们配置grafana展示我们自定义的监控项。
访问grafana,创建dashboard,并根据变量名获取到数据,并以图形或数字展示,过程如下
可以看到,我们在输入监控项的名字后,点击一下空白区域,指标相关的值就以图形展示了,这里我们还可以配置alert,以实现该监控项的告警
我这里配置的为一分钟内平均容器数低于1就告警,等同于当这个容器挂掉的时候就告警。然后点击save进行保存。然后就可以看到我们自定义的监控项已经在dashboard里面了,并且还有告警机制。
邮件告警配置参考:https://www.cnblogs.com/sunnytomorrow/p/16071011.html
待解决问题:
1、pushgateway里的数据持久化问题,可以通过启动时添加参数进行持久化,如果不持久化,数据将一直存储在内存中。还有需不需要持久化问题
2、put和post数据问题,put会覆盖掉之前提交的同instance,同job里的所有数据,而post只会覆盖掉同instance,同job里的同名的数据
End !
Original: https://www.cnblogs.com/sunnytomorrow/p/16071881.html
Author: NorthFeng
Title: 记一次部署系列:prometheus通过pushgateway配置自定义监控项
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590695/
转载文章受原作者版权保护。转载请注明原作者出处!