date:
updated:
折腾一下Prometheus集群监控
由于目前手头的服务器确实有点多,并且确实缺少一个可靠的监控+告警系统,所以我就开始折腾起了开源的集群监控解决方案
安装 prometheus
由于全程都在用Docker,所以安装过程还算顺利,直接拉取镜像,配置环境变量然后运行就行了
1
| sudo docker run -d -p 9090:9090 --name prometheus -v /home/prometheus/data:/data prom/prometheus --config.file=/data/prometheus.yml
|
然后改一下配置文件
下面是我的部分配置文件,可以进行一下参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| global: scrape_interval: 5s evaluation_interval: 10s
alerting: alertmanagers: - static_configs: - targets: ['ip:port']
rule_files: - "/prometheus-data/rule/*.yml"
scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: - localhost:9090 - job_name: cadvisor static_configs: - targets: - ip:port
|
安装好之后打开网页应该会看到这样的界面

安装 cadvisor 和 node-exporter
cadvisor 可以监控Docker
node-exporter 可以监控系统信息
它们俩也可以使用docker安装,直接运行
1
| docker run -d -p 8080:8080 --name cadvisor -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro google/cadvisor:latest
|
和
1
| docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter -collector.procfs /host/proc -collector.sysfs /host/sys -collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
|
安装node-exporter的时候记得根据实际情况修改一下参数,否则可能会出现采集不到数据的情况
对接完成之后就可以在Prometheus里面看到数据了

安装 alertmanagers
一样是使用docker,直接运行
1
| docker run -d -p 9093:9093 --name alertmanager -v /home/prometheus/alertmanager/config:/config -v /home/prometheus/alertmanager/data:/alertmanager/data prom/alertmanager:latest
|
就行了
配置告警
prometheus的rule_files是告警规则的文件路径,具体写法大致如下
1 2 3 4 5 6 7 8 9 10 11
| groups: - name: disk rules: - alert: disk expr: predict_linear( node_filesystem_free_bytes[8h],6*3600 ) < 0 for: 1s labels: user: alert annotations: summary: "{{ $labels.instance }} 的磁盘空间预计会在6小时内被占满" description: ""
|
alerting的配置可以配合alertmanagers提供告警管理,支持webhook推送,可以配合钉钉机器人使用
整个漂亮的监控面板
直接运行下面的代码,安装Grafana
1
| docker run -d --name grafana -p 3000:3000 -v /data/grafana:/var/lib/grafana grafana/grafana
|
然后就可以开始制作监控面板了,也可以使用社区已经做好的模板进行修改
下面是我自己修改的监控面板

