希腊神话中,普罗米修斯是最具智慧的神明之一,是泰坦巨神后代,其名字意思为"先见之明",那么以该名字命名的监控系统究竟怎么样呢?今天虫虫给大家讲讲这个以神之名命名的监控系统。
普罗米修斯(Prometheus)介绍
Prometheus是一个时间序列数据库。但是,它不仅仅是一个时间序列数据库。
它涵盖了可以绑定的整个生态系统工具集及其功能。
Prometheus主要用于对基础设施的监控。包括服务器,数据库,VPS,几乎所有东西都可以通过Prometheus进行监控。Prometheus希望通过对Prometheus配置中定义的某些端点执行的HTTP调用来检索度量标准。
普罗米修斯的主要特点是:
- 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
- PromQL,一种灵活的查询语言 ,可利用此维度
- 不依赖分布式存储;单服务器节点是自治的
- 时间序列收集通过HTTP上的拉模型进行
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
实验环境:(全部关闭防火墙,禁用selinux)
Docker容器:ip |
需要安装的组件 |
Docker:192.168.1.40 |
nodeExporter Prometheus server Cadvisor grafana
|
docker2:192.168.1.50 |
nodeExporter Cadvisor |
docker3:192.168.1.100 |
nodeExporter Cadvisor |
需要部署的组件:
Prometheus server:普罗米修斯的主服务器
nodeexporter:负责收集host硬件信息和操作系统信息
CAdvisor:负责收集host上运行的容器信息
grafana:负责展示普罗米修斯监控界面
1):3个节点,全部部署node-exporter和cadvisor
docker1上:部署nodeexporter,收集硬件和系统信息;且在浏览器上验证结果。网页访问成功则部署成功!!!
[root@docker ~]# 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)($|/)"
[root@docker2 ~]# 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)($|/)"
[root@docker3 ~]# 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通信。
部署安装cadvisor,收集节点容器信息:(在浏览器上验证,猫头鹰头像)
[root@docker ~]# 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
[root@docker2 ~]# 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
[root@docker3 ~]# 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
2)在docker1上部署prometheus server服务:
在部署prometheus之前,我们需要对它的配置文件进行修改,所以我们先运行一个容器,先将其配置文件拷贝出来。
[root@docker ~]# docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheus
[root@docker ~]# docker exec -it prometheus /bin/sh
[root@docker ~]# docker cp prometheus:/etc/prometheus/prometheus.yml ./
修改:第29行,这里指定了promethus的监控项,包括它也会监控自己收集到的数据。
- targets: ['localhost:9090','localhost:8080','localhost:9100','192.168.1.50:8080','192.1 68.1.50:9100','192.168.1.100:8080','192.168.1.100:9100']
[root@docker ~]#docker run -d -p 9090:9090 --name prometheus --net=host -v /root/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
PS:在浏览器上点击status--targets这里能够查看到我们各个监控项
3)在docker1上,部署gragana服务,用来展示prometheus
[root@docker ~]# mkdir grafana-storage
[root@docker ~]# chmod 777 -R grafana-storage
[root@docker ~]# docker run -d -p 3000:3000 --name grafana -v /root/grafana-storage:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=123456" grafana/grafana
##在网页上登陆,账号admin 密码123456,登陆成功后
先添加数据源--->添加普罗米修斯源---->进入后更改自定义名称及指定普罗米修斯的源----->点击save上传----->会看到普罗米修斯与grafana连接正常
PS:看到下面这个提示说明普罗米修斯和grafana服务是正常连接的,此时,虽然grafana收集到了数据,但怎么显示它,任然是个问题,grafana支持自定义显示信息,不过要自定义起来非常麻烦,不过好在,grafana官方为我们提供了一些模板,来供我们使用。
登陆Grafana官网:https://grafana.com
官网下载模板:
选择一款模板,然后我们有2种模式可以套用这个模板。
1:选择模板
点击下载。
下载完成之后,来到控制台:
把下载好的导入
第二种导入模板方式:
可以直接通过模板的id号。
10619,这个模板还可以。
来源:CSDN
作者:小吕学Linux
链接:https://blog.csdn.net/weixin_44999385/article/details/103706818