运维监控系列(15)-Alertmanager添加163邮箱、钉钉、微信告警通知功能

163邮箱

可用通过邮件方式进行告警通知的发送,接着上篇文档,我们配置发送邮件告警方式。

1. 设置163邮箱

发送邮件,需要smtp邮件服务器,首先需要对网易邮箱进行设置。

首先登陆163邮箱,进入邮箱中心设置。在这里插入图片描述
然后开启POP3/SMTP服务,这里需要扫描二维码发送短信验证。
在这里插入图片描述
开通成功后,会显示一个授权密码,Alertmanager发送邮件,需要使用这个密码,而不是163邮箱的登录密码。
在这里插入图片描述

2. alertmanager.yml配置文件添加邮件通知

global中添加smtp相关配置。

# 全局配置,包括报警解决后的超时时间、SMTP 相关配置、各种渠道通知的 API 地址等等。
global:
  # 告警超时时间
  resolve_timeout: 5m
  # 发送者邮箱地址
  smtp_from: 'xx@163.com' 
  # 邮箱smtp服务器地址及端口  
  smtp_smarthost: 'smtp.163.com:25'  
  # 发送者邮箱账号
  smtp_auth_username: 'xx@163.com'  
  # 发送者邮箱密码,这里填入第一步中获取的授权码
  smtp_auth_password: 'wWIXMAZCNBMW'
  # 是否使用tls 
  smtp_require_tls: false
  smtp_hello: '163.com'
# 路由配置,设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。
route:
  # 用于将传入警报分组在一起的标签。
  # 基于告警中包含的标签,如果满足group_by中定义标签名称,那么这些告警将会合并为一个通知发送给接收器。
  group_by: ['alertname']
  # 发送通知的初始等待时间
  group_wait: 30s
  # 在发送有关新警报的通知之前需要等待多长时间 
  group_interval: 5m
  # 如果已发送通知,则在再次发送通知之前要等待多长时间,通常约3小时或更长时间
  repeat_interval: 30s
  # 接受者名称
  receiver: '163.email'
# 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式
receivers:
- name: '163.email'
  email_configs:
  # 配置接受邮箱地址
  - to : 'xxx@163.com'

3. 测试

重启Alertmanager,查看控制台,已接收到Nacos告警通知。

在这里插入图片描述

查看163邮箱,发现接受到了邮件。
在这里插入图片描述
点看邮件,可以看到详细信息。
在这里插入图片描述

4. 配置邮件模板

在第三步,成功接收到了邮件,但是格式比较乱,这里可以使用邮件模板,Alertmanager 带有默认模板,可以自定义。后面的钉钉和微信都是可以自定义模板的,步骤差不多,就不赘述了。

Alertmanager 的通知模板基于Go 模板系统,具体支持哪些变量请参照官网说明

首先我们在Alertmanager主目录下创建一个templates文件夹,用户存放模板文件,然后创建一个email.tmpl文件,写入以下内容:

{{ define "email.html" }}
{{ range .Alerts }}
告警程序: prometheus_alert <br>
告警级别: {{ .Labels.severity }}<br>
告警类型: {{ .Labels.alertname }} <br>
故障主机: {{ .Labels.instance }} <br>
告警主题: {{ .Annotations.summary }} <br>
告警详情: {{ .Annotations.description }} <br>
触发时间: {{ .StartsAt.Format "2019-08-04 16:58:15" }} <br>
{{ end }}
{{ end }}

然后在alertmanager.yml中添加模板扫描,及邮件使用模板。

# 配置自定义模板位置
templates:
  - 'templates/*.tmpl'
# 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式
receivers:
- name: '163.email'
  email_configs:
  # 配置接受邮箱地址
  - to : 'xx@163.com'
    html: '{{ template "email.html" . }}'
    # 邮件主题信息 
    headers: {Subject: "[WARN] 报警邮件 {{ .CommonLabels.instance }} {{ .CommonAnnotations.summary }}"}  

重启Alertmanager,稍后查看邮件。
在这里插入图片描述

钉钉告警

1. 创建钉钉机器人

参考钉钉开发官网添加钉钉机器人,并记录好点前的Webhook地址。

添加机器人时的安全设置,这里选择加签,将生成的秘钥复制出来。
在这里插入图片描述
最后生成一个Webhook。

在这里插入图片描述

2. 安装prometheus-webhook-dingtalk

alertmanager的webhook集成了钉钉报警,所以他是本来就有的。但是钉钉对格式要求很严格,一会还需要使用插件进行格式转换。

prometheus-webhook-dingtalk是Prometheus AlertManager WebHooks生成钉钉通知工具。

下载系统对应的安装包。
在这里插入图片描述
到安装包位置,将config.yml.example重命名为config.yml,删除掉全部默认配置,添加以下内容:

targets:
  ding_webhook:
    # 钉钉webhook地址
    url: https://oapi.dingtalk.com/robot/send?access_token=a8a5c0ecea3a027de77812df0bcc0fd0d5c73cfaebebecbd35
    # 第一步中获取到的加签秘钥
    secret: SEC8bd856c89e0635798828a0fa8ff1d26403df25fd925657

启动prometheus-webhook-dingtalk.exe程序,查看打印日志,可以看到图中1为Alertmanager提供了Webhook地址,2为启动端口。
在这里插入图片描述

3. 配置Alertmanager

修改alertmanager.yml配置文件,添加路由和接受者配置,注意url填写钉钉插件提供的webhook地址,而不是钉钉直接提供的那个webhook。

route:
  #设置默认接收人
  receiver: 'webhook'
  #组告警等待时间。也就是告警产生后等待10s,如果有同组告警一起发出
  group_wait: 10s
  #两组告警的间隔时间
  group_interval: 10s
  #重复告警的间隔时间,减少相同微信告警的发送频率
  repeat_interval: 30s
  #采用哪个标签来作为分组依据
  group_by: [alertname]
  routes:
  - receiver: webhook
    group_wait: 10s
# 配置自定义模板位置
templates:
  - 'templates/*.tmpl'
# 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式
receivers:
- name: 'webhook'
  webhook_configs:
  # 钉钉插件提供的webhook地址
  - url: http://localhost:8060/dingtalk/ding_webhook/send
    #警报被解决之后是否通知
    send_resolved: true

然后启动Alertmanager。关闭Nacos,然后发现成功推送了钉钉告警信息。
在这里插入图片描述

微信告警

1. 注册企业微信

注册地址,没有的可以随便填个公司名注册一个。

注册完成后在应用管理菜单中,点击创建应用。
在这里插入图片描述
添加应用信息
在这里插入图片描述
创建成功后,查看Secret,这里会发送到企业微信,然后再复制到电脑上来。。。。对应api_secret配置项。
在这里插入图片描述

2. Alertmanager添加wechat通知

注册了企业微信,添加应用之后就可以添加微信通知配置了。

官网说明中的配置如下:
在这里插入图片描述
企业微信官方API文档参数说明如下:
在这里插入图片描述

结合这些说明,添加如下配置就可以了(不要被百度那些水文误导了。。)

route:
  #设置默认接收人
  receiver: 'wechat'
  #组告警等待时间。也就是告警产生后等待10s,如果有同组告警一起发出
  group_wait: 10s
  #两组告警的间隔时间
  group_interval: 10s
  #重复告警的间隔时间,减少相同微信告警的发送频率
  repeat_interval: 30s
  #采用哪个标签来作为分组依据
  group_by: [alertname]
# 配置自定义模板位置
templates:
  - 'templates/*.tmpl'
# 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式
receivers:
- name: 'wechat'
  wechat_configs:
  - send_resolved: true
    # 创建应用的 AgentId
    agent_id: 100xx
    # 企业 id,可以在企业微信管理后台,我的企业 - 企业 ID 查看
    corp_id: 'd1f14ffea0a01a'
    # 应用的 Secret
    api_secret: 'ncqlL0egmjFTjFlPKKycLOvARwesqB4'
    # 指定需要接收告警的用户,@all表示全部
    to_user: '@all'

3. 测试

重启Alertmanager,稍等片刻,就发现手机企业微信收到了告警通知消息。。。
在这里插入图片描述

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
一、prometheus简介 Prometheus是一个开源的系统监控告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信钉钉, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲
Rancher 是一款容器管理平台,可以帮助企业以更高效的方式部署和管理容器化的应用程序。相比起传统的虚拟机部署方式,容器化的应用程序具有更高的可移植性和跨平台性。然而,随着容器规模的不断扩大,监控告警成为企业微信(Rancher企业微信告警)中不可忽视的一部分。 Rancher 的告警功能可以帮助用户及时了解到容器集群中发生的异常情况,并通过各种途径通知相关人员。企业微信作为一款流行的企业通讯工具,可以与Rancher集成,将告警信息发送给企业微信中指定的用户或者群组。 用户可以根据自己的需求,在Rancher中配置告警规则。例如,当容器的CPU使用率或内存使用率超过设定的阈值时,Rancher会触发告警,并将相关信息发送到企业微信中。同时,Rancher还支持通过企业微信发送告警通知的方式,可以提供详细的应用程序日志和监控指标,方便用户了解到问题的具体原因。 Rancher企业微信告警的好处在于,可以及时通知相关人员,让他们能够快速响应并采取应对措施。另外,Rancher还支持自定义告警模板,用户可以根据自身需求,定制化告警通知的内容和格式,提高告警信息的可读性。 总结一下,Rancher企业微信告警是将容器集群中的异常情况以告警的形式发送到企业微信中,通过该功能,用户可以及时了解到问题并采取相应的措施。这种集成功能能够提升企业的运维效率,确保容器应用程序的稳定性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云烟成雨TD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值