• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Zabbix配置脚本报警

Zabbix 彭东稳 8年前 (2016-09-30) 37211次浏览 已收录 0个评论

一、配置使用script报警媒介

Zabbix配置邮件报警

上面详细介绍了如何使用zabbix email形式发送报警,个人认为唯一的缺点就是报警内容太不够人性化了。所以下面介绍zabbix第二种常用的报警方式,自定义脚本的形式报警,这个自定义的脚本你可以使用邮件报警、短信报警等等。

配置用户以script方式接受报警,在zabbix 2.x版本中,当有报警通知时,默认会传3个参数给脚本,它分别为是$1(发送给谁)、$2(发送标题)、$3(发送内容)。例如发送邮件给support@ywnds.com,标题为nginx宕机,内容是IP地址:1.1.1.1,nginx离线,请立即处理等等。

但从zabbix 3.0之后,可以自定义参数了,所以不写参数,它是不会传参数给脚本的,需要注意。

1)下面来配置自定义邮件报警,我们使用mailx作为发信息的客户端,所以先要安装mailx。

配置mailx

发送测试邮件

2)zabbix服务器端编写邮件发送脚本

首先配置zabbix

写报警脚本

增加可执行权限

测试发送脚本

PS:最后需要重启zabbix-server和nginx/Apache服务器,千万别忘了。

二、Zabbix后台配置

Administration–>Media types–>Create media type

进入告警方式配置界面,创建sendmail.sh告警方式,如下图:

Zabbix配置脚本报警

name:媒介类型名称。

type:介质类型。

script name:脚本名称(需要先定义AlertScriptsPath,sendmail.sh脚本放在这个目录下,写绝路路径没用)

脚本参数:添加以下3个参数,分别对应sendmail.sh脚本需要的3个参数:收件人地址、主题、详细内容。

解释:很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。在2.x版本不存在这个问题,默认会传3个参数。然后配置用户以script方式接受邮件。

这时候就可以先停止zabbix_agent 测试下短信会不会成功发送。

三、sendEmail客户端发送邮件

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择使用简单并且功能强大这个被设计用在phpbashperlweb站点使用。以上是sendEmail的简单介绍千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了。

下载安装sendEmail

发送邮件

在配置zabbix的Email报警之前,需要将sendmail/postfix使用的域名进行相应的修改,系统默认为localhost.localdomain,其实不改也行,不过有些pop3服务器会过滤掉来自localhost.localdomain的邮件,导致邮件不能正常查收,所以,最好是改一下hostname,确保邮件发送的成功率

sendemail发邮件脚本缩写(需要安装sendemail邮件客户端)

增加可执行权限

测试发送脚本

一般以html这种方式发送的邮件内容都堆到一起了,没有换行。可以修改动作日志的内容格式:

点击 配置->动作->Report problems to Zabbix administrators

在默认信息每一行后面添加<br/>

最后提供一个Python版本的报警脚本

测试

完结。。。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (8)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!