alertmanager报警添加企业微信监控报警

Prometheus机器:172.27.143.155
alertmanager机器:172.27.143.150

一、上面配置了Prometheus和grafana服务在155机器上面
接下来配置 alermanager服务
1、wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz

2、tar zxf alertmanager-0.20.0.linux-amd64.tar.gz
3、mv alertmanager-0.20.0.linux-amd64 /usr/local/alertmanager
4、vim alertmanager.yml

5、vim /etc/alertmanager/template/wechat.tmpl

{{ define "wechat.default.message" }}
{{ range $i, $alert :=.Alerts }}
========监控报警==========
告警状态:{{ .Status }}
告警级别:{{ $alert.Labels.severity }}
告警类型:{{ $alert.Labels.alertname }}
告警应用:{{ $alert.Annotations.summary }}
告警主机:{{ $alert.Labels.instance }}
告警详情:{{ $alert.Annotations.description }}
触发阀值:{{ $alert.Annotations.value }}
告警时间:{{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
========end==========
{{ end }}
{{ end }}

6、完成之后启动服务
nohup ./alertmanager &

接下来配置Prometheus服务
修改配置文件

需要创建一个 rules目录
里面又2个文件,一个时主机监控,一个时容器监控
1)cat host_sys.yml

groups:

  • name: Host
    rules:

    • alert: Memory Usage
      expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes)) / node_memory_MemTotal_bytes * 100 > 2
      for: 1m
      labels:
      name: Memory
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: "宿主机内存使用率超过80%."
      value: "{{ $value }}"
    • alert: CPU Usage
      expr: sum(avg without (cpu)(irate(node_cpu_seconds_total{mode!=‘idle‘}[5m]))) by (instance,appname) > 0.05
      for: 1m
      labels:
      name: CPU
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: "宿主机CPU使用率超过65%."
      value: "{{ $value }}"
    • alert: HostLoad
      expr: node_load5 > 4
      for: 1m
      labels:
      name: Load
      severity: Warning
      annotations:
      summary: "{{ $labels.appname }} "
      description: " 主机负载5分钟超过4."
      value: "{{ $value }}"
    • alert: Filesystem Usage
      expr: 1-(node_filesystem_free_bytes / node_filesystem_size_bytes) > 0.3
      for: 1m
      labels:
      name: Disk
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: " 宿主机 [ {{ $labels.mountpoint }} ]分区使用超过80%."
      value: "{{ $value }}%"
    • alert: Diskio writes
      expr: irate(node_disk_writes_completed_total{job=~"Host"}[1m]) > 50
      for: 1m
      labels:
      name: Diskio
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: " 宿主机 [{{ $labels.device }}]磁盘1分钟平均写入IO负载较高."
      value: "{{ $value }}iops"
    • alert: Diskio reads
      expr: irate(node_disk_reads_completed_total{job=~"Host"}[1m]) > 5
      for: 1m
      labels:
      name: Diskio
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: " 宿主机 [{{ $labels.device }}]磁盘1分钟平均读取IO负载较高."
      value: "{{ $value }}iops"
    • alert: Network_receive
      expr: irate(node_network_receive_bytes_total{device!~"lo|bond[0-9]|cbr[0-9]|veth.|virbr.|ovs-system"}[5m]) / 1048576 > 5
      for: 1m
      labels:
      name: Network_receive
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: " 宿主机 [{{ $labels.device }}] 网卡5分钟平均接收流量超过5Mbps."
      value: "{{ $value }}Mbps"
    • alert: Network_transmit
      expr: irate(node_network_transmit_bytes_total{device!~"lo|bond[0-9]|cbr[0-9]|veth.|virbr.|ovs-system"}[5m]) / 1048576 > 5
      for: 1m
      labels:
      name: Network_transmit
      severity: Warning
      annotations:
      summary: " {{ $labels.appname }} "
      description: " 宿主机 [{{ $labels.device }}] 网卡5分钟内平均发送流量超过5Mbps."
      value: "{{ $value }}Mbps"

2) cat container_sys.yml

groups:

  • name: Container
    rules:

    • alert: CPU Usage
      expr: (sum by(name,instance) (rate(container_cpu_usage_seconds_total{image!=""}[5m]))*100) > 80
      for: 1m
      labels:
      name: CPU
      severity: Warning
      annotations:
      summary: "{{ $labels.name }} "
      description: " 容器CPU使用超过80%"
      value: "{{ $value }}%"
    • alert: Memory Usage
      expr: (container_memory_usage_bytes{name=~".+"} - container_memory_cache{name=~".+"}) / container_spec_memory_limit_bytes{name=~".+"} * 100 > 80
      for: 1m
      labels:
      name: Memory
      severity: Warning
      annotations:
      summary: "{{ $labels.name }} "
      description: " 容器内存使用超过80%."
      value: "{{ $value }}%"
    • alert: Network_receive
      expr: irate(container_network_receive_bytes_total{name=~".+",interface=~"eth.+"}[5m]) / 1048576 > 5
      for: 1m
      labels:
      name: Network_receive
      severity: Warning
      annotations:
      summary: "{{ $labels.name }} "
      description: "容器 [{{ $labels.device }}] 网卡5分钟平均接收流量超过5Mbps."
      value: "{{ $value }}Mbps"
    • alert: Network_transmit
      expr: irate(container_network_transmit_bytes_total{name=~".+",interface=~"eth.+"}[5m]) / 1048576 > 5
      for: 1m
      labels:
      name: Network_transmit
      severity: Warning
      annotations:
      summary: "{{ $labels.name }} "
      description: "容器 [{{ $labels.device }}] 网卡5分钟平均发送流量超过5Mbps."
      value: "{{ $value }}Mbps"

配置完成之后重启一下Prometheus服务

等一会验证效果

恢复是下面这个

监控容器就完成了

原文地址:https://blog.51cto.com/xiaorenwutest/2462653

时间: 2024-10-09 00:08:35

alertmanager报警添加企业微信监控报警的相关文章

Python-WXPY实现微信监控报警

概述: 本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序.博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的将工作和学习联系在一起. 博文中主要使用到的技术设计到Python,Redis,以及Java.涉及到的技术看似很多,但是主要的语言是基于Python进行开发的. 架构涉及主要采用了 生产者消费者的涉及模式,使用Redis作为消息队列进行解耦操作. 主要架构涉及如下: 接下来开始介绍一下程序的实现过程,主要讲解wxpy -> python.re

Fundebug支持企业微信配置机器人报警

摘要: 为了帮助客户方便.及时地发现问题,Fundebug 支持企业微信报警了! Fundebug是全栈 JavaScript 错误监控平台,支持前端 JavaScript, 后端 Node.js 以及微信小程序等应用监控. 如果配置了企业微信机器人,一旦应用出现错误,Fundebug 会及时发送报警信息到企业微信群.如下图所示: 如何添加企业微信机器人? 在项目设置页面,切换到报警方式选项卡,在第三方报警中即可添加企业微信报警. 具体细节请参考接入文档:企业微信报警接入文档. 感谢客户大大桐乡

python调用企业微信接口发送报警信息

在运维的日常工作中常常需要同监控打交道,而监控中最常用的功能介绍报警,最简单的方式就是使用邮件进行报警,但是邮件报警不是特别及时(像我这种一天都不怎么看邮件的估计得等服务挂了才知道),所以我们需要一种及时通信工具进行报警,常见的有短信,微信公众号,QQ公众号等,但是这三种方式在报警及时的同时也会在一定程度上打扰到我们的生活,那么有没有一种既能及时传递信息又能不打扰到我们日常的生活的那??  腾讯在微信之外还推出了一款类似于微信的应用,即使企业微信.企业微信一般只用于办公所有不同可能会影响我们的日

动态应用分组发布,实现从云资源生产到监控报警配置的全自动化

摘要: 动态应用分组发布,实现从客户云资源生产到监控报警配置的全自动化 现状当前的监控报警体系里,用户生成新的ECS服务器后,需要手工将这些ECS归类到各个应用分组中,才能关联报警规则. 但是随着上云越来越深入,机器的创建次数越来越频繁,单次创建数量越来越多,相应手工操作的时间成本就会越来越高.因此云监控推出了动态配置应用分组的功能,可以在机器创建之初,通过维护好实例名称,自动匹配监控报警. 原理解读首先在创建应用分组时,配置ECS名称的匹配规则.创建机器的时候命名好实例名称,云监控便会按如下流

Ganglia与Centreon整合构建智能化监控报警平台

一.智能运维监控报警平台的组成 随着大数据时代的来临,运维工作的难度越来越大,每个运维人员都要面临不计其数的服务器和海量的数据,如何保证众多服务器和业务系统稳定高效地运行并尽量减少死机时间,成为考核运维工作的重要指标,而要实现大规模的运维,必须要有一套行之有效的智能运维监控管理系统,本章就详细介绍下如何构建一套完善的运维监控报警平台. 运维的核心工作可以分为运行监控和故障处理两个方面,对业务系统进行精确.完善的监控,保证能够在第一时间发现故障并迅速通知运维人员处理故障是运维监控系统要实现的基础功

Zabbix通过网易邮箱、企业微信、钉钉整合实现实时告警

Zabbix可以通过多种方式将告警信息发送到指定人,常用的报警方式有邮件.微信.钉钉等.本次博文主要介绍这三种报警方式. 一.配置网易邮箱实现报警 本篇博文采用网易邮箱的方式实现报警!操作如下: zabbix server需进行以下配置: [[email protected] ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL //安装所需依赖 [[email protected] ~]# wget http://caspian.dotco

Zabbix 3.4.3之企业微信报警

一.企业微信注册 微信的报警方式可以让我们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先我们先打开企业微信的地址 https://work.weixin.qq.com 1.填写申请信息 2.下一步 根据注册流程步骤进行后面的操作,直到注册成功. 二.企业微信配置 1.创建部门 首先我们要创建部门,类似于组,把相关的人员放到这个部门里面,创建部门之后,我们会用到部门id,报警消息根据部门id发到部门的相关人员. 根据自己的需求填写,所属部门也可以是现有部门的子部门,具有层级所属关系.

zabbix4添加配置微信报警通知

微信告警首先注册一个企业微信,才能实现微信告警.注册地址:https://work.weixin.qq.com/ . 申请企业微信号1). 申请好后需记录几项重要信息,后面zabbix server端监控脚本需使用到.登录网页 - 我的企业 - 企业ID:2). 创建应用登录网页 - 应用管理 - 应用 - 创建应用记录并获取到AgentId.SecretAgentId:xxxxxSecret:xxxxx3). 添加通讯录登录网页 - 通讯录 - 添加成员添加后才可收取到信息. zabbix s

合nagios+cacti+微信、飞信实现网络监控报警

系统环境:rhel6.3         selinux disabled  和 iptables     整合cacti和nagios是利用了cacti的一个插件nagiosfor cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来. 一.nagios监控本地主机 注释掉localhost.cfg,新增加hosts.cfg,services.cfg [[email protected]