这次以普通用户的身份登录系统,还是先从msmtp发邮件开始,首先先建立一个日志文件。这个日志文件的路径选择是/var/log/msmtp.log。


但是普通用户使用# touch /var/log/msmtp.log的话,应该会提示权限不够,于是使用sudo提权限,但是sudo文件里没有这个用户名的话,那么会提示“用户不在sudoers文件中,此事将会报告”。翻译成人话就是“你没被授权。”


如果你不是root,那么就找管理员去要一个权限。如果手里有root账号,那么需要# su root,然后输入root的密码,#cd /etc,在etc目录里有好多文件,#ll sudoers,发现这个文件是440的权限,可见这个文件很重要,除非有十足的把握,不然绝对不可以乱改权限!


既然是要给其他人赋以命令权利,那么可以暂时的更改一下权限,#chmod 777 sudoers,然后vim了它,找到root ALL=(ALL) ALL,在这一行下面加上需要加权限的用户名,然后后面同样加上ALL=(ALL) ALL.保存退出,然后切记一定要把权限改回成440,不然你这个服务器就等于随时送给别人了。


切回自己的正常用户账号,就可以使用sudo命令,$ touch /var/log/msmtp.log


zabbix这个软件是跟登陆者的帐号走的,也就是说使用user1登陆,那么采用的配置文件就是默认使用user1的home文件夹下的配置文件;如果使用的是user2登陆,那么采用的配置就是user2的home文件夹下的配置文件,这些配置文件都需要手动的加入。而使用的是root登陆,配置文件就不是root下的配置,而是msmtp的总配置文件,是一个在msmtp的路径下叫msmtprc的东西。


之前说的user1、user2的配置文件是一个隐藏文件,名字叫.msmtprc。因为zabbix在安装成功之后,会自动生成一个叫zabbix的用户,但是这个用户是没有家文件的,需要切换root用户,#vim /etc/passwd,找到zabbix用户,将原来的/var/lib/zabbix/:/bin/false改成/home/zabbix/:/bin/bash。这样的话,zabbix这个账户就可以登陆了,而在root状态下改登zabbix用户,#su zabbix。不需要密码直接来。


$ cd /home/zabbix,然后$ touch .msmtprc,在这个配置文件里输入下图的语句:

wKioL1ak-9mgmHnQAAAhUmPzcvo965.png

保存之后退出,$ll -a一下,看看这个.msmtprc 的所有者和所属组是不是都是zabbix,权限应该改成600.


然后就是安装mutt,如果安装过了这一步就省略掉,方法步骤跟之前那片文章是一样的,也是要备份原来的Muttrc,同时新建一个新的Murrtc。然后使用$ echo "邮件正文"|mutt -s "邮件标题" 邮箱B的地址  来测试一下邮箱环境是否搭建成功。


注意,在上面我们touch了一个msmtp.log,而这个msmtp.log文件对于zabbix用户是不能访问的,所以需要借助root来chown or chomd来让zabbix用户能够对msmtp.log有写的权限,不然的话,邮件提示发送失败。


$vim etc/zabbix/zabbix_server.conf,这个是zabbix客户端的配置文件,这个文件也有可能地址是 etc/zabbix_server.conf,找到AlertscriptPath这一行,记住这个脚本的地址,然后退出这个配置文件,切换成root用户把这个脚本的路径用户和所属组改成zabbix,这样zabbix用户就可以使用这个路径来保存脚本,但是这样貌似root用户就不能了。一会我会实验验证一下。如果这里改变了脚本的目录,那么需要重启一下zabbix服务,#service zabbix_server restart,这里可能有人是#service zabbix-server restart,只是小差别,不碍事。


在这个脚本路径下,#vim mail.sh,这个mail.sh就是脚本,而脚本的内容如下:

#!/bin/sh

echo "$3" | mutt -s "$2" $1

这里$1\$2\$3都是脚本的参数,保存退出之后,确认这个脚本文件的用户和所属组全是zabbix,并且要有执行权限。即# chown zabbix:zabbix mail.sh 然后#chomd u+x,g+x mail.sh


切换回zabbix用户,使用zabbix用户来执行一下这个脚本,在脚本目录下:./mail.sh 邮箱B的地址 邮件正文 邮件内容  这三个内容正好对应脚本里的$1\$2\$3,于是是可以正常发送的。


以上所有的邮件环境搭建完毕,进入zabbix的界面,在网页的右下角看见登陆账号,默认应该是admin,在右上角“登出”的旁边有一个“基本资料”,点击之后选择“示警媒介”,这里选择添加,方式要email,发送地址写上自己要收到邮件的地址,下面还可以选择接受zabbix的时间以及接受告警的级别,下面的“已启用”必须要选择。然后添加和存档。如图所示:

wKiom1ak-6axLijFAAAPL_j0Bog001.png


然后再上面选择“管理”,然后点击“示警媒介类型”,选择email,然后输入刚刚的脚本名字:mial.sh,然后保存。

wKioL1ak_AugvpjQAABnrOUjHfE434.png

“管理”旁边有一个“组态”,点击“动作”,点击“Report problem ro zabbix Administraors”,这里有很多很高级的动作,先不管,选择旁边的“条件”,选择触发器具体类型。选择好正确的触发器和触发条件,然后去触发一下,使更改值越过阈值,看看邮件是否会被正确的发送。