配置 zabbix 通过调用 bash 脚本,发送 邮件 和 企业微信 告警,我们都知道zabbix本身也是可以发送邮件的,zabbix server调用curl来发送邮件,这导致对curl的版本有一定要求。使用脚本方式的一个特点是可扩展性,你通过自己调整脚本来实现其他功能,联调其他应用。
脚本运行依赖环境
sendEmail是一款使用perl语言编写的邮件发送脚本,让你不必安装sendmail或postfix等配置复杂的邮件服务器轻松发送邮件,sendEmail也可以支持发送SSL协议的邮件,指定邮件字符集,发送html格式的正文邮件以及发送包含附件的邮件等等功能。
官网 http://caspian.dotconf.net/menu/Software/SendEmail/执行 yum -y install perl 安装perl,sendEmail,下载解压放在任意位置,脚本在配置中引用
Zabbix配置
标准的zabbix告警,需要配置 报警媒介类型,动作,用户(报警媒介),其他内容这里不过多阐述自行百度,主要讲一下脚本配置,在管理->报警媒介类型,创建或修改一个媒介类型,类型改为脚本,脚本名称(放置在alertscripts目录下的文件名,alertscripts目录位置请在zabbix_server.conf配置文件中寻找),这里注意如果是zabbix2.2版本,选择类型,填写脚本名称保存即可,3.0以上版本需要添加参数,添加以下三项参数{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE},注意包含中括号,这是传给脚本的三个zabbix内置变量,分别是收件邮箱、邮件主题、邮件正文,其中{ALERT.SENDTO}在我编写的脚本中其实用不到,我把收件联系人配置写在了脚本里,按照以往的规格还是加进去以防以后需要用到。
脚本配置
微信配置,这里的微信是企业微信,不是微信公众号,以下参数请在注册企业微信的后台管理中寻找。
官网 https://work.weixin.qq.comCorpId=’xxx’
PartyId=’xxx’
AgentId=’xxx’
Secret=’xxx’邮件相关的配置,配置sendEmail路径,请尽量填写绝对路径
sendEmail=’/usr/local/zabbix/etc/alertscripts/sendEmail’
主发件箱(用户、密码、smtp服务器)
master_usr=’xxx@qq.com’
master_psk=’xxx’
master_smtp=’xxx’
备发件箱(用户、密码、smtp服务器)
backup_usr=’xxx@qq.com’
backup_psk=’xxx’
backup_smtp=’xxx’
应急发件箱(用户、密码、smtp服务器、收件人),应急发件的定义,主备邮箱均不可使用时启用的邮箱,通常配置为QQ、163、第三方邮件服务器,但第三方存在发件数量及内容限制问题不适合大量发送邮件。
emer_usr=’xxx@163.com’
emer_psk=’xxx’
emer_smtp=’xxx.163.com’
emer_to=’xxx@qq.com’
告警收件人列表(多个收件人使用空格分隔)
alert_to_ops=’xxx@qq.com xxx@163.com’
脚本源码
1 |
|