一、自动发现服务
每次修改Prometheus
配置文件都需要重载服务,未免有些麻烦,而自动发现服务就是为了解决这种麻烦事儿的,自动发现服务又分为好几种,其中基于文件的服务发现是最通用的方式。这种方式不需要依赖于任何的平台或者第三方服务。Prometheus
会定时从文件中读取最新的Target
信息,因此,我们可以通过任意的方式将监控Target
的信息写入即可。
二、配置
步骤1 修改prometheus.yml
文件
1 | - job_name: 'file_sd_default' |
-
file_sd_configs
:说明配置为基于文件的自动发现服务 -
files
:文件存放位置 -
refresh_interval
: 读取的周期
步骤2 创建targets文件
-
创建文件
1 | touch /etc/prometheus/config/sd_config/xxx.yml |
-
写入targets
1 | - targets: |
如果需要添加验证,则需要在jobs添加
-
修改
prometheus.yml
文件
1 | scrape_configs: |
通过这种方式,Prometheus会自动的周期性读取文件中的内容。当文件中定义的内容发生变化时,不需要对Prometheus进行任何的重启操作。
Targets
可以通过Promethtus
的web
界面,Status > Targets
查看
三、Rule的自动加载
Rule无法使用Targets的方式,推荐办法是在修改完Rule之后,使用以下命令进行配置的重新加载(不是重启)。
1 | sudo kill -HUP $(pgrep prometheus) |
HUP
信号
-
全称:
Hang Up signal
。 -
用途:当进程接收到
HUP
信号时,它通常会执行挂起操作,这通常意味着进程会关闭打开的文件描述符并重新读取其配置文件。对于许多守护进程(daemon)
来说,HUP
信号是一个请求进程重新加载配置文件的常用方式。 -
常见使用场景:
HUP
信号常用于服务的平滑重启,特别是对于那些需要持续运行且不能轻易停止的服务。通过发送HUP信号,可以让服务在不中断的情况下重新加载配置。因此,当你执行sudo kill -HUP pgrep prometheus
命令时,你实际上是在告诉系统向所有名为prometheus
的进程发送一个HUP
信号,请求它们重新加载配置文件。这对于Prometheus
这样的监控服务非常有用,因为它允许管理员在不中断监控服务的情况下更新配置。