前提条件:
(1) zabbix服务器端已经成功安装并且运行。
(2) zabbix客户端已经成功建立并且运行。
1 下载并且安装msmtp软件
Wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/download
tar jxvf msmtp-1.4.32.tar.bz2
cd msmtp-1.4.32
./configure--prefix=/usr/local/msmtp
Make
Make install
2 、手动建立配置文件 , 输入外部 smtp 地址
mkdir –p /usr/local/msmtp/etc
vi /usr/local/msmtp/etc/msmtprc
添加以下内容
account default
host smtp.sohu.com # 你的发送邮件服务器
port 25
from zabbix2014@sohu.com # 要从哪个邮箱发出
auth login
tls off
user zabbix2014 # 邮箱用户名
password xxxxx-xxx # 邮箱密码 , 如果你觉得不安全可以把文件改为 600 属性
logfile /var/log/mmlog
保存退出。
3 、简单测试一下
/usr/local/msmtp/bin/msmtp zabbix2014@sohu.com
hello , test
ctrl d
cat /usr/local/msmtp/msmtp.log 看看有没有成功。
然后再到 sohu 邮箱中,看看信收到没有
报错如下
[root@cache-2 msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp zabbix2014@sohu.com
msmtp: authentication failed (method LOGIN)
msmtp: server message: 535 5.7.0 Invalid result
msmtp: could not send mail (account default from /usr/local/msmtp/etc/msmtprc)
Google之后,需要安装 mutt组件
4 、下面开始安装 MUTT 如果是 CentOS 的话直接用 yum 就好了
yum install mutt
安装完成后要手动给他建立一个配置文件,
vim /etc/Muttrc
setsendmail="/usr/local/msmtp/bin/msmtp" # 你的 msmtp 命令路径
set use_from=yes
set realname=" zabbix2014@sohu.com "
set editor="vim"
简单的 4 行就可以了
好了,让我们来测试一下吧!
测试一下: echo"test mail" | mutt -s "test" zabbix2014@sohu.com
OK ,测试了下,能收到已经发送的 email ,如下所示:
echo"test mail 2014 content tom 2" | mutt -s "test 2014 title2" zabbix2014@sohu.com
5 、 创建 zabbix 用于发送邮件的脚本
脚本放在什么位置随便,但是要保证 zabbix 可以找到!
1)vim/usr/bin/zabbix2014, 并写入如下内容:
#!/bin/bash
echo "$3" | mutt -s "$2"$1 # $3 表示邮件内容、 $2 表示邮件标题、 $1 表示收件人
(2)chmod a+x /usr/bin/zabbix2014
6 、 zabbix 配置
(1) 创建 meida types
1 .登录到 zabbix ,进入 “Administration" >> ”Media types" ,点击右上角 “Create Media Type" 。 Description 填 "mediatype-zabbix2014" 或其它名称, Type 选择 "Script" , Script 填 ” zabbix2014” 。
2 .点击 save 保存,如下图所示:
7 、创建 actions
1. 登录到 zabbix ,进入 "Configation" >> "Actions" ,点击右上角 "Create Actions" 。输入 Name “action-zabbix2014” ,其它都默认点击右侧 “Action Operations" 下的 "New" 按钮, "Operation Type" 选择 "Send message" , "Send Message to" 选择一个或多个要发送消息的用户组, ”Send only to" 选择我们之前新增的 mediatype-zabbix2014 。
2. 点击 save 保存,如下图所示:
8 、 zabbix 用户配置
登录到 zabbix, 进入 "Adimistration" >>"Users" ,在之前选定要发送消息的组里的 Members 栏位里选择一个用户,例如选择 AdminZabbix 用户。
在用户信息修改界面最下方的 ”Media" 处点击 "Add" 按钮。
Type 选择 "mediatype- zabbix2014" , Send to 填入收件人地址,点击 Add 添加。
点击 "Save" 保存配置。如下图所示:
9 测试验证邮件发送功能是否正常。
PS:这个验证报警的实现,请参考 http://blog.csdn.net/mchdba/article/details/24540017 里面有描述mysql.ping_test是如何建立并生效的。
9.1 去stop服务器上的mysql服务,一会就应该会报警
[root@db-m2-slave-1~]# service mysql stop
Shutting downMySQL... [确定]
[root@db-m2-slave-1~]#
但是没有收到email,所以我们需要去看events,是否有提示为什么会发不出email来。进去目录 Monitoring—>Events à Group( 选 All) à Host( 选要监控的数据库主机 ) à Source( 选 Trigger) 。
点开最左边一列的连接 02 May2014 12:34:06 ,就会看到如下提示信息:
看到提示:
/usr/local/zabbix/scripts/zabbix2014: [2] Nosuch file or directory
记得是放在 /usr/bin/zabbix2014 ,所以将脚本放在提示所需要的目录上面,直接mv一下即可:
mv/usr/bin/zabbix2014 /usr/local/zabbix/scripts/zabbix2014
之后会看到新的报警PROBLEM信息,email已经发送出去了,如下图:
9.2 改email地址,改成139邮箱,并且附带免费短信报警功能实现。
进入目录,AdministrationàUsersà Zabbixadministrators à Users (1) à AdminZabbix (最左边一列)àMedia(选择中间的那一个栏目)—> mediatype-zabbix2014 ( 选择用 Trigger 所用的 mediatype) à Edit( 点击进去修改 ) à Send to( 后面的输入框里面填写上 139 的 email , 比如 xxx@139.com) ,如下图所示:
9.3 切换139邮箱来验证发送短信功能
注册139邮箱,打开email,stop以及start数据库上面的mysql进程服务,就会收到报警email以及短信通知,报警email如下:
记得开启短信提示功能,短信免费。
9.4 如何让zabbix继续发送报警信息直到恢复正常为止。
进入目录,ConfigurationàHostsà选中主机àTriggeràName(比如进入 check_mysql_status )à在 Multiple PROBLEM events generation一栏打勾àSave。如下图所示:
10 总结:
第一次zabbix的邮件报警试验成功了,折腾了很多天,也咨询了很多朋友,在此感谢他们,下面还有许多zabbix的深入的东西需要继续学习继续专研。
且行且努力吧。
参考文章: http://bbs.hx95.com/read-htm-tid-181423.html
附上网友北京酱油帝的建议,如何验证 trigger 报警成功:
要想验证trigger的有效性很简单:
第一 ,trigger在monitor的界面有个events选项看到没有,那里面是可以点击机器ip的,你看你定义的trigger有没有发生。
第二, 第二,如果trigger发生了,是要看脚本也就是media调用有没有成功,如果成功了,最好在脚本里面加上日志。
相关推荐
Zabbix实现微信报警部署实践,非常不错,减轻了工作负担
zabbix邮件报警设置
主要是在zabbix3.4 搭建,包括mysql nginx zabbix agent
zabbix Web邮箱报警,对于新手上路来说有一个很好的指导
用于搭建zabbix监控系统邮件报警的shell脚本。
Zabbix-python报警邮件脚本,可以直接使用此脚本,无需多余更改
zabbix入门指导+安装配置+邮件报警+短信报警
zabbix 上如何部署实现微信报警,详细步骤。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix+邮件报警+脚本报警+监控模板+克隆+自动发现、注册
适用于大多数的短信接口调用脚本,只需要修改其中的账号密钥信息。
此脚本是关于zabbix触发微信公众号发送报警脚本,只需要修改二个参数: self.__corpid(微信公众号提供的ID) self.__secret(微信公众号提供的密码)
zabbix邮件发送脚本,zabbix邮件发送脚本,zabbix邮件发送脚本
( zabbix邮件报警.docx )
ZabbixZabbixZabbixZabbixZabbix 除了可以使用邮件报警 之外, 还可以通过多种方式把告警 信息发送到指定人, 信息发送到指定人, 例如 短信报警方式,越来多的企业开始使用 短信报警方式,越来多的企业开始使用 ...
zabbix通过钉钉工作通知发送报警
介绍了zabbix配置监控并实现报警的全部流程。详细介绍了一个报警数据如何从取值到报警邮件报警的全流程。
主要介绍了Zabbix实现微信报警的相关资料,本文图文并茂介绍的非常详细,需要的朋友可以参考下
zabbix监控系统之触发器,邮件告警,各种类型邮件设置方法,
Zabbix安装,微信报警(第六版)
zabbix使用的钉钉报警脚本