Prometheus(普罗米修斯)
实验环境:(各个主机,ip,所需服务)
docker01 docker02 docker03
1.10 1.20 1.30
NodeEXporter NodeEXporter NodeEXporter
cAdvisor cAdvisor cAdvisor
Prometheus Server
Grafana
全部关闭防火墙,禁用selinux.
[root@docker01 ~]# systemctl stop firewalld
[root@docker01 ~]# systemctl disable firewalld
[root@docker01 ~]# setenforce 0
setenforce: SELinux is disabled
需要部署组件:
Prometheus Server:普罗米修斯的主服务器。

NodeEXporter:负责收集Host硬件信息和操作系统信息。

cAdvisor:负责收集Host上运行的容器信息。

Grafana:负责展示普罗米修斯监控界面。
1.导入镜像
docker01:
Prometheus(普罗米修斯)搭建监控_第1张图片

[root@docker01 ~]# docker load < mycadvisor.tar && docker load < grafana.tar && docker load < node-exporter.tar && docker load < prometheus.tar
docker02:
Prometheus(普罗米修斯)搭建监控_第2张图片

[root@docker02 ~]# docker load < mycadvisor.tar && docker load < node-exporter.tar
docker03:
Prometheus(普罗米修斯)搭建监控
[root@docker03 ~]# docker load < mycadvisor.tar && docker load < node-exporter.tar
镜像拉入完成!!!
1)3个节点,全部部署node-EXporter和cAdvisor.
PS:3台都弄,都去浏览器验证
部署node-EXporter,收集硬件和系统信息
[root@docker01 ~]# 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端口:
Prometheus(普罗米修斯)搭建监控_第3张图片
Prometheus(普罗米修斯)搭建监控_第4张图片
//部署安装cAdvisor。收集节点容器信息。
PS:3台都弄,都去浏览器验证
[root@docker01 ~]# 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端口:
Prometheus(普罗米修斯)搭建监控_第5张图片
2)在docker01上部署Prometheus Server服务。
在部署Prometheus之前,我们需要对它的配置文件进行修改,所以我们先运行一个容器,先将其配置文件拷贝出来。
[root@docker01 ~]# docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheus

[root@docker01 ~]# docker cp prometheus:/etc/prometheus/prometheus.yml ./
Prometheus(普罗米修斯)搭建监控_第6张图片
[root@docker01 ~]# 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,端口
Prometheus(普罗米修斯)搭建监控_第7张图片
PS:这里制定了prometheus的监控项,包括它也回监控自己收集到的数据。
[root@docker01 ~]# docker rm -f prometheus
prometheus

[root@docker01 ~]# 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后:
Prometheus(普罗米修斯)搭建监控_第8张图片

继续运行docker02后:
Prometheus(普罗米修斯)搭建监控_第9张图片

3)在docker01上,部署grafana服务,用来展示prometheus收集到的数据。
[root@docker01 ~]# mkdir grafana-storage
[root@docker01 ~]# chmod 777 -R grafana-storage/

[root@docker01 ~]# 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
Prometheus(普罗米修斯)搭建监控_第10张图片

Prometheus(普罗米修斯)搭建监控_第11张图片

Prometheus(普罗米修斯)搭建监控_第12张图片
Prometheus(普罗米修斯)搭建监控_第13张图片
Prometheus(普罗米修斯)搭建监控_第14张图片
Prometheus(普罗米修斯)搭建监控_第15张图片
PS:看到这个,说明prometheus和grafana服务时正常连接的。
此时,虽然granfana收集到了数据,但怎么显示它,仍然是个问题,gafana支持自定义显示信息,不过要自定义起来非常麻烦,不过好在,granfana官方为我们提供了一些模板,来供我们使用。
granfana官网:
https://grafana.com/docs/grafana/latest/

Prometheus(普罗米修斯)搭建监控_第16张图片
Prometheus(普罗米修斯)搭建监控_第17张图片

选中一款模板,然后,我们有2中方式可以套用这个模板。
第一种方式:通过JSON文件使用模板。

下载完成之后,放到桌面,来到grafana控制台
Prometheus(普罗米修斯)搭建监控_第18张图片
Prometheus(普罗米修斯)搭建监控_第19张图片
Prometheus(普罗米修斯)搭建监控_第20张图片
Prometheus(普罗米修斯)搭建监控_第21张图片
第二种导入模板的方式:
可以直接通过模板的ID号。
模板ID:
Prometheus(普罗米修斯)搭建监控_第22张图片
用10619
再回到grafana控制台
Prometheus(普罗米修斯)搭建监控_第23张图片
Prometheus(普罗米修斯)搭建监控_第24张图片
Prometheus(普罗米修斯)搭建监控_第25张图片
意外:
Prometheus(普罗米修斯)搭建监控_第26张图片
Prometheus(普罗米修斯)搭建监控
Prometheus(普罗米修斯)搭建监控_第27张图片
Prometheus(普罗米修斯)搭建监控_第28张图片

自带模板:
Prometheus(普罗米修斯)搭建监控_第29张图片