[root@client ~]# systemctl stop sshd
[root@client ~]#
[root@client ~]# systemctl start sshd
[root@client ~]#
在服务端配置
这里我是用qq邮箱
邮箱发送协议:smtp,25端口
邮件接受协议,pop3 110端口 IMAP4 143端口
POP3可以理解为单项通讯,比如删除接收到的邮件时,服务端还是存在这个邮件
而IMAP若是删掉本地的邮件,在服务端的也会被删掉
pop3允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等)不会反馈到服务器上
而IMAP提供webmail与电子邮件客户端的双向通道,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应动作
这个授权码用来验证身份
[root@server ~]# yum install mailx -y
[root@server ~]# vim /etc/mail.rc
# For Linux and BSD, this should be set.
set bsdcompat
#文件末尾新增
set [email protected]
set smtp=smtp.qq.com
set [email protected]
set smtp-auth-password=qcaspkj***ccbfai #这里是自己的授权码
set smtp-auth=login #使用登陆验证
[root@server ~]# echo "hello world" | mail -s "testmail" [email protected]
[root@server ~]# echo “内容” | mail -s “标题” 邮箱地址
[root@server ~]# vim mailx.sh
#!/bin/bash
#邮件发送
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 |tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >> /tmp/mailx.log 2>&1
[root@server ~]# touch /tmp/mailx.log
#对于& 1 更准确的说应该是文件描述符 1,而1标识标准输出,stdout。
#对于2 ,表示标准错误,stderr。
#2>&1 的意思就是将标准错误重定向到标准输出。
[root@server ~]# cd /usr/lib/zabbix/
alertscripts/ externalscripts/
#常用脚本 #扩展脚本
[root@server ~]# cd /usr/lib/zabbix/alertscripts/
[root@server alertscripts]# cp ~/mailx.sh .
[root@server alertscripts]# ls
mailx.sh
[root@server alertscripts]# chmod +x mailx.sh
[root@server alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log
[root@server alertscripts]# ll /usr/lib/zabbix/
total 0
drwxr-xr-x 2 zabbix zabbix 22 May 24 11:13 alertscripts
drwxr-xr-x 2 zabbix zabbix 6 Apr 27 18:23 externalscripts
[root@server alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/
[root@server alertscripts]# ./mailx.sh [email protected] "./mail.sh" "cishijiaoben"
[root@server alertscripts]# tail -f /tmp/mailx.log
^C
#有报错才会写入日志
脚本编写完成
在web上面配置
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
类型选中刚才指定的脚本类型的报警
默认操作步骤持续时间 60
默认标题 : {TRIGGER.STATUS}:{TRIGGER.NAME}
消息内容:
告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}
默认标题:{TRIGGER.STATUS}:{TRIGGER.NAME}
消息内容:
恢复主机:{HOST.NAME}
恢复 IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢复 ID:{EVENT.ID}
[root@client ~]# systemctl stop sshd
触发邮件报警
[root@client ~]# systemctl start sshd
触发恢复操作邮件
备注:
使用钉钉的话,就需要申请一个机器人
微信的话,需要申请一个企业级账号