zabbix上怎么通过sendmail发送邮件报警

zabbix上怎么通过sendmail发送邮件报警,第1张

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.8Sun, 10 Oct 2010 14:00:33 +0800

     从以上结果可以发现,localhost.localdomain 已经变成了 monitor.bot.cms 这个域名,表示修改成功,接下来就可以在zabbix 的管理页面上进行Email 报警设置了。

设置完成后点击保存按钮,到此Email报警设置就结束了,测试时,可以新建一个action,报警方式选择Email, 当trigger成功触发后,一分钟后就可以查收邮件了。

前提条件:

(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 zabbix2014@sohu.com #要从哪个邮箱发出

auth login

tls off

user zabbix2014 #邮箱用户名

password xxxxx-xxx #邮箱密码,如果你觉得不安全可以把文件改为600属性

logfile /var/log/mmlog

保存退出。

3、简单测试一下

/usr/local/msmtp/bin/msmtp [url=mailto:%20zabbix2014@sohu.com]zabbix2014@sohu.com[/url]

hello,test

ctrl d

cat /usr/local/msmtp/msmtp.log 看看有没有成功。

然后再到sohu邮箱中,看看信收到没有

报错如下

[iyunv@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"保存配置。

可以配置zabbix使用外部邮件服务器发送报警邮件,然后来随时监控邮件服务器,具体:

1.进入Administration->Media types

配置如下,Script name 要与之前写的发邮件的脚本名字相同

3. 进入Configure->Actions

新建Action

可以修改默认的邮件内容,以下是我修改之后的邮件内容格式:

添加step,别忘了点Add按钮,点上面的Add,再点下面的Add免得添加出错,注意要选择发送邮件给哪一个用户;并选择刚才定义好的Media type名字。

Default operation step duration 表示这次发送邮件后,下一次发邮件是在多少秒之后。

以上我总共添加了三次发送邮件的Action,如果触发器出发了,一直没有人确认触发器,则会发三次邮件,添加完后结果如下图:

4.进入Administration->Users

下图为修改admin的登录密码:

点击Media再添加

Type选择Send alarm email(之前创建的Action),并填写接收的邮箱,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11559758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存