Alertmanager 企业微信告警配置
背景
公司用的是企业微信做日常工作交流,那么告警用邮箱的话,第一个是比较麻烦(不是人人都会时时查看邮件),第二个是邮件丢失的可能性还是有的
开始
创建告警机器人
访问企业微信后台




配置 prometheus
安装 prometheus 和 alertmanage,注意参照文章安装的时候暂时跳过修改配置文件的步骤,安装可参照
https://www.itwordsweb.net/linux_doc/prometheus_grafana_alarm.html
参照上面文章安装好 prometheus 和 alertmanage 后,修改配置文件
prometheus.yml 示例
global:
  scrape_interval: 15s
  evaluation_interval: 60s
rule_files:
  - /etc/prometheus/rules/node.yml
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["10.18.193.95:9093"]
scrape_configs:
  - job_name: CF_SERVER_OF
    static_configs:
      - targets:
          - 10.18.193.95:9100
          - 10.18.193.91:9100
  - job_name: CF_SERVER_QC
    static_configs:
      - targets:
          - 10.26.1.11:9100
          - 10.26.1.17:9100
/data/prometheus/rules 目录下新建文件 node.yml
node.yml 示例
groups:
  - name: 基础状态告警
    rules:
      - alert: 内存使用率过高
        expr: (1-(node_memory_MemAvailable_bytes/(node_memory_MemTotal_bytes)))*100 > 90
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "{{$labels.instance}}:{{$labels.nodename}} 内存使用率过高!"
          description: "{{$labels.job}}:{{$labels.instance}}:{{$labels.nodename}} 内存使用率超过 90%!当前值为:{{ $value }}"
老规矩,运行 docker cp /data/prometheus/rules cf_prometheus:/etc/prometheus/ 把配置文件复制到 prometheus,再重启 prometheus
配置 alertmanager
alertmanager.yml 示例
global:
  # 在没有报警的情况下声明为已解决的时间
  resolve_timeout: 5m
templates:
  # 这个是企业微信告警模板文件
  - "./template/cf.tmpl"
route:
  group_by: ["alertname"]
  group_wait: 10s
  # 告警信息发送之前的等待时长
  group_interval: 30s
  # 重复报警的间隔时长
  repeat_interval: 5m
  # 这个名称要和下面的对应
  receiver: "wxwork"
receivers:
  # 这个名称要和上面的对应
  - name: "wxwork"
    wechat_configs:
      # 是都发送恢复信息
      - send_resolved: true
        # 填写机器人的 AgentId
        agent_id: "XXXXXX"
        # 这个表示所有可以看到这个机器人应用的人都能接收到告警消息
        to_user: "@all"
        # 填写机器人的 Secret
        api_secret: "XXXXXX"
        # 填写企业 ID
        corp_id: "XXXXXX"
配置 template/cf.tmpl 文件
cf.tmpl 示例
{{ define "wechat.default.message" }}
{{ range $i, $alert :=.Alerts }}
========监控报警==========
告警状态:{{ .Status }}
告警级别:{{ .Labels.severity }}
告警类型:{{ .Labels.alertname }}
告警 IP :{{ .Labels.instance }}
告警主机: {{ .Labels.nodename}}
告警摘要:{{ .Annotations.summary }}
告警详情:{{ .Annotations.description }}
告警时间:{{ .StartsAt.Format "2006-01-02 15:04:05" }} 
恢复时间:{{ $alert.EndsAt.Format "2006-01-02 15:04:05" }}
========end============= 
{{ end }} {{ end }}
启动 alertmanager
nohup /data/alertmanager/alertmanager --config.file="/data/alertmanager/alertmanager.yml" > /data/alertmanager/alertmanager.log 2>&1 &
看效果
人为触发告警后,企业微信看到的效果是这样子的

        版权声明:
        本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 
              Linux 小白鼠!
      
    觉得文章不错,打赏一点吧,1分也是爱~
      
          
          打赏
          
            
               微信
              微信
             
            
               支付宝
              支付宝
             
          
        
       微信
              微信
             支付宝
              支付宝