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告警钉钉配置

其他警告

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

参考资料

文章目录
  1. 1. 前言
  2. 2. 告警机制
    1. 2.1. 原理
    2. 2.2. 使用
  3. 3. 告警应用
    1. 3.1. 邮件告警
      1. 3.1.1. 邮件配置
      2. 3.1.2. 微信通知
    2. 3.2. 钉钉告警
      1. 3.2.1. 申请机器人
      2. 3.2.2. 消息推送
    3. 3.3. 其他警告
  4. 4. 参考资料