暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Prometheus 加载节点信息的几种方式

DevOps实战 2021-12-01
1436

在 Prometheus 中,我们新增监控节点,有几种方式可让 Prometheus Server 监听到新节点,这一节内容就来聊聊部分实现方式:

1 static_configs

使用 static_configs 的方式,在 Prometheus 的配置文件中,可按如下方法使用:

  - job_name: 'redis_exporter'
static_configs:
- targets:
- 192.168.150.232:50003

这种方式的一个问题就是:新增监控节点,必须要重启或者重新加载 Prometheus。而后面介绍的两种方法都是动态加载的形式。


2 file_sd_configs

2.1 修改 prometheus.yml

- job_name: 'dongcidongci'
file_sd_configs:
- files: ["/data/prometheus/conf.d/dongcidongci.json"]
refresh_interval: 15s


2.2 编辑 Json 文件

vim /data/prometheus/conf.d/dongcidongci.json

加入新增监控节点的机器信息:

[
{
"targets": [
"192.168.150.123:9100"
],
"labels": {
"servicename": "MySQL",
"env": "Dev",
          "hostname""db-mysql-dongcidongci01"
}
},
{
"targets": [
"192.168.21.126:9100"
],
"labels": {
"servicename": "MySQL",
"env": "Dev",
          "hostname""db-mysql-dongcidongci02"
}
},
{
"targets": [
"192.168.150.232:9104"
],
"labels": {
"servicename": "MySQL",
"env": "Dev",
          "hostname""db-mysql-dongcidongci03"
}
}
]

这种方式通常只要第一次配置的时候重启或者重新加载 Prometheus,后面只要在 Json 文件中新增内容,就能进行节点的发现。


3 consul_sd_config

Consul 提供服务注册/发现、健康检查、Key/Value 存储、多数据中心和分布式一致性保证等功能。

3.1 安装 consul

yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul

启动 consul

nohup consul agent -client 0.0.0.0 -dev &


3.2 修改 Prometheus 的配置文件

修改 Prometheus 的配置文件,增加 consul 的配置:

- job_name: 'consul-prometheus'
consul_sd_configs:
- server: '192.168.150.253:8500'
services: []

重启或者重新加载 Prometheus。


3.3 注册 

当有新增监控节点时,只要在 consul 中注册就行:

curl -X PUT -d '{"id": "mysql-exporter-232","name": "mysql-exporter-232","address": "192.168.150.232","port": 9104,"tags": ["test"],"checks": [{"http": "http://192.168.150.232:9104/metrics", "interval": "5s"}]}'  http://192.168.150.253:8500/v1/agent/service/register

登录 http://192.168.150.253:8500/,就可以看的新注册的机器:

如果要注销,则执行下面的命令:

curl -X PUT http://192.168.150.253:8500/v1/agent/service/deregister/mysql-exporter-232

这种方式就可以非常方便的进行自动化,比如新增被监控的机器,直接在被监控的机器上跑一个脚本,脚本包含 exporter 的部署方式和注册 consul 的命令。


关于 Prometheus 加载节点配置的几种常用方式就介绍到这里,欢迎各位朋友关注这个全新的公众号,后续会分享一些有关 Prometheus、KubernetesGitLab、Docker、Terraform、运维开发的内容。


文章转载自DevOps实战,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论