娃哈哈好喝-真的!
技术够用就行,吃好喝好睡好!

Prometheus自动发现

Prometheus和zabbix同样也有自动发现功能,不必每添加一次客户端就要重启一次服务,下面介绍一下它的自动发现功能。

1、基于文件的自动发现 修改prometheus.yml文件:

job_name: 'nginx'
  file_sd_configs:
  - files:
    - targets/*.json
    refresh_interval: 1m

这里我把之前手动添加的node节点都删掉了,使用自动发现来添加,解释一下这些参数的意义:

file_sd_configs:启用文件发现

targets/*.json监控targets目录下的.json结尾的文件

refresh_interval:检测文件变动的间隔,1m表示1分钟

接下来需要在/usr/local/prometheus/目录下创建targets目录,然后在该目录下新建一个.json文件:

[root@server1 prometheus]# pwd
/usr/local/prometheus
[root@server1 prometheus]# mkdir targets
[root@server1 prometheus]# cd targets/
[root@server1 targets]# touch node.json
[root@server1 targets]# cat node.json
[{
 "targets": [
   "192.168.6.99:9100"
],
 "labels": {
   "server": "test"
}
}]
[root@server1 targets]#

配置完成,如果不放心的可以使用promtool检测一下配置文件是否正群,我已经检测过了是没问题的,接下来热加载一下Prometheus就可以了,然后通过web界面可以看到我们配置的基于文件发现的节点:

接下来再修改json文件来添加一台服务器,在不重启prometheus的情况下看是否能自动发现它

[root@server1 targets]# cat node.json 
[{
 "targets": [
   "192.168.6.99:9100",
   "192.168.6.11:9100",
   "192.168.6.12:9100",
   "192.168.6.13:9100",
   "192.168.6.14:9100",
   "192.168.6.15:9100"
],
 "labels": {
   "server": "test"
}
}]
[root@server1 targets]#

实际上我是没有这么多机器的,通过web界面来看一下,我设置的检测间隔是1分钟

已经检测到了文件的变化了,虽然这些机器不存在但它仍然会添加进来。

2、基于DNS自动发现 使用这个这个功能要求你的环境中要有dns服务器,如果没有就没办法做。

首先还是修改prometheus.yml文件:

job_name: 'dns-test'
  metrics_path: "/metrics"
  dns_sd_configs:
  - names: ['node1.test.com','node2.test.com']
    type: A
    port:9100

metrics_path:表示检测数据的路径,如http://192.168.6.99:9100/metrics

dns_sd_configs:使用dns自动发现

names:要检测的主机名称

type:dns记录类型,这里是检测的是A记录

port:目标服务器的端口

接下来需要在dns服务器上添加对应的主机名的A记录解析就可以了,然后热加载prometheus,然后在web界面同样可以看到dns中添加的节点了。

赞(0)
未经允许不得转载:娃哈哈好喝 » Prometheus自动发现
分享到: 更多 (0)