• Prometheus入门到放弃(5)之AlertManager部署


     alertmanager与exporters、cadvisor一样,都是独立于prometheus项目,这里我们也使用docker方式部署alertmanager。

    1、下载镜像

    镜像地址:https://hub.docker.com/r/prom/alertmanager/tags

    [root@prometheus-server ~]# docker pull prom/alertmanager

    2、运行

    ## 创建容器映射目录,存放配置文件
    [root@prometheus-server ~]# mkdir /etc/alertmanager
    ## 创建alertmanager默认配置文件
    [root@prometheus-server ~]# vim /etc/alertmanager/alertmanager.yml
    global:
      resolve_timeout: 5m
    route:
      group_by: ['alertname']
      group_wait: 10s
      group_interval: 10s
      repeat_interval: 1h
      receiver: 'web.hook'
    receivers:
    - name: 'web.hook'
      webhook_configs:
      - url: 'http://127.0.0.1:5001/'
    inhibit_rules:
      - source_match:
          severity: 'critical'
        target_match:
          severity: 'warning'
        equal: ['alertname', 'dev', 'instance']
     
    [root@prometheus-server ~]# docker run -d -p 9093:9093
     -v /etc/alertmanager:/etc/alertmanager
     -v /var/lib/alertmanager:/alertmanager
     --name alertmanager prom/alertmanager
     --config.file="/etc/alertmanager/alertmanager.yml"
     --storage.path=/alertmanager

    参数说明:alertmanager官方容器中配置文件为config.yml,这里我们指定配置文件为alertmanager.yml,注意命令先后顺序。

     3、配置邮件报警

    [root@prometheus-server ~]# vim /etc/alertmanager/alertmanager.yml 
    global: 
      smtp_smarthost: 'smtp.163.com:25' 
      smtp_from: ******@163.com' 
      smtp_auth_username: '******@163com' 
      smtp_auth_password: '****' 
      smtp_require_tls: false
      
    route: 
      receiver: dev-mail ## 接收者
      
    receivers: 
    - name: 'dev-mail'  ## 与route中的 receiver一致
    email_configs:
    - to: '****@vanje.com.cn.com'

    4、prometheus添加告警规则

    [root@prometheus-server ~]# mkdir /etc/prometheus/rules
    [root@prometheus-server ~]# vim /etc/prometheus/rules/node_alerts.yml
    groups:
    - name: node_alerts
      rules:
      - alert: InstanceDown ## alert名称
        expr: up{job='node'} == 0 ## 报警条件
        for: 1m ## 超过1分钟,prometheus会把报警信息发送至alertmanger
        labels:
          severity: "warning"
        annotations:
          summary: Host {{ $labels.instance }} of {{ $labels.job }} is Down!

    5、Prometheus开启alertmanager报警

    [root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml 
    ### 开启alertmanager监控
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
           - 10.10.0.13:9093 ## alertmanager服务地址
    ## 添加prometheus对alertmanager服务的监控
    - job_name: 'alertmanager'
        static_configs:
        - targets: ['10.10.0.13:9093']

    重启prometheus及 alertmanager,可以看到prometheus已经加载刚定义的报警规则

    6、验证

    我们随便停一个节点的node_exporter服务,然后查看prometheus上 报警信息(这里我们停掉10.10.0.11服务器node_exporter服务)

    一分钟后,查看alertmanager报警信息,此时邮件也会收到报警

  • 相关阅读:
    paper 113:Bhattacharyya distance
    (ZT)算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
    (ZT)算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)
    (ZT)算法杂货铺——分类算法之决策树(Decision tree)
    (ZT)算法杂货铺——k均值聚类(K-means)
    超详细的遗传算法(Genetic Algorithm)解析
    Ontology理论研究和应用建模
    观察者模式(Observer)和发布(Publish/订阅模式(Subscribe)的区别
    程序员常用字体(vs2008字体修改方案)
    雾计算和边缘计算的区别
  • 原文地址:https://www.cnblogs.com/tchua/p/11126359.html
Copyright © 2020-2023  润新知