随笔 - 120  文章 - 0  评论 - 35  阅读 - 85万

prometheus监控之自动发现

prometheus监控之自动发现,这里采用服务端添加配置文件,具体操作如下,目前prometheus server只有如下节点:

 

 

 现在开始添加配置文件:

1.首先创建存放配置文件的目录:

# mkdir /usr/local/prometheus/target/node/ -p

2.然后在prometheus server配置文件中定义file类型:

  - job_name: 'host_discovery'
    file_sd_configs:
    - files:
      - "/usr/local/prometheus/target/node/host_discovery.json"
      refresh_interval: 6s

3.添加targets到json配置文件中:

[root@master node]# cat host_discovery.json 
[{
    "targets": ["172.16.23.121:9100"],
    "labels": {
        "instance": "172.16.23.121",
        "role": "node1"
    }
}]

上面双引号一定要注意不要使用单引号,不然日志会出现如下报错:

[root@master node]# tail -f /var/log/messages
Sep 22 23:06:50 master prometheus: level=error ts=2020-09-22T15:06:50.849Z caller=file.go:344 component="discovery manager scrape" discovery=file msg="Error reading file" path=/usr/local/prometheus/target/node/host_discovery.json err="invalid character '\\'' looking for beginning of value"
Sep 22 23:06:50 master prometheus: level=error ts=2020-09-22T15:06:50.849Z caller=file.go:344 component="discovery manager scrape" discovery=file msg="Error reading file" path=/usr/local/prometheus/target/node/host_discovery.json err="invalid character '\\'' looking for beginning of value"
Sep 22 23:06:50 master prometheus: level=error ts=2020-09-22T15:06:50.849Z caller=file.go:344 component="discovery manager scrape" discovery=file msg="Error reading file" path=/usr/local/prometheus/target/node/host_discovery.json err="invalid character '\\'' looking for beginning of value"
Sep 22 23:06:54 master prometheus: level=error ts=2020-09-22T15:06:54.378Z caller=file.go:344 component="discovery manager scrape" discovery=file msg="Error reading file" path=/usr/local/prometheus/target/node/host_discovery.json err="invalid character '\\'' looking for beginning of value"
Sep 22 23:06:54 master prometheus: level=error ts=2020-09-22T15:06:54.866Z caller=file.go:344 component="discovery manager scrape" discovery=file msg="Error reading file" path=/usr/local/prometheus/target/node/host_discovery.json err="invalid character '\\'' looking for beginning of value"
Sep 22 23:07:00 master prometheus: level=error ts=2020-09-22T15:07:00.378Z caller=file.go:344 component="discovery manager scrape" discovery=file msg="Error reading file" path=/usr/local/prometheus/target/node/host_discovery.json err="invalid character '\\'' looking for beginning of value"

4.配置完成后,最后校验prometheus server配置文件,校验没问题后就加载配置文件:

# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
# curl -X POST http://172.16.23.120:9090/-/reload

5.刷新控制台,查看targets节点:

 

 接下来通过向json文件host_discovery.json增加节点,然后不加载prometheus,刷新控制台看效果:

[root@master node]# cat host_discovery.json 
[{
    "targets": ["172.16.23.121:9100","172.16.23.122:9100"],
    "labels": {
        "instance": "172.16.23.121",
        "role": "node1"
    }
}]

刷新prometheus控制台:

 

 可以看见新增了122节点,但是label属性都是相同,这种明显不是我们希望看见的,所以继续修改:

复制代码
[root@master node]# cat host_discovery.json 
[{
    "targets": ["172.16.23.121:9100"],
    "labels": {
        "instance": "172.16.23.121",
        "role": "node1"
    }
},
{
    "targets": ["172.16.23.122:9100"],
    "labels": {
        "instance": "172.16.23.122",
        "role": "node2"
    }
}]
复制代码

上面配置就是一个targets对应自己私有的label,然后刷新控制台:

 

 当然基于配置文件发现的方式除了json文件,yaml文件也是可以,操作如下:

[root@master node]# cat host_discovery.yml 
- targets:
  - "172.16.23.121:9100"
  labels:
    instance: "172.16.23.121"

然后重载prometheus server:

# curl -X POST http://172.16.23.120:9090/-/reload

刷新控制台:

 

 继续向yml配置文件添加节点:

复制代码
[root@master node]# cat host_discovery.yml 
- targets:
  - "172.16.23.121:9100"
  labels:
    instance: "172.16.23.121"
- targets:
  - "172.16.23.122:9100"
  labels:
    instance: "172.16.23.122"
复制代码

然后刷新控制台:

 

posted on   wadeson  阅读(6175)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示