当前位置:首页 >知识 >运维监控系统之Prometheus consul服务自动发现 系统现可以跨机器进行部署

运维监控系统之Prometheus consul服务自动发现 系统现可以跨机器进行部署

2024-06-30 15:21:06 [百科] 来源:避面尹邢网

运维监控系统之Prometheus consul服务自动发现

作者:linux运维菜 运维 系统运维 prometheus支持从consul发现监控目标。监控prometheus使用consul作为服务配置发现比较灵活,系统现可以跨机器进行部署,监控也发便cmdb下发配置。系统现

[[409656]]

简介

prometheus支持从consul发现监控目标。监控

安装consul

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

配置consul

  1. vim /etc/consul.d/consul.hcl 

可以根据自己的系统现需要进行配置,如果只是监控本地访问的话,只需要监听127.0.0.1就可以了。系统现然后就可以启动服务了

运维监控系统之Prometheus consul服务自动发现 系统现可以跨机器进行部署

  1. systemctl enable consul 
  2. systemctl start consul 

consul测试导入数据

  1. package main 
  2.  
  3. import ( 
  4.     "log" 
  5.     "strconv" 
  6.  
  7.     "github.com/hashicorp/consul/api" 
  8.  
  9. type Server struct {  
  10.     ID       int 
  11.     IP       string 
  12.     MetaTags map[string]string 
  13.  
  14. func main() {  
  15.     config := api.DefaultConfig() 
  16.     config.Address = "127.0.0.1:8500" 
  17.     config.Token = "" 
  18.     client,监控 err := api.NewClient(config) 
  19.     if err != nil {  
  20.         return 
  21.     } 
  22.     servers := []Server{  
  23.         { ID: 1, IP: "192.168.122.100", MetaTags: map[string]string{ "idc": "idc1", "use_for": "testing1"}}, 
  24.         { ID: 2, IP: "192.168.122.101", MetaTags: map[string]string{ "idc": "idc1", "use_for": "testing2"}}, 
  25.         { ID: 3, IP: "192.168.122.102", MetaTags: map[string]string{ "idc": "idc1", "use_for": "testing3"}}, 
  26.     } 
  27.     for i := range servers {  
  28.         err = client.Agent().ServiceRegister(&api.AgentServiceRegistration{  
  29.             ID:      strconv.Itoa(servers[i].ID), 
  30.             Name:    servers[i].IP, 
  31.             Port:    9100, 
  32.             Address: servers[i].IP, 
  33.             Meta:    servers[i].MetaTags, 
  34.             Check:   nil, 
  35.             Checks:  nil, 
  36.         }) 
  37.         if err != nil {  
  38.             log.Println(err) 
  39.         } 
  40.     } 
  41.     log.Println("End...") 

prometheus配置添加配置

在重新标记标签的时候,提供以下数据元标签:

运维监控系统之Prometheus consul服务自动发现 系统现可以跨机器进行部署

  • __meta_consul_address:目标地址
  • __meta_consul_dc:目标的系统现数据中心名称
  • __meta_consul_health:服务的健康状况
  • __meta_consul_metadata_:目标的每个节点数据元的key
  • __meta_consul_node:为consul的节点名称
  • __meta_consul_service_address:目标的服务地址
  • __meta_consul_service_id:目标的服务ID
  • __meta_consul_service_metadata_:目标的每个服务数据元的key
  • __meta_consul_service_port:目标的服务端口
  • __meta_consul_service:目标所属的服务名称
  • __meta_consul_tagged_address_:每个节点标记目标的关键值
  • __meta_consul_tags:标签根据分隔符拼接的结果,默认分隔符是监控,
  1. ... 
  2. - job_name: 'node_exporter' 
  3.     consul_sd_configs: 
  4.     # consule 地址 
  5.     - server: '127.0.0.1:8500' 
  6.       services: [] 
  7.     relabel_configs: 
  8.       # 通过元数据标签过滤需要的数据 
  9.       - source_labels: [__meta_consul_service_metadata_IDC] 
  10.         # 如果匹配 
  11.         regex: idc1 
  12.         # 执行动作,keep表示如果不匹配就丢弃数据 
  13.         action: keep 
  14.       # 通过元数据贴标签 
  15.       - regex: __meta_consul_service_metadata_(.+) 
  16.         action: labelmap 
  17. ... 

添加配置之后,系统现就可以reload一下prometheus服务,监控就可以在target页面获取到我们需要的系统现监控目标了。

运维监控系统之Prometheus consul服务自动发现 系统现可以跨机器进行部署

总结

prometheus使用consul作为服务配置发现比较灵活,监控可以跨机器进行部署,也发便cmdb下发配置。

 

责任编辑:姜华 来源: 今日头条 运维监控Prometheus consul

(责任编辑:百科)

    推荐文章
    热点阅读