prometheus支持从consul发现监控目标。监控
- sudo yum install -y yum-utils
- sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
- sudo yum -y install consul
- vim /etc/consul.d/consul.hcl
可以根据自己的系统现需要进行配置,如果只是监控本地访问的话,只需要监听127.0.0.1就可以了。系统现然后就可以启动服务了
- systemctl enable consul
- systemctl start consul
- package main
- import (
- "log"
- "strconv"
- "github.com/hashicorp/consul/api"
- )
- type Server struct {
- ID int
- IP string
- MetaTags map[string]string
- }
- func main() {
- config := api.DefaultConfig()
- config.Address = "127.0.0.1:8500"
- config.Token = ""
- client,监控 err := api.NewClient(config)
- if err != 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"}},
- }
- for i := range servers {
- 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,
- })
- if err != nil {
- log.Println(err)
- }
- }
- log.Println("End...")
- }
在重新标记标签的时候,提供以下数据元标签:
- ...
- - 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下发配置。
责任编辑:姜华 来源: 今日头条 运维监控Prometheus consul
(责任编辑:百科)
1月浙江新设外商投资企业287家 实际使用外资规模居全国第五
大众交通(600611.SH)成功发行10亿元超短期融资券 票面年利率3.05%
Emix邮件服务器漏洞安全预警再升级 御界系统全面护航企业安全