一、Prometheus简介
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
Prometheus的特点
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 多维度数据模型。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 灵活的查询语言。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 不依赖分布式存储,单个服务器节点是自主的。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 通过基于HTTP的pull方式采集时序数据。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 可以通过中间网关进行时序列数据推送。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 通过服务发现或者静态配置来发现目标服务对象。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
· 支持多种多样的图表和界面展示,比如Grafana等
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
二、Prometheus热加载
Promtheus的时序数据库在存储了大量的数据后,每次重启Prometheus进程的时间会越来越慢。而在日常运维工作中会经常调整Prometheus的配置信息,Prometheus提供了在运行时热加载配置信息的功能。
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
Promtheus配置热加载有两种方式:
文章源自小柒网-https://www.yangxingzhen.cn/8946.html
第一种:查看Prometheus的进程id,发送SIGHUP信号
kill -HUP <pid>
第一种热加载方式配置
1、配置prometheus.yml
[root@localhost ~]# vim /usr/lib/systemd/system/prometheus.service
# 添加ExecReload=/bin/kill -HUP $MAINPID
[Unit]
Description=prometheus
Documentation=https://prometheus.io/docs/introduction/overview
Wants=network-online.target
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
2、重载Prometheus
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl reload prometheus
第二种:发送一个POST请求到/-/reload,需要在启动时配置--web.enable-lifecycle参数
curl -X POST http://localhost:9090/-/reload
第二种热加载方式配置
1、配置prometheus.yml
[root@localhost ~]# vim /usr/lib/systemd/system/prometheus.service
# 添加参数--web.enable-lifecycle
[Unit]
Description=prometheus
Documentation=https://prometheus.io/docs/introduction/overview
Wants=network-online.target
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle --storage.tsdb.path=/usr/local/prometheus/data
Restart=on-failure
[Install]
WantedBy=multi-user.target
2、重启Prometheus
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart prometheus
三、Prometheus热加载演示
1、第一种热加载方式
1)修改前
2)修改后
[root@localhost ~]# vim /usr/local/prometheus/prometheus.yml
# 新增一台主机192.168.0.195
3)重载Prometheus
[root@localhost ~]# systemctl reload prometheus
4)再次查看Prometheus
2、第二种热加载方式
1)修改前
2)修改后
[root@localhost ~]# vim /usr/local/prometheus/prometheus.yml
# 新增一台主机192.168.0.198
3)热加载
# Prometheus本机执行
[root@localhost ~]# curl -X POST http://localhost:9090/-/reload
# 远程主机执行
[root@localhost ~]# curl -X POST http://192.168.0.199:9090/-/reload
4)再次查看Prometheus
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
![weinxin](https://www.yangxingzhen.com/images/weixin.jpg)
![weinxin](https://www.yangxingzhen.com/images/weixingongzhonghao.png)
评论