Prometheus(普罗米修斯)搭建监控
实验环境:(各个主机,ip,所需服务)
docker01 docker02 docker03
1.10 1.20 1.30
NodeEXporter NodeEXporter NodeEXporter
cAdvisor cAdvisor cAdvisor
Prometheus Server
Grafana
全部关闭防火墙,禁用selinux.
[ ~]# systemctl stop firewalld
[ ~]# systemctl disable firewalld
[ ~]# setenforce 0
setenforce: SELinux is disabled
需要部署组件:
Prometheus Server:普罗米修斯的主服务器。
?
NodeEXporter:负责收集Host硬件信息和操作系统信息。
?
cAdvisor:负责收集Host上运行的容器信息。
?
Grafana:负责展示普罗米修斯监控界面。
1.导入镜像
docker01:
[ ~]# docker load < mycadvisor.tar && docker load < grafana.tar && docker load < node-exporter.tar && docker load < prometheus.tar
docker02:
[ ~]# docker load < mycadvisor.tar && docker load < node-exporter.tar
docker03:
[ ~]# docker load < mycadvisor.tar && docker load < node-exporter.tar
镜像拉入完成!!!
1)3个节点,全部部署node-EXporter和cAdvisor.
PS:3台都弄,都去浏览器验证
部署node-EXporter,收集硬件和系统信息
[ ~]# docker run -d -p 9100:9100 -v /proc:/host/proc -v /sys:/host/sys -v /:/rootfs --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
PS:注意,这里使用了--net=host,这样Prometheus Server可以直接与Node-Exporter通信。
验证:打开浏览器验证结果:ip加9100端口:
//部署安装cAdvisor。收集节点容器信息。
PS:3台都弄,都去浏览器验证
[ ~]# docker run -v /:/rootfs:ro -v /var/run:/var/run/:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -p 8080:8080 --detach=true --name=cadvisor --net=host google/cadvisor
,都去部署完成之后,浏览器访问:IP加8080端口:
2)在docker01上部署Prometheus Server服务。
在部署Prometheus之前,我们需要对它的配置文件进行修改,所以我们先运行一个容器,先将其配置文件拷贝出来。
[ ~]# docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheus
?
[ ~]# docker cp prometheus:/etc/prometheus/prometheus.yml ./
[ ~]# vim prometheus.yml
?
28行改为:
?
? ? - targets: [‘localhost:9090‘,‘localhost:8080‘,‘localhost:9100‘,‘192.168.1.20:8080‘,‘192.168.1.20:9100‘,‘192.168.1.30:8080‘,‘192.168.1.30:9100‘]
每个节点的ip,端口
PS:这里制定了prometheus的监控项,包括它也回监控自己收集到的数据。
[ ~]# docker rm -f prometheus
prometheus
?
[ ~]# docker run -d -p 9090:9090 --name prometheus --net=host -v /root/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
互联网访问验证:docker01的ip加9090端口:
PS:这里能够哦查看到我们各个监控项。
挂起docker02后:
继续运行docker02后:
3)在docker01上,部署grafana服务,用来展示prometheus收集到的数据。
[ ~]# mkdir grafana-storage
[ ~]# chmod 777 -R grafana-storage/
?
[ ~]# docker run -d -p 3000:3000 --name grafana -v /root/grafana-storage:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=123.com" grafana/grafana
浏览器访问验证:
账户:admin
密码:123.com
PS:看到这个,说明prometheus和grafana服务时正常连接的。
此时,虽然granfana收集到了数据,但怎么显示它,仍然是个问题,gafana支持自定义显示信息,不过要自定义起来非常麻烦,不过好在,granfana官方为我们提供了一些模板,来供我们使用。
granfana官网:
https://grafana.com/docs/grafana/latest/
选中一款模板,然后,我们有2中方式可以套用这个模板。
第一种方式:通过JSON文件使用模板。
下载完成之后,放到桌面,来到grafana控制台
第二种导入模板的方式:
可以直接通过模板的ID号。
模板ID:
用10619
再回到grafana控制台
意外:
自带模板: