博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zabbix利用msmtp+mutt发送邮件报警
阅读量:6876 次
发布时间:2019-06-26

本文共 5530 字,大约阅读时间需要 18 分钟。

 

[root@86 ~]# wget http://jaist.dl.sourceforge.net/project/msmtp/msmtp/1.4.32/msmtp-1.4.32.tar.bz2 百度网盘:http://pan.baidu.com/s/1o8w68ci [root@86 msmtp-1.4.32]# pwd/root/msmtp-1.4.32[root@86 msmtp-1.4.32]# mkdir -p  /usr/local/msmtp/etc[root@86 msmtp-1.4.32]#./configure --prefix=/usr/local/msmtp --with-ssl=openssl [root@86 msmtp-1.4.32]# make && make install 配置msmtp[root@86 msmtp-1.4.32]# mkdir -p  /usr/local/msmtp/etc vim  /usr/local/msmtp/etc/msmtprcaccount defaulthost smtp.163.com //SMTP服务器port 25from clnking@163.comauth logintls offuser clnking //邮箱用户名 是clnking 而不是clnking@163.compassword xxxxxx #是授权码,而不是邮箱登录密码(授权码是用于登录第三方邮件客户端的专用密码)注意文章开头的图片logfile /var/log/zabbix/msmtp.log //日志路径 测试msmtp# cat /usr/local/msmtp/etc/msmtprc account defaulthost smtp.163.comport 25from username01@163.comauth logintls offuser username01password xxxxx #这里不是客户端受权密码,并非邮箱的登录密码logfile /var/log/mmlog# cat /etc/Muttrc.local # Local configuration for Mutt.set sendmail="/apps/msmtp/bin/msmtp"set from="clnking@163.com"set use_from = yesset editor="vim"set realname="zabbix of XXXX.com"[root@86 msmtp-1.4.30]# /usr/local/msmtp/bin/msmtp lin.chen@xinxianm.com  (邮箱必须是 /usr/local/msmtp/etc 里配置的邮箱)所以下面会报错!!(别的信箱也可以)helloctl +d #发送msmtp: the server did not accept the mailmsmtp: server message: 554 DT:SPM 163 smtp4,DtGowAAnErU7+ExXz+8hAQ--.9856S2 1464662088,please see http://mail.163.com/help/help_spam_16.htm?ip=123.57.36.227&hostid=smtp4&time=1464662088msmtp: could not send mail (account default from /usr/local/msmtp/etc/msmtprc)后补:[root@86 etc]# yum install mutt修改配置文件:cat /etc/Muttrc.local # Local configuration for Mutt.set sendmail="/usr/local/msmtp/bin/msmtp"set from="username01@163.com"set use_from=yesset editor="vim"set realname="zabbix of xxxxx.com"[root@86 etc]# echo "zabbix test "|mutt -s "chenlin" clnking@163.com[root@86 etc]# echo "zabbix test "|mutt -s "chenlin" lin.chen@xinxianm.com======================================================================================[root@86 msmtp-1.4.30]# /usr/local/msmtp/bin/msmtp clnking@163.comkkkkkkkkkkkkk^[  但信箱里没内容cat /var/log/mmlogMay 31 10:47:00 host=smtp.163.com tls=off auth=on user=clnking from=clnking@163.com recipients=clnking@163.com mailsize=15 smtpstatus=250 smtpmsg='250 Mail OK queued as smtp4,DtGowADXJJQP+0xX0LciAQ--.5878S2 1464662820' exitcode=EX_OK 因为没有配置:MUTT[root@86 msmtp-1.4.32]# yum install mutt [root@86 ~]# vi /etc/Muttrcset sendmail="/usr/local/msmtp/bin/msmtp"set use_from=yesset editor="vim"set realname="clnking@163.com"[root@86 ~]# echo "test mail 2016 content tom2" |mutt -s "test kkkkk" clnking@163.com进入邮箱  收到邮件 ------》测试成功!

 

 脚本:

[root@86 alertscripts]# pwd/usr/local/zabbix/share/zabbix/alertscripts[root@86 alertscripts]# grep "AlertScriptsPath" /usr/local/zabbix/etc/zabbix_server.conf### Option: AlertScriptsPath# AlertScriptsPath=${datadir}/zabbix/alertscriptsAlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts[root@86 alertscripts]# cat send_mail #!/bin/bashecho "time:$(date +%m-%d-%H:%M:%S)" >>/var/log/zabbix/test.logecho "p3_$3" >>/var/log/zabbix/test.logecho "p2_$2" >>/var/log/zabbix/test.logecho "p1_$1" >>/var/log/zabbix/test.log/bin/echo "$3"| /usr/bin/mutt -s "$2" $1echo "send end ..." >> /var/log/zabbix/test.logecho "" >> /var/log/zabbix/test.log

 #开始没成功不知道为什么后来做了以下操作,但当时还没成功 ,第二天成功了!

ln -s /usr/local/msmtp/bin/msmtp /usr/local/bin/msmtp[root@86 alertscripts]# ps -ef|grep "zabbix_server"zabbix    8734     1  0 03:00 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_server#并没有跟-c /usr/local/zabbix/etc/zabbix_server.conf

 

# echo "加邮件符件"|mutt -s fujian text@test.com -a /data1/apps/mail.txt //邮件内容为"加邮件符件"//主题为fujian//如果需要发送多个人的话可以继续添加收件人//mail.txt为附件(-a + 附件)echo "加邮件符件"|mutt -s fujianxxxl@mail.com  xxg@163.com -a /data1/apps/mail.txt// 同时发多人

 经过一段时间的学习,对邮箱报警进行补全:

首先zabbix安装的时候是建的用户(/sbin/nologin)是不能使用bash或其它shell来登录系统,所以要改成/bin/bash

# grep zabbix /etc/passwd#zabbix:x:498:499:Zabbix Monitoring System:/var/lib/zabbix:/bin/bashzabbix:x:498:499:Zabbix Monitoring System:/home/zabbix:/bin/bash

查看各个文件的配置:

查看msmtprc的配置文件:

/apps/msmtp/etc# cat msmtprc account defaulthost smtp.139.comport 25from xx(发邮件的箱地址)@139.comauth logintls offuser 1352xxx(手机号因为我用的是139邮箱)password xxxxxx(邮箱密码)logfile /var/log/mmlog

查看muttrc的配置文件:

# cat /etc/Muttrc.local# Local configuration for Mutt.set sendmail="/apps/msmtp/bin/msmtp"set from="135xxx@139.com"set use_from = yesset editor="vim"set copy=no #这个也是个关建,一定不要忘记set realname="zabbix of xxxxx.com"

查看zabbix的配置文件:

# grep -E "(AlertScriptsPath|ExternalScripts)" /etc/zabbix/zabbix_server.conf ### Option: AlertScriptsPath# AlertScriptsPath=${datadir}/zabbix/alertscriptsAlertScriptsPath=/usr/lib/zabbix/alertscripts### Option: ExternalScripts# ExternalScripts=${datadir}/zabbix/externalscriptsExternalScripts=/usr/lib/zabbix/externalscripts

查看脚本:

# cd /usr/lib/zabbix/alertscripts/# lsKey  send_mail#这是我自己写的,目地是查的这个脚本执的过程,这样可以发现发题出在哪里,下面看看一下这两个文件内容:echo "time:$(date +%m-%d-%H:%M:%S)" >>/var/log/zabbix/test.logecho "$3" | /usr/bin/mutt -s "$2" "$1" >>/var/log/zabbix/test.logecho "------------ok---------->$WHO" >>/var/log/zabbix/test.logecho "p3_$3" >>/var/log/zabbix/test.logecho "p2_$2" >>/var/log/zabbix/test.logecho "p1_$1" >>/var/log/zabbix/test.log#echo ----------> $1 >>/var/log/zabbix/test.log#echo "send end ..." >> /var/log/zabbix/test.log#echo "" >> /var/log/zabbix/test.log# cat send_mail #!/bin/bashset -xA=$1T=$2C=$3echo $A $T $C/usr/lib/zabbix/alertscripts/Key "$A" "$T" "$C" >> /tmp/send.log 2>&1#这个才是一个创新,可以把脚本的执行过程从定向到/etc/send.log中 还有一点就是脚本的权限的问题,以定要给脚本可执行的权限,对于其它用户!!!

转载地址:http://maofl.baihongyu.com/

你可能感兴趣的文章
图解git原理与日常实用指南
查看>>
告诉你微信域名被封的原因和防封方案
查看>>
[sublime系列文章] sublime text 3插件配置说明
查看>>
Python 进阶之路 (七) 隐藏的神奇宝藏:探秘Collections
查看>>
执行计划小总结
查看>>
egg(114)--egg之订单详情
查看>>
关于区块链那些事(用Python3体现)
查看>>
我从编程教室毕业
查看>>
使用 webpack 4 和 Babel 7 构建 React 应用及如何引入 Material Design
查看>>
Laravel+Dingo/Api 自定义响应
查看>>
【PHP 每日函数】第 01 周期
查看>>
SpiderData 2019年2月18日 DApp数据排行榜
查看>>
这40款优质APP大合集,总有一个适合你!
查看>>
从理论到实践 全面理解HTTP/2
查看>>
JavaScript五十问——对比来说CSS的Grid与FlexBox(上篇)
查看>>
使用音频转换器怎么转换电影的格式?
查看>>
35. Search Insert Position
查看>>
js 读取 input[type=file] 内容,直接显示文本 | 图片
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
每日两道前端面试题20190226
查看>>