1、基础知识
1.1、工具简介
Zabbix作为一个企业级的开源的监控平台来说,数据收集是核心功能,虽然监控数据可视化了,也非常容易观察到运行状态。但是最能产生价值的地方就是对数据分析后的告警处理措施,因为我们很难做到时刻盯
着监控并及时做出正确的决策,所以程序来帮巡检并自动告警,是保障业务稳定性的决定性措施。可以说任何一个监控平台如果没有告警平台,那么他就逊色不少甚至都不能称之为平台。
对于Zabbix平台来说,它自己的告警机制非常灵活,不仅仅支持分级告警机制,还支持多种样式的告警方式,比如邮件-使用最广、微信-灵活及时、钉钉-灵活及时、手机-定制费钱、脚本-功能丰富等,不同的告
警方式可以表现出不同的告警样式。
1.2、流程解析
zabbix的告警,其实起始于item,触发于Trigger,终于Action,依赖Media渠道,也就是说怎么告警主要是有Action资源来决定的,但是告警的通知渠道却是有对应的Media资源来决定.
1.3、遵循原则
准备工作
- 业务场景需要告警机制(告警发送方和通知接收方)
- 服务器支持告警功能
告警机制
- User 和 User group 资源配置告警用户
- 设定告警媒介Media资源
动作管理
- 启动什么时候告警的Action
- 关联触发告警的Trigger
2、邮件环境
2.1、安装软件
apt-get install -y libio-socket-ssl-perl libnet-ssleay-perl sendemail
2.2、sendemail命令解析
命令帮助
sendemail -f ADDRESS [options]
参数解析
-f ADDRESS # 发件人地址,注意此地址应该是你真实地址
-t ADDRESS # 收件人地址
-u SUBJECT # 主题
-m MESSAGE # 邮件正文
-s SERVER[:PORT] # SMTP服务器地址及端口
-a FILE [FILE ...] # 附件
-cc ADDRESS [ADDR ...] # 抄送地址
-bcc ADDRESS [ADDR ...] # 暗抄送地址
-xu USERNAME # SMTP服务器用户名
-xp PASSWORD # SMTP服务器密码
-o # 其它选项
2.3、命令发送邮件的示例
2.3.1、命令发送
echo '你好啊' > append_file.txt
sendemail -f *****@aliyun.com -t 27766****@qq.com -u "email" -m "sendemail test" -s smtp.aliyun.com -o message-charset=utf-8 -o tls=no -xu ******@aliyun.com -xp pwdxxxx -a append_file.txt
2.3.2、效果
3、zabbix邮件配置
3.1、配置脚本存放的目录
sed -i '/^# AlertScriptsPath/c AlertScriptsPath=/usr/lib/zabbix/alertscripts' /etc/zabbix/zabbix_server.conf
# grep -i alertsc /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
AlertScriptsPath=/usr/lib/zabbix/alertscripts
systemctl restart zabbix-server
3.2、定制脚本内容
3.2.1、脚本
cat << 'CAT_END' > /usr/lib/zabbix/alertscripts/sendemail.sh
#!/bin/bash
# 邮件发送脚本
email_send="*****@aliyu.com"
email_receive=$1
email_subject=$2
email_message=$3
email_passwd='******'
smtp_server='smtp.aliyun.com'
if [ $# -eq 3 ];then
/usr/bin/sendemail -f $email_send -t $email_receive -u $email_subject -m $email_message -s smtp.aliyun.com -o message-charset=utf-8 -o tls=no -xu $email_send -xp $email_passwd
fi
CAT_END
chmod +x /usr/lib/zabbix/alertscripts/sendemail.sh
3.2.2、测试
# bash /usr/lib/zabbix/alertscripts/sendemail.sh *****@aliyun.com "test" "hello worold"
May 29 02:23:50 localhost sendemail[57708]: Email was sent successfully!
4、总结
4.1、基础知识
工具简介:快速的故障应对措施,告警方式灵活
操作流程:准备工作-用户管理-媒介管理-动作管理
4.2、告警环境
思路:服务器mail功能,邮件支持
关键点:mail配置、目录权限