Prometheus开启热加载功能

小柒博客 Prometheus评论3521字数 2181阅读7分16秒阅读模式

一、Prometheus简介

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。

Prometheus的特点

  • 多维度数据模型。
  • 灵活的查询语言。
  • 不依赖分布式存储,单个服务器节点是自主的。
  • 通过基于HTTP的pull方式采集时序数据。
  • 可以通过中间网关进行时序列数据推送。
  • 通过服务发现或者静态配置来发现目标服务对象。
  • 支持多种多样的图表和界面展示,比如Grafana等

二、Prometheus热加载

Promtheus的时序数据库在存储了大量的数据后,每次重启Prometheus进程的时间会越来越慢。而在日常运维工作中会经常调整Prometheus的配置信息,Prometheus提供了在运行时热加载配置信息的功能。

Promtheus配置热加载有两种方式:

第一种:查看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)修改前

Prometheus开启热加载功能

2)修改后

[root@localhost ~]# vim /usr/local/prometheus/prometheus.yml

# 新增一台主机192.168.0.195

Prometheus开启热加载功能

3)重载Prometheus

[root@localhost ~]# systemctl reload prometheus

4)再次查看Prometheus

Prometheus开启热加载功能

2、第二种热加载方式

1)修改前

Prometheus开启热加载功能

2)修改后

[root@localhost ~]# vim /usr/local/prometheus/prometheus.yml

# 新增一台主机192.168.0.198

Prometheus开启热加载功能

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

Prometheus开启热加载功能

继续阅读
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
  • 微信号
  • 微信扫一扫加我!
  • weinxin
  • 微信公众号
  • 微信扫一扫关注我!
  • weinxin
小柒博客
  • 本文由 发表于 2023年4月2日 20:40:51
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.com/8946.html
评论  0  访客  0
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: