本次记录下如何监控主机并触发邮件告警。

一、前提:

监控服务端、客户端都已经部署完成,关于如何安装zabbix6请见如下链接:

Ubuntu 22 部署Zabbix 6.4

被监控主机已经添加,Zabiix监控运行正常。这里服务端zabbix6.0机器部署在192.168.0.102机器上,客户端部署在192.168.0.103机器上

二、整体思路:

1、配置发送人

系统路径:告警--媒介

需要注意,要使用授权密码作为用户密码,否则发送邮件是会失败

配置点击测试,发一封邮件给自己

2、配置收件人

系统路径:用户---用户

配置收件人的邮箱,以及告警级别。

第三个tab,权限最好配置为管理角色,比如Admin role

3、配置主机权限

系统路径:用户---用户群组

选择该用户所在的群组,比如Zabbix administrators ,配置该群组的主机权限

4、配置监控项

系统路径:数据采集----主机---监控项

新增一个监控项,比如 system.cpu.util[,idle]

5、配置触发器

系统路径:数据采集----主机---触发器

新增一个触发器,比如 CPU使用率在1分钟内平均超过5%

6、配置告警

系统路径:告警----动作----触发器动作

新增告警,配置触发条件,以及发送消息给用户

三、邮件接收

四、远程执行命令

remote command,在agent所在的主机上运行用户指定的命令或脚本尝试恢复故障,例如:重启服务,使用自定义脚本
类型:

IPMI命令
custom script 自定义脚本
ssh 利用ssh连接过去执行命令
telnet 利用telnet方式执行命令
global script 全局脚本

当设置自定义脚本的时候,需要再agent进行配置允许执行命令,以及设置sudo权限
具体如下,先设置sudo权限,输入visudo,开始编辑文件,添加下面两行

# Defaults requiretty  #这一行必须要注释掉,这一行表示需要终端执行命令,但是zabbix执行命令的时候没有tty终端,有可能会导致失败。所以需要注释掉,或者改写为Defaults !requiretty 也可以
zabbix ALL=NOPASSWD: ALL    

接下来修改agent配置文件/etc/zabbix/zabbix_agentd.conf 允许执行远程命令

EnableRemoteCommands=1

修改完了需要重启一下agent服务

systemctl  restart zabbix-agent

如果发现有时候zabbix显示执行成功命令,但是命令没有真正执行,可能是你的自定义脚本命令没有使用sudo 而是直接输入了命令这样由于权限问题也会导致命令看起来执行成功了实际上没有执行。

更多推荐