zabbix邮件发送脚本
‘壹’ 请问怎么实现zabbix将不同主机的告警邮件指定发送到不同的人
1、先设定用户对主机群组的权限
2、设置产生动作
‘贰’ zabbix怎样监控windows邮件服务器
可以配置zabbix使用外部邮件服务器发送报警邮件,然后来随时监控邮件服务器,具体:
1.进入Administration->Media types
配置如下,Script name 要与之前写的发邮件的脚本名字相同
3. 进入Configure->Actions
新建Action
可以修改默认的邮件内容,以下是我修改之后的邮件内容格式:
添加step,别忘了点Add按钮,点上面的Add,再点下面的Add免得添加出错,注意要选择发送邮件给哪一个用户;并选择刚才定义好的Media type名字。
Default operation step ration 表示这次发送邮件后,下一次发邮件是在多少秒之后。
以上我总共添加了三次发送邮件的Action,如果触发器出发了,一直没有人确认触发器,则会发三次邮件,添加完后结果如下图:
4.进入Administration->Users
下图为修改admin的登录密码:
点击Media再添加
Type选择Send alarm email(之前创建的Action),并填写接收的邮箱,
‘叁’ 怎么在zabbix里面使用python脚本
1.修改zabbix server端的配置文件,启用AlertScriptsPath,使其支持脚本功能
1.编辑zabbix server端的配置文件,并重启服务
# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts
# /etc/init.d/zabbix_server restart
2.在服务端添加邮件报警的python脚本,并给脚本执行权限
邮件报警,并记录日志
# vim /usr/local/zabbix/alertscripts/zabbix_sendmail.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pdb
import smtplib
import string
import time
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
#pdb.set_trace()
#HOST = "mail.gw.com.cn"
def S_Mail():
HOST = "smtp.exmail.qq.com" #邮件服务器
SUBJECT = sys.argv[2].decode(‘utf-8‘).encode(‘gbk‘) #主题
TO =sys.argv[1] #收件邮箱
FROM = "[email protected]"
text = sys.argv[3].decode(‘utf-8‘).encode(‘gbk‘) #发件内容
BODY = string.join((
"FROM: %s" % FROM,
"To: %s" % TO,
"Subject: %s" %SUBJECT,
"",
text
),"\r\n")
server = smtplib.SMTP()
server.connect(HOST,25)
#server.starttls()
server.login("发件邮箱","密码")
server.sendmail(FROM,[TO],BODY)
server.quit()
# email log 记录日志
with open(‘/data/logs/zabbix/Email.log‘, ‘a‘) as f:
date=time.strftime("%y-%m-%d %H:%M:%S")
str = date + " " + TO +" " + SUBJECT + "\r\n" + "\n"
str1 = str.decode(‘gbk‘).encode(‘utf-8‘)
# print("%s" %str1)
f.write(str1)
if __name__==‘__main__‘:
S_Mail()
‘肆’ zabbix 怎么设置 磁盘空间少于5%就发邮件提示
管理->审计->作 能看发送邮件状态 状态功并代表完全功 需要查看发送脚本发送邮件否报错信息 另外需要看否退信才能知道邮件否真功
‘伍’ zabbix查看哪些邮件发送成功
管理->审计->动作, 能看到发送邮件的状态, 但是这个状态成功并不代表完全成功, 需要查看发送脚本发送邮件是否有报错信息, 另外需要看是否有退信,才能知道邮件是否真正成功
‘陆’ zabbix的告警脚本目录在哪
zabbix媒介类型包括mail、sms、自定义脚本,我们用的最多的还是脚本媒介,再次我们就不讲另外两个媒介了。当事件通知到脚本,会传递三个参数它,分别为$1(发送给谁) $2(标题) $3(内容)。例如发送邮件给[email protected],标题为nginx离线,内容是IP地址:1.1.1.1,nginx离线,请立即处理。
‘柒’ 如何实现zabbix报警邮件中可以显示ip地址
说明:
Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。
实现目的:
在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。
具体操作:
以下操作在Zabbix监控服务端进行
备注:Zabbix监控服务端
操作系统:CentOS
主机名:zabbix.osyunwei.com
邮件报警有两种情况:
1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件。
2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。
第一种:使用Zabbix服务端本地邮箱账号发送邮件
一、安装sendmail或者postfix
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
yum install postfix
service postfix start
chkconfig postfix on
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
sendmail和postfix只需要安装一个即可并开启服务即可。
二、安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x
编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
echo "zabbix test mail" |mail -s "zabbix"
[email protected]
#测试发送邮件,标题zabbix,邮件内容:zabbix test
mail,发送到的邮箱:[email protected]
三、配置Zabbix服务端邮件报警
1、打开Zabbix
管理-示警媒介类型-Email
名称:Email
类型:电子邮件
SMTP服务器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP电邮:[email protected]
已经用:勾选
存档
备注:zabbix.sa.huanqiu.com为Zabbix监控端主机名称,建议修改,否则使用默认的localhost.localdomain发送邮件会被当做垃圾邮件拦截。
2、设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介
添加
类型:Email
收件人:[email protected]
其他默认即可,也可以根据需要设置
状态:已启用
存档
3、设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:
{TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}:
{TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
用户:勾选Admin
选择
仅送到:Email
存档
四、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看[email protected]邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看[email protected]邮箱,会收到恢复邮件
使用Zabbix服务端本地邮箱账号发送邮件设置完成。
第二种:使用外部邮箱账号发送报警邮件设置
一、关闭sendmail或者postfix
service sendmail stop #关闭
chkconfig sendmail off #禁止开机启动
service postfix stop
chkconfig postfix off
备注:
使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱
配置信息。
二、安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
三、配置Zabbix服务端外部邮箱
vi /etc/mail.rc #编辑,添加以下信息
set [email protected] smtp=smtp.163.com
set [email protected]
smtp-auth-password=123456
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s "zabbix" [email protected]
#测试发送邮件,标题zabbix,邮件内容:zabbix test
mail,发送到的邮箱:[email protected]
#这时候,邮箱[email protected]会收到来自[email protected]的测试邮件
四、配置Zabbix服务端邮件报警
1、打开Zabbix
管理-示警媒介类型-创建媒体类型
名称:Sendmail
类型:脚本
脚本名称:sendmail.sh
已启用:勾选
存档
2、设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介-添加
类型:Sendmail
收件人:[email protected]
其他默认即可,也可
以根据需要设置
状态:已启用
存档
3、设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:
{TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}:
{TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
选择用户:Admin
选择
仅送到:Sendmail
存档
4、添加Zabbix服务端邮件发送脚本
cd /usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录
vi sendmail.sh #编辑,添加以下代码
#!/bin/sh
echo "$3" | mail -s "$2" $1
:wq! #保存退出
chown zabbix.zabbix
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本所有者为zabbix用户
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本执行权限
五、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看[email protected]邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看[email protected]邮箱,会收到恢复邮件
使用外部邮箱账号发送报警邮件设置完成。
至此,Zabbix邮件报警设置完成。
‘捌’ 如何让zabbix发送警告邮件
zabbix相关环境:
OS: centos 5.4 x86_64 zabbix: 1.8.3 sendmail: 8.13.8-2.el5
在配置zabbix的Email报警之前,需要将sendmail使用的域名进行相应的修改,系统默认为localhost.localdomain,其实不改也行,不过有些pop3服务器会过滤掉来自localhost.localdomain的邮件,导致邮件不能正常查收,所以,最好是改一下 hostname,确保邮件发送的成功率。
以下是我线上机器修改好了的配置,可供参考。
# cat /etc/hosts
127.0.0.1 monitor.bot.cms localhost.localdomain localhost
# cat /etc/mail/access
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1
Connect:monitor.bot.cms RELAY
# cat /etc/mail/local-host-names
monitor.bot.cms
修改完成后,重启sendmail服务,通过telnet命令,测试一下看看是否已生效
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to monitor.bot.cms (127.0.0.1).
Escape character is '^]'.
220 monitor.bot.cms ESMTP Sendmail 8.13.8/8.13.8; Sun, 10 Oct 2010 14:00:33 +0800
从以上结果可以发现,localhost.localdomain 已经变成了 monitor.bot.cms 这个域名,表示修改成功,接下来就可以在zabbix 的管理页面上进行Email 报警设置了。
设置完成后点击保存按钮,到此Email报警设置就结束了,测试时,可以新建一个action,报警方式选择Email, 当trigger成功触发后,一分钟后就可以查收邮件了。
‘玖’ 如何配置zabbix 3.0 用mail邮件方式告警support for smtp authentication was not
前提条件:
(1) zabbix服务器端已经成功安装并且运行。
(2) zabbix客户端已经成功建立并且运行。
1 下载并且安装msmtp软件
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 [email protected] #要从哪个邮箱发出
auth login
tls off
user zabbix2014 #邮箱用户名
password xxxxx-xxx #邮箱密码,如果你觉得不安全可以把文件改为600属性
logfile /var/log/mmlog
保存退出。
3、简单测试一下
/usr/local/msmtp/bin/msmtp [url=mailto:%[email protected]][email protected][/url]
hello,test
ctrl d
cat /usr/local/msmtp/msmtp.log 看看有没有成功。
然后再到sohu邮箱中,看看信收到没有
报错如下
[iyunv@cache-2 msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp [email protected]
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="[email protected]"
set editor="vim"
简单的4行就可以了
好了,让我们来测试一下吧!
测试一下:echo"test mail" | mutt -s "test" [email protected]
OK,测试了下,能收到已经发送的email,
echo"test mail 2014 content tom 2" | mutt -s "test 2014 title2" [email protected]
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"保存配置。