• Prometheus监控之Consul监控 [consul-exporter]


    1. 简介

    Consul有多个组件,但总体而言,它是基础架构中的一款服务发现和配置的工具。 它提供了几个关键功能:
    服务发现:Consul client 可以提供服务,例如api或mysql,也可以使用Consul client来发现指定服务的提供者。 使用DNS或HTTP,应用程序可以轻松找到他们所依赖的服务。
    健康检查:Consul client 可以提供任何数量的健康检查,或者与给定的服务(“Web服务器是否返回200 OK”),或与本地节点(“内存利用率是否低于90%”)相关联。 可以使用此信息来监控集群运行状况,服务发现组件使用此信息将流量从有问题的主机中移除出去。
    KV Store:应用程序可以使用Consul的分层键/值存储,包括动态配置,功能标记,协调,leader选举等等。 简单的HTTP API使其易于使用。
    多数据中心:Consul支持多个数据中心。 这意味着Consul的用户不必担心构建额外的抽象层以扩展到多个区域

    2. 部署

    docker run -tid --restart=always  -p 9107:9107 --name consul-expoter prom/consul-exporter:latest --consul.server=172.19.209.51:8500
    
    • 1

    动日志如下:

    level=info caller=consul_exporter.go:486 msg=“Starting consul_exporter” version=“(version=0.7.1, branch=HEAD, revision=ae46e2ea980ecf1c961bf332b71160be707b5e98)”
    zevel=info caller=consul_exporter.go:487 build_context=“(go=go1.14.6, user=root@fdd571c00696, date=20200721-15:34:41)”
    level=info caller=consul_exporter.go:538 msg=“Listening on address” address=:9107

    默认监听9107端口,访问http://localhost:9107即可看到:
    在这里插入图片描述

    3.Prometheus抓取metrics

      - job_name: consul-exporter
        static_configs:
          - targets: ['172.19.209.51:9107']
    
    • 1
    • 2
    • 3

    4.导入Dashboard

    推荐:Consul Exporter Dashboard

    ID是12049

    显示服务总数,Consul Peer数量和Leader数量、不健康的Consul服务、Consul服务与服务检测信息。

    在这里插入图片描述

    5.配置告警规则

    Consul是否Down
    配置文件consul_exporter_alerting_rules.yml如下:

    groups:
    - name: consul
      rules:
      - alert: ConsulDown
        annotations:
          description: |-
            Consul instance is down
              VALUE = {{ $value }}
              LABELS: {{ $labels }}
          summary: Consul down (instance {{ $labels.instance }})
        expr: consul_up == 0
        for: 5m
        labels:
          severity: critical
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    prometheus.yml配置如下:

    rule_files:

    • “consul_exporter_alerting_rules.yml”

    停掉Consul,可以看到如下告警:

    在这里插入图片描述

    启动Consul,告警消失。

    在这里插入图片描述

  • 相关阅读:
    【教3妹学算法-每日3题(1)】检查单词是否为句中其他单词的前缀
    MM-Camera架构-ProcessCaptureRequest 流程分析
    【kubernetes】带你了解k8s中PV和PVC的由来
    Transformer论文精读
    LeetCode 第299次周赛 第4题 从树中删除边的最小分数
    mysql的锁分类:表锁和行锁和页面锁
    声学成像仪在测试放电方面有哪些具体应用?
    软件开发是非常主观的 - vadim
    Spring源码笔记之SpringIOC--(2)从BeanDefinition到Bean实例
    写入时复制(CopyOnWrite)
  • 原文地址:https://blog.csdn.net/ichen820/article/details/125373551