简介
prometheus支持从consul发现监控目标。
安装consul
sudoyuminstall-yyum-utils sudoyum-config-manager--add-repohttps://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudoyum-yinstallconsul
配置consul
vim/etc/consul.d/consul.hcl
可以根据自己的需要进行配置,如果只是本地访问的话,只需要监听127.0.0.1就可以了。然后就可以启动服务了
systemctlenableconsul systemctlstartconsul
consul测试导入数据
packagemain import( "log" "strconv" "github.com/hashicorp/consul/api" ) typeServerstruct{ IDint IPstring MetaTagsmap[string]string } funcmain(){ config:=api.DefaultConfig() config.Address="127.0.0.1:8500" config.Token="" client,err:=api.NewClient(config) iferr!=nil{ return } servers:=[]Server{ {ID:1,IP:"192.168.122.100",MetaTags:map[string]string{"idc":"idc1","use_for":"testing1"}}, {ID:2,IP:"192.168.122.101",MetaTags:map[string]string{"idc":"idc1","use_for":"testing2"}}, {ID:3,IP:"192.168.122.102",MetaTags:map[string]string{"idc":"idc1","use_for":"testing3"}}, } fori:=rangeservers{ err=client.Agent().ServiceRegister(&api.AgentServiceRegistration{ ID:strconv.Itoa(servers[i].ID), Name:servers[i].IP, Port:9100, Address:servers[i].IP, Meta:servers[i].MetaTags, Check:nil, Checks:nil, }) iferr!=nil{ log.Println(err) } } log.Println("End...") }
prometheus配置添加配置
在重新标记标签的时候,提供以下数据元标签:
- __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:标签根据分隔符拼接的结果,默认分隔符是,
... -job_name:'node_exporter' consul_sd_configs: #consule地址 -server:'127.0.0.1:8500' services:[] relabel_configs: #通过元数据标签过滤需要的数据 -source_labels:[__meta_consul_service_metadata_IDC] #如果匹配 regex:idc1 #执行动作,keep表示如果不匹配就丢弃数据 action:keep #通过元数据贴标签 -regex:__meta_consul_service_metadata_(.+) action:labelmap ...
添加配置之后,就可以reload一下prometheus服务,就可以在target页面获取到我们需要的监控目标了。
总结
prometheus使用consul作为服务配置发现比较灵活,可以跨机器进行部署,也发便cmdb下发配置。
转载请注明:IT运维空间 » 运维技术 » 运维监控系统之Prometheus consul服务自动发现
发表评论