放慢了步伐,只为跑得更远~

0%

Zabbix告警机制与应用

前言

节点主机就像运维人员的孩子一样,需要时刻去关注各个节点主机的情况.运维需要合理利用Zabbix这样的高级管家帮我们了解节点主机的各项指标,一旦待监控指标特征值异常需要及时发起告警.
更重要的是,我们希望能实现阶梯式告警,不用事事必躬.这样可以根据问题的轻重缓急及时有效的通知到特定的群体组织.

告警机制

原理

Zabbix告警机制主要在于三项指标:监控项(items),触发器(triggers),动作(actions).根据具体的业务类型组合成各种不同模板(templates).

  • 监控项: 为节点主机配置好不同的监控项,让zabbix-agent收集主机的相关特征值.比如CPU,内存,进程数,服务器负载等.

监控项
监控项中的”更新间隔”即是数据采集频率.

  • 触发器:在触发器设置好临界指标(表达式)和警报级别(严重性),当满足条件时执行相应的动作.

触发器

  • 动作:zabbix监控到异常数据需要发起警报动作.通过媒体介质(meida type)通知相关人员.
    可以在动作配置中设置好告警频率(默认操作步骤持续时间)以及告警次数(步骤).

动作

使用

告警应用

关于告警的应用,根据问题的情况实际情况使用不同的通知方式.比如邮件告警,钉钉告警,电报告警,短信告警甚至使用电话语音告警.将问题最有效的通知到指定的群组.以下简单介绍邮件和钉钉告警的配置与使用.

邮件告警

邮件配置

在zabbix平台上找到管理->报警媒介类型列表,找到Email选项.填写邮件服务器相关信息.参照腾讯企业邮箱的邮件服务器配置,以下以腾讯企业邮箱SMTP协议配置为例.相关配置实例图如下,

Zabbix告警邮件配置

如上所示,邮件配置涉及到如下.

参数 说明
SMTP服务器 smtp.exmail.qq.com
端口 465(使用的是SSL协议)
SMTP电邮 发件人邮箱,比如notice@terrancy.com
用户名称 发件人邮箱,比如notice@terrancy.com
密码 发件人邮件密码

微信通知

使用腾讯企业邮箱结合微信小程序.在下班时间期间,将所有的警报通过微信小程序及时通知相关干系人.

钉钉告警

使用钉钉群内机器人.在上班期间,将警报信息通知到相关人员.

申请机器人

  • 在钉钉群设置里面选择”自定义”机器人,输入机器人名字和需要发送消息的群之后可以获得相应的Hook地址.其格式如下:

https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx

钉钉自定义群机器人申请

消息推送

通过官方提供的消息推送API,将消息推送指定的钉钉运维群.

  • 推送的参数实例:
1
2
3
4
5
6
7
8
9
10
11
{
"msgtype": "text",
"text": {
"content": "这是消息推送的内容"
},
"at": {
"atMobiles": [
],
"isAtAll": true
}
}
  • 参数说明:
参数 参数类型 必须 说明
msgtype String 消息类型,此时固定为:text
content String 消息内容
atMobiles Array 被@人的手机号(在content里添加@人的手机号)
isAtAll bool @所有人时:true,否则为:false
  • 告警脚本
    根据钉钉自定义机器人文本消息推送API,可以写个精简的告警脚本.
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#dingding.sh
webhook="https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx"
user=$1
text=$3
data='{"msgtype":"text","text":{"content":${text}},"at":{"atMobiles":[${user}],"isAtAll":false}}'
headers='Content-Type: application/json'
curl "${webhook}" -H "${headers}" -d "${data}"

将相应的bash脚本存放在zabbix告警文件夹(比如/usr/lib/zabbix/alertscripts),并赋予其相应的权限.

1
2
3
find / -name alertscripts
chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts
chown -R 755 /usr/lib/zabbix/alertscripts

在Zabbix平台的配置如下图所示.
Zabbix告警钉钉配置

其他警告

微信告警和钉钉告警是针对在国内情况下常用警报方式,如果是在国外可以选择使用电报机器人.

参考资料

-------------本文结束感谢您的阅读-------------