前言
节点主机就像运维人员的孩子一样,需要时刻去关注各个节点主机的情况.运维需要合理利用Zabbix这样的高级管家帮我们了解节点主机的各项指标,一旦待监控指标特征值异常需要及时发起告警.
更重要的是,我们希望能实现阶梯式告警,不用事事必躬.这样可以根据问题的轻重缓急及时有效的通知到特定的群体组织.
告警机制
原理
Zabbix告警机制主要在于三项指标:监控项(items),触发器(triggers),动作(actions).根据具体的业务类型组合成各种不同模板(templates).
- 监控项: 为节点主机配置好不同的监控项,让zabbix-agent收集主机的相关特征值.比如CPU,内存,进程数,服务器负载等.
监控项中的”更新间隔”即是数据采集频率.
- 触发器:在触发器设置好临界指标(表达式)和警报级别(严重性),当满足条件时执行相应的动作.
- 动作:zabbix监控到异常数据需要发起警报动作.通过媒体介质(meida type)通知相关人员.
可以在动作配置中设置好告警频率(默认操作步骤持续时间)以及告警次数(步骤).
使用
告警应用
关于告警的应用,根据问题的情况实际情况使用不同的通知方式.比如邮件告警,钉钉告警,电报告警,短信告警甚至使用电话语音告警.将问题最有效的通知到指定的群组.以下简单介绍邮件和钉钉告警的配置与使用.
邮件告警
邮件配置
在zabbix平台上找到管理->报警媒介类型列表,找到Email选项.填写邮件服务器相关信息.参照腾讯企业邮箱的邮件服务器配置,以下以腾讯企业邮箱SMTP协议配置为例.相关配置实例图如下,
如上所示,邮件配置涉及到如下.
参数 | 说明 |
---|---|
SMTP服务器 | smtp.exmail.qq.com |
端口 | 465(使用的是SSL协议) |
SMTP电邮 | 发件人邮箱,比如notice@terrancy.com |
用户名称 | 发件人邮箱,比如notice@terrancy.com |
密码 | 发件人邮件密码 |
微信通知
使用腾讯企业邮箱结合微信小程序.在下班时间期间,将所有的警报通过微信小程序及时通知相关干系人.
钉钉告警
使用钉钉群内机器人.在上班期间,将警报信息通知到相关人员.
申请机器人
- 在钉钉群设置里面选择”自定义”机器人,输入机器人名字和需要发送消息的群之后可以获得相应的Hook地址.其格式如下:
消息推送
通过官方提供的消息推送API,将消息推送指定的钉钉运维群.
- 推送的参数实例:
|
|
- 参数说明:
参数 | 参数类型 | 必须 | 说明 |
---|---|---|---|
msgtype | String | 是 | 消息类型,此时固定为:text |
content | String | 是 | 消息内容 |
atMobiles | Array | 否 | 被@人的手机号(在content里添加@人的手机号) |
isAtAll | bool | 否 | @所有人时:true,否则为:false |
- 告警脚本
根据钉钉自定义机器人文本消息推送API,可以写个精简的告警脚本.
|
|
将相应的bash脚本存放在zabbix告警文件夹(比如/usr/lib/zabbix/alertscripts),并赋予其相应的权限.
|
|
在Zabbix平台的配置如下图所示.
其他警告
微信告警和钉钉告警是针对在国内情况下常用警报方式,如果是在国外可以选择使用电报机器人.