grafana配置alertmanager渠道实现微信报警

安装grafana
安装prometheus
安装node_exporter
安装alertmanager
配置微信消息应用(参考我之前写的文章)

只贴出必要得配置文件,不再赘述安装过程

prometheus的配置
/etc/prometheus/prometheus.yml
# my global config
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.
  evaluation_interval: 15s # By default, scrape targets every 15 seconds.

  external_labels:
      monitor: m8_mhxzx_manager

# Load and evaluate rules in this file every 'evaluation_interval' seconds.
rule_files:
  - "/etc/prometheus/rules.d/*.rule"

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 60s
    static_configs:
      - targets: ['localhost:9090']

# pay attention to the newline below

  - job_name: cluster-scrape-targets
    scrape_interval: 60s
    honor_labels: true
    file_sd_configs:
      - files: ['/etc/prometheus/cluster.json']
cluster.json
[
    {
        "labels": {
            "app": "test",
            "cluster": "China",
            "name": "localhost",
            "region": "Beijing"
        },
        "targets": [
            "127.0.0.1:9100"
        ]
    }
]
grafana图形配置
{
  "alert": {
    "alertRuleTags": {},
    "conditions": [
      {
        "evaluator": {
          "params": [
            0.5
          ],
          "type": "gt"
        },
        "operator": {
          "type": "and"
        },
        "query": {
          "params": [
            "A",
            "5m",
            "now"
          ]
        },
        "reducer": {
          "params": [],
          "type": "max"
        },
        "type": "query"
      }
    ],
    "executionErrorState": "alerting",
    "for": "0",
    "frequency": "30s",
    "handler": 1,
    "message": "负载异常",
    "name": "load alert",
    "noDataState": "no_data",
    "notifications": []
  },
  "aliasColors": {},
  "bars": false,
  "dashLength": 10,
  "dashes": false,
  "fieldConfig": {
    "defaults": {
      "custom": {}
    },
    "overrides": []
  },
  "fill": 1,
  "fillGradient": 0,
  "gridPos": {
    "h": 9,
    "w": 12,
    "x": 0,
    "y": 0
  },
  "hiddenSeries": false,
  "id": 2,
  "legend": {
    "avg": false,
    "current": false,
    "max": false,
    "min": false,
    "show": true,
    "total": false,
    "values": false
  },
  "lines": true,
  "linewidth": 1,
  "nullPointMode": "null",
  "percentage": false,
  "pluginVersion": "7.1.1",
  "pointradius": 2,
  "points": false,
  "renderer": "flot",
  "seriesOverrides": [],
  "spaceLength": 10,
  "stack": false,
  "steppedLine": false,
  "targets": [
    {
      "expr": "node_load1",
      "interval": "",
      "legendFormat": "",
      "refId": "A"
    }
  ],
  "thresholds": [
    {
      "colorMode": "critical",
      "fill": true,
      "line": true,
      "op": "gt",
      "value": 0.5
    }
  ],
  "timeFrom": null,
  "timeRegions": [],
  "timeShift": null,
  "title": "load",
  "tooltip": {
    "shared": true,
    "sort": 0,
    "value_type": "individual"
  },
  "type": "graph",
  "xaxis": {
    "buckets": null,
    "mode": "time",
    "name": null,
    "show": true,
    "values": []
  },
  "yaxes": [
    {
      "format": "short",
      "label": null,
      "logBase": 1,
      "max": null,
      "min": null,
      "show": true
    },
    {
      "format": "short",
      "label": null,
      "logBase": 1,
      "max": null,
      "min": null,
      "show": true
    }
  ],
  "yaxis": {
    "align": false,
    "alignLevel": null
  },
  "datasource": null
}

grafana得测试图形
在这里插入图片描述
消息就是负载异常

alert channel

在这里插入图片描述

alertmanager的配置
/etc/alertmanager/alertmanager.yml
global:
  resolve_timeout: 5m

templates:
- '/etc/alertmanager/wechat.tmpl'

route:
  group_by: ['alertname']
  group_wait: 5s
  group_interval: 1m
  repeat_interval: 12h
  receiver: 'wechat'

receivers:
- name: 'wechat'
  wechat_configs:
  - corp_id: 'xxxxxx'
    agent_id: '1000002'
    api_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    to_user: '@all'
    send_resolved: true
/etc/alertmanager/wechat.tmpl
{{ define "grafana_alert.default.message" }}
{{ range .Alerts }}
故障主题: {{ .Annotations.summary }}
故障大区: {{ .Labels.cluster }}
故障主机: {{ .Labels.name }}
故障详情: {{ .Annotations.description }}
报警时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }}
{{ end }}
{{ end }}

{{ define "grafana_recovery.default.message" }}
{{ range .Alerts }}
故障恢复: {{ .Annotations.summary }}
故障大区: {{ .Labels.cluster }}
故障主机: {{ .Labels.name }}
恢复时间: {{ .EndsAt.Format "2006-01-02 15:04:05" }}
{{ end }}
{{ end }}

{{ define "wechat.default.message" }}
{{ if eq .Status "firing"}}
[Warning]:
{{ template "grafana_alert.default.message" . }}
{{ end }}

{{ if eq .Status "resolved" }}
[Recovery]:
{{ template "grafana_recovery.default.message" . }}{{ end }}
{{ end }}

测试

增加负载

dd if=/dev/zero of=/dev/null

在这里插入图片描述
微信消息
在这里插入图片描述

这种方式报警实际上不推荐,目前还不是很完善,建议还是prometheus+alertmanager的报警方式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Grafana是一个用于可视化和监控数据的开源平台。要配置Grafana来发送企业微信告警,需要按照以下步骤进行操作。 1. 首先,确保你已经在企业微信上创建了一个企业。在企业微信的后台管理界面,创建一个应用,并生成一个应用机器人,获取到机器人的Webhook地址。 2. 在Grafana中打开“Alerting”配置页面,可以在“Configuration”菜单下找到。在页面上方点击“Notification channels”,然后点击“Add channel”按钮。 3. 在弹出的配置页面中,选择“Webhook”类型,填写名称和Webhook地址。Webhook URL即为前面在企业微信上创建应用机器人时获取到的Webhook地址。 4. 在Webhook配置页面中,可以选择配置告警消息的格式。在请求包中,可以包含告警的标签、时间戳、图表和链接等信息。按照自己的需求进行配置,并测试Webhook是否能正常发送消息。 5. 确保配置无误后,点击保存按钮。此时,Grafana就可以使用企业微信进行告警通知了。 通过以上步骤,Grafana就可以将告警消息发送到企业微信了。当Grafana监控到某个指标或阈值达到设定的条件时,会触发告警并将消息通过企业微信的机器人发送给指定的用户或群组。 配置企业微信告警可以让我们更方便地接收到监控数据的告警信息,并能及时采取相应的措施来应对问题,提高系统的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值