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、效果

zabbix 的报警怎么忽略 zabbix关闭告警_bash

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配置、目录权限