Zabbix服务器操作
1、安装sendmail或postfix (邮件传送代理MTA),博主所使用的平台是CentOS7,同时使用postfix软件(关于安装问题网上搜搜)。
(注:如果直接使用外部邮箱发送邮件可以不需要配置sendmail或postfix,直接把这两个软件关掉,直接跳到第3步:配置mail即可实现)
[root@fishyoung ~]# yum -y install postfix
#在线yum安装postfix
[root@fishyoung ~]#systemctl start postfix
#启动postfix服务
[root@fishyoung ~]#systemctl status postfix
#查看postfix启动情况
[root@fishyoung ~]# systemctl enable postfix
#设置postfix开机启动
2、安装邮件发送工具mailx 。(邮件用户代理MUA)
[root@fishyoung ~]# yum -y install mailx
#yum安装mailx
3、配置mail(使用外部邮箱发送邮件,根据个人情况选择自己搭建的邮箱系统还是利用外部邮箱,建议用自己搭建的,反正就是发个邮件)
[root@fishyoung ~]# vim /etc/mail.rc
set from=xxxxxxxx@163.com
#163注册的个人邮箱,用于zabbi服务端转发邮件到指定邮箱
set smtp=smtp.163.com
#填写163发送邮箱服务器地址smtp
set smtp-auth-user= xxxxxxxx
#163个人邮箱用户
set smtp-auth-password=yyyyyyyy
#163个人邮箱密码
set smtp-auth=login
#登录
4、测试邮件能否发送(建议用自己搭建的邮件系统)
#发送一份邮件到wwwwwwww@qq.com 这个QQ邮箱(个人的QQ邮箱)
[root@mail ~]# echo "test" | mail -s 'test linux zabbix monitor' wwwwwwww@qq.com
5、编写邮件发送脚本sendmail.sh
[root@fishyoung ~]#cd /usr/lib/zabbix/alertscripts/
#进入zabbix默认存放脚本路径,由于我是采取的yum方式安装的zabbix,所以脚本路径在这个地方。根据实际情况切换。
[root@fishyoung alertscripts]# vi sendmail.sh
#编写发送邮件脚本
[root@fishyoung alertscripts]# cat sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
[root@fishyoung alertscripts]# chown zabbix.zabbix sendmail.sh
#修改sendmail.sh脚本所属用户和用户组
[root@fishyoung alertscripts]# chmod 755 sendmail.sh
#赋予sendmail脚本执行权限
[root@fishyoung ~]# ls -l
#查看sendmail.sh脚本信息
-rwxr-xr-x. 1 zabbix zabbix 155 Feb 17 13:05
[root@fishyoung alertscripts]# vi /etc/zabbix/zabbix_server.conf
#配置zabbix_server.conf配置文件
AlertScriptsPath=/usr/lib/zabbix/alertscripts/
#修改这个为sendmail.sh脚本存放路径
[root@fishyoung alertscripts]# su - zabbix
#切换zabbix用户
sh-4.1$ ./usr/lib/zabbix/alertscripts/sendmail.sh wwwwwwww@qq.com "test linux" "test"
#zabbix用户执行sendmail.sh脚本看是否有权限
Zabbix后台web介面配置
1、管理 ---- 报警媒介类型 ----- 创建媒介类型
http://img.fishyoung.com/images/20190219/ypimBYyF0n3E.png
2、名称可以随便自己定义 ----- 类型选择脚本 ----- 脚本名称输入上一步编写的发送邮件的脚本名称 ----
再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3、管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以)
注:如果时区不对,可通过cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime来更正时区。
4、报警媒介 ---- 添加
5、类型输入刚刚创建的报警媒介类型sendmail脚本 --- 输入个人邮箱用于接收报警邮件 --- 启动打勾 ---- 添加
6、选择更新
7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)
8、配置 ---- 动作 ---- 创建动作
9、动作 ---- 名称自定义 --- 设置一条新的触发条件 ---- 启用 ---- 添加。(触发条件需要根据实际情况设置)
触发器名称 似 is unreachable for 5 minutes
#根据主机触发器Template App Zabbix Agent: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes设置,主要监测zabbix_agentd客户端连接情况。
10、定义操作
默认接收人/标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机IP地址:{HOST.CONN}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
11、类似方式定义恢复操作
默认接收人/恢复标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机IP地址:{HOST.CONN}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
12、测试
[root@fishyoung alertscripts]# systemctl stop zabbix_agent
#暂停zabbix_agent客户端服务