2-Prometheus监控主机与容器

prometheus

Prometheus监控

上一章部署了 prometheus server,想要对主机或容器进行监控需要在被监控端安装对应的Exporter。因为prometheus使用的是时间序列,所以prometheus server与被监控端要做好时间同步
从prometheus官网中可以看到许多已经成行的采集插件,每个exporter采集的数据可以从对应exporter的github中查看
black_exporter:黑盒采集器,通过 HTTP、HTTPS、DNS、TCP、ICMP 和 gRPC 对端点进行黑盒探测
consul_exporter
graphite_exporter:导出 Graphite 的监控指标并对它们进行转换和公开以供 Prometheus 使用
haproxy_exporter
memcached_exporter
mysqld_exporter
node_exporter:最常用的

监控Linux主机(9100端口)

从Prometheus官网下载node_exporter组件,在远程linux主机上安装node_exporter组件,安装方式与Prometheus安装方式类似。

1
2
3
4
~]# tar zxvf node_exporter-1.4.0.linux-amd64.tar.gz -C /usr/local/
~]# ln -s /usr/local/node_exporter-1.4.0.linux-amd64/ /usr/local/node_exporter
~]# ln -s /usr/local/node_exporter/node_exporter /usr/local/bin/node_exporter
~]# nohup /usr/local/node_exporter/node_exporter > /usr/local/node_exporter/node_exporter.log 2>&1 &

查看9100端口是否被监听,以及访问 node_ip:9100/metrics查看收集的监控信息。

Prometheus server配置

1
2
3
4
5
scrape_configs:
#scrape_configs中添加以下配置
- job_name: "node"
static_configs:
- targets: ["192.168.27.7:9100"] #添加多个["192.168.27.7:9100","192.168.27.8:9100"]

配置修改完成后需要将Prometheus server重启,重启后在web管理界面-Status-Targets中可以看到node已经被添加。
node监控

监控Docker容器(8080端口)

推荐使用Google的cAdvisor工具,cAdvisor作为Docker容器运行,单个cAdvisor容器返回针对Docker守护进程和所有正在运行的容器的指标

1
docker run --volume=/:/rootfs:ro --privileged=true --restart=always --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest

容器启动后,可以查看cAdvisor web界面node_ip:8080,以及查看node_ip:8080/metrics收集的监控信息。

Prometheus server配置

与添加node方法相同

1
2
3
4
5
scrape_configs:
#scrape_configs中添加以下配置
- job_name: "docker"
static_configs:
- targets: ["192.168.27.7:8080"] #添加多个["192.168.27.7:8080","192.168.27.8:8080"]

配置修改完成后需要将Prometheus server重启,重启后在web管理界面-Status-Targets中可以看到docker已经被添加。
docker监控

监控MYSQL(9104端口)

1
2
3
4
~]# tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/
~]# ln -s /usr/local/mysqld_exporter-0.14.0.linux-amd64/ /usr/local/mysqld_exporter
~]# ln -s /usr/local/mysqld_exporter/mysqld_exporter /usr/local/bin/mysqld_exporter
~]# nohup /usr/local/mysqld_exporter/mysqld_exporter > /usr/local/mysqld_exporter/mysqld_exporter.log 2>&1 &