Zabbix 自定义监控项之监控 vsftpd
zabbix 提供了很多监控选择,功能丰富,我们还可以根据自定义来监控想要监控一些日常的服务等。
说明:
此处我们通过监控 ftp (自定义命令),实现如果 ftp 服务挂掉后自动重启,并邮件告警通知。
参考官档:https://www.zabbix.com/documentation/4.0/zh/manual/config/items/userparameters
具体步骤
1)在agent上先测试命令,vsftpd作为一个示例,监控vsftpd是否正常
[root@Srt_Aly_244 ~]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@Srt_Aly_244 ~]# [root@Srt_Aly_244 ~]# pgrep -l vsftpd |wc -l 1 [root@Srt_Aly_244 ~]# /etc/init.d/vsftpd stop Shutting down vsftpd: [ OK ] [root@Srt_Aly_244 ~]# [root@Srt_Aly_244 ~]# pgrep -l vsftpd |wc -l 0
2)通过上面的命令测试发现 pgrep -l vsftpd |wc -l 这条命令结果为 0 时,即表示 vsftpd 挂了。编辑配置文件(放在/etc/zabbix/zabbix_agentd.d目录里面)
# vim /etc/zabbix/zabbix_agentd.d/userparameter_vsftpd.conf UserParameter=vsftpd.alive,pgrep -l vsftpd |wc -l
3)在 zabbix 服务器端通过 zabbix_get 命令进行测试(结果为 0,表示agent端 vsftpd 服务挂了,为 1 表示 vsftpd 服务正常)
[root@SrtAly120 zabbix]# zabbix_get -s 39.107.xx.xx -k vsftpd.alive 0
4)在 web 页面创建监控项 (说明:键值处填写自定义的UserParameter=key, key的名字。必须对应)
进入:配置 -> 主机 -> 监控项 -> 创建监控项
5)在 web 页面创建触发器 (说明:监控项选择上面创建的监控项, 功能选择根据上面定义的命令来设置,因为测试结果是当值为 0 时就表示服务down了,所以这里选择最新的t值=0,(就是说最新的t值如果是0,表示服务down了) )
进入:配置 -> 主机 -> 触发器 -> 创建触发器
6)在 web 页面配置动作,配置重启动作(由于使用的 zabbix 用户运行的守护进程,所以zabbix用户执行 /etc/init.d/vsftpd restart命令是没有权限的,所以需要先进行sudo授权)
[root@Srt_Aly_244 ~]# chmod 640 /etc/sudoers [root@Srt_Aly_244 ~]# vim /etc/sudoers ## Allow 'zabbix' user to restart vsftpd without password zabbix ALL=NOPASSWD: /etc/init.d/vsftpd restart [root@Srt_Aly_244 ~]# su zabbix sh-4.1$ sudo /etc/init.d/vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ]
进入:配置 -> 动作 -> 创建动作
配置恢复操作 + 邮件告警
至此,当我们在 agent 上面停掉 vsftpd 服务,就会触发 zabbix 监控动作自动重启 vsftpd 并邮件告警相应人员。