Prometheus是一个开源系统监控和警报工具包,最初由SoundCloud构件。Prometheus既是一款监控软件,也是一个时序数据库,将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。主要用在容器监控方面,也可以用于常规的主机监控。使用Google公司开发的go语言编写。Prometheus是一个框架,可以与其他组件完美结合。
在zabbix中是由一个Agent来管理收集数据,而Prometheus由多个exporter来收集相应的数据。
Prometheus数据存储会存储到自己的数据库中。
Prometheus自己能够呈现HTTP页面,可以使用Grafana第三方工具来显示数据
prometheus:192.168.88.10
node1:192.168.88.11
安装Prometheus
![](https://i-blog.csdnimg.cn/blog_migrate/38cf554ee0f76a9105e276c09898d602.png)
移动到/usr/local目录下,console为控制台的数据,LICENSE、NOTICE为说明文件,prometheus:为运行程序,prometool:检查工具等,tsdb:为自带的数据库,prometheus.yml:为配置文件。
![](https://i-blog.csdnimg.cn/blog_migrate/cda4f766e406326cc848e9749a0c940a.png)
编辑配置文件
配置文件中包含三个配置模块:global、rule_files和scrape_configs。
global模块控制Prometheus服务器的全局配置,有两个选择,第一个scrape_interval控制Prometheus抓取目标的频率,可以为单个目标覆盖它,在这种情况下,全局设置是每 15 秒抓取一次。第二个evaluation_interval选项控制 Prometheus 评估规则的频率。Prometheus 使用规则来创建新的时间序列并生成警报。
rule_files块指定我们希望 Prometheus 服务器加载的任何规则的位置。现在我们还没有规则。
scrape_configs控制 Prometheus 监控的资源。由于 Prometheus 还将有关自身的数据公开为 HTTP 端点,因此它可以抓取和监控自身的健康状况。在默认配置中,有一个名为prometheus的作业,用于抓取 Prometheus 服务器公开的时间序列数据。该作业包含一个单一的、静态配置的目标,即localhost的9090端口。Prometheus期望度量在/metrics路径上的目标上可用,所以这个默认作业是通过 URL 抓取的:
http://localhost:9090/metrics。
![](https://i-blog.csdnimg.cn/blog_migrate/f8dbb411dca28388e43bbe9f86df59a1.png)
也可以换成192.168.88.10的9090端口
![](https://i-blog.csdnimg.cn/blog_migrate/c9c0e53100be9bed89b94972a5cbd9ee.png)
查看时间是否正确
![](https://i-blog.csdnimg.cn/blog_migrate/7476efa71dbfa888c6b719fafa1e5d9a.png)
使用timedatectl set-timezone Asia/Shanghai命令来修改时区。date -s:来修改时间
![](https://i-blog.csdnimg.cn/blog_migrate/ecab31229ca750dc995f2456813366e6.png)
查看语法/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
![](https://i-blog.csdnimg.cn/blog_migrate/0e5b17743e004e031da9a185f3a4849d.png)
使用systemctl命令来控制服务
![](https://i-blog.csdnimg.cn/blog_migrate/ba48cb2692dd06d0d44388725bc68969.png)
--config.file=/usr/local/prometheus/prometheus.yml:为配置文件的路径
--storage.tsdb.path=/usr/local/prometheus/data/:为数据库存放目录,没有data目录会自动创建
![](https://i-blog.csdnimg.cn/blog_migrate/1163f0cbfbabc9df8ae0adc76eac644e.png)
开启服务
![](https://i-blog.csdnimg.cn/blog_migrate/2e90edcb050c3ad237c4b3b81b5b9877.png)
关闭防火墙。访问服务
![](https://i-blog.csdnimg.cn/blog_migrate/38ec2240292813dd8ad2095854ce79b1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c7979832a9010ec994b7a19d8809e673.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8aff1cdcb09b4274fde0ea4d7136a208.png)
状态为up表示成功配置服务
![](https://i-blog.csdnimg.cn/blog_migrate/4a61658cc3d05f911fcecd7c03e7f329.png)
查看Prometheus服务消耗的内存
![](https://i-blog.csdnimg.cn/blog_migrate/dfb6aaa927e2194d9b3ab0dd4424a995.png)
点击graph为图形页面
![](https://i-blog.csdnimg.cn/blog_migrate/1b9ef8489336b24ab647b4d3b93fdf4e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/75106acecd46d5701ad8514a4da98b9e.png)
该时间为0时区的时间,北京时间为8分区,需要再加上8小时为北京时间。
![](https://i-blog.csdnimg.cn/blog_migrate/d1673a308a6c29ccecb938cc72c4c074.png)
添加被控端:
监控方式:
拉取:pull,监控端联系被控端采集数据。
推送:push,被监控端主动把数据发给监控端,在Prometheus中push的方式需要额外的组件pushgateway
被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)
exporter列表:
Exporters and integrations | Prometheus
部署通用的监控exporter
node-exporter用于监控硬件和系统的常用指标。
exporter运行与被监控端,以服务的形式存在,每个exporter所使用的端口号都不一样。
在node1上部署node_exporter。
![](https://i-blog.csdnimg.cn/blog_migrate/6f73b5380a94cff0cd80cfbcf9eeaa7d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f6d8ab36c75a6ee71279fcbd7bb35e9.png)
配置systemctl命令
![](https://i-blog.csdnimg.cn/blog_migrate/73069d447780645a075f32c1837bf15d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9284e89c896f756c4672ad54996b29e0.png)
启动服务
![](https://i-blog.csdnimg.cn/blog_migrate/fb9bac794be42bba4f3153124b19529e.png)
在Prometheus服务上添加监控节点,默认端口为9100
![](https://i-blog.csdnimg.cn/blog_migrate/6f4f5fd1ddd752a07981ac92146bbbad.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f5b034c4fe13e26b2e42f70c85c8c840.png)
重启服务
![](https://i-blog.csdnimg.cn/blog_migrate/c4af8c9994738979ae0a7af12dd65163.png)
查看浏览器,监控成功
![](https://i-blog.csdnimg.cn/blog_migrate/dea6b9780f62f667f483af848c7c58c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f86e5a14766781662cbcb735d4f35a71.png)
如查看node1的CPU负载
![](https://i-blog.csdnimg.cn/blog_migrate/be74328246df7206999db840c25cd7d5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1e4a3d93486572a5dc0faa2d3947f3e3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f3c65f83152835f0b870a125543c2c20.png)
使用
grafana可视化工具:grafana是一款开源的、跨平台的、基于web的可视化工具。
展示方式:客户端图表、面板插件。
数据源可以来自于各种源,如Prometheus
部署grafana
![](https://i-blog.csdnimg.cn/blog_migrate/10afe0e3c42d7171b96ab5f54dc1f551.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e8860ca8a6f54ba098e3ce1a6324c6e0.png)
使用浏览器访问grafana页面,grafana默认端口为3000,第一次登录用户名和密码都是admin
![](https://i-blog.csdnimg.cn/blog_migrate/5961b86d86b7db3b6e7942d655c8cfc0.png)
第一次登录需要修改密码
![](https://i-blog.csdnimg.cn/blog_migrate/f05c0263994326d52cd5bf07c12d7307.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a76dcc20e0204ef778a7d6ef82d7c8b3.png)
grafana不存储数据,只是数据的搬运工,需要和Prometheus对接。
![](https://i-blog.csdnimg.cn/blog_migrate/e8e5ed8b83b6f0a632b57b801be320dd.png)
选择Prometheus
![](https://i-blog.csdnimg.cn/blog_migrate/000c5a1aa9970428093d508f67e3b92f.png)
添加网址
![](https://i-blog.csdnimg.cn/blog_migrate/d6c8df6c4c7b48a4bd414d474b39bc20.png)
选择查看Prometheus的仪表盘
![](https://i-blog.csdnimg.cn/blog_migrate/36a5a6f095e27c8a0fedbcee2c812488.png)
点击该仪表盘
![](https://i-blog.csdnimg.cn/blog_migrate/e85da98dba82effd5c0b633a39f83968.png)
该页面数据为Prometheus软件本身的信息
![](https://i-blog.csdnimg.cn/blog_migrate/0e88534d0d38a0d976c0538c918e3ced.png)
选择呈现node1数据的仪表盘,grafana模板下载:
grafana.com
选择导入用于查看node_exporter监控节点的的仪表盘
![](https://i-blog.csdnimg.cn/blog_migrate/89e0ffeff591fb959dac1da3b601bb28.png)
![](https://i-blog.csdnimg.cn/blog_migrate/52e4c123eb64c77ada181d9bd1df6b0b.png)
选择Prometheus数据源,导入该仪表盘
![](https://i-blog.csdnimg.cn/blog_migrate/3961438415f7a7f9b376a624362b6b87.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dba91f81be568272d27482b18a83e344.png)
监控MariaDB数据库。在node1节点上安装数据库
![](https://i-blog.csdnimg.cn/blog_migrate/99473d622db893e3fa7dafff8eab5f1c.png)
启动数据库
![](https://i-blog.csdnimg.cn/blog_migrate/6303af4c65b8278a965f48c08807cdfc.png)
在node1上安装mysql_exporter
mysql_exporter需要访问数据库,所以需要在数据库中为exporter创建授权用户
![](https://i-blog.csdnimg.cn/blog_migrate/7b295785e53c84d73a23ff8c198bf0e7.png)
配置mysql_exporter,将mysql_exporter软件包传递给node1
![](https://i-blog.csdnimg.cn/blog_migrate/5b85db03f2700bf36ae6b5317ae7e089.png)
![](https://i-blog.csdnimg.cn/blog_migrate/129e7bfa54d2bd20a42c501d314a45cd.png)
编写用于连接mysql服务的配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/1b09bda83244b166baa31f17efc692ed.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fd8726c765b81c8ba76fb1b9c856977e.png)
编辑使用systemctl命令
![](https://i-blog.csdnimg.cn/blog_migrate/35855bc2bc12662c282f9380c836ff38.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9bb21c281ab8898c7117674dc2f526d3.png)
启动服务
![](https://i-blog.csdnimg.cn/blog_migrate/77ba38643e2fabc45e007eb35cb0460f.png)
编辑Prometheus服务的配置文件,默认监控mysql的监控节点为9104
![](https://i-blog.csdnimg.cn/blog_migrate/5b4ad7306c826e12dcc5743147d37882.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d7358a78950341794d2a292fc7837531.png)
重启服务
![](https://i-blog.csdnimg.cn/blog_migrate/8614556e78189f5dd60fd68ceabb3a55.png)
查看Prometheus服务的web页面
![](https://i-blog.csdnimg.cn/blog_migrate/fa1bc2ed898057febcbe3b8fb72df0a8.png)
在grafana页面上导入用于查看mysql数据库的仪表盘
![](https://i-blog.csdnimg.cn/blog_migrate/c91dc16f001c6a8e74db99895002e0cb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/084d7ee23015c0ee7ea5add75bc408d6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e512cba0281488d495a29c735b009631.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aa66166ad58b8cfc7c4800a0ef630633.png)