zabbix 提供了不少监控选择,功能丰富,咱们还能够根据自定义来监控想要监控一些平常的服务等。web
说明:vim
此处咱们经过监控 ftp (自定义命令),实现若是 ftp 服务挂掉后自动重启,并邮件告警通知。服务器
参考官档:https://www.zabbix.com/documentation/4.0/zh/manual/config/items/userparameters测试
具体步骤spa
1)在agent上先测试命令,vsftpd做为一个示例,监控vsftpd是否正常rest
[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目录里面)code
# 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 服务正常)blog
[root@SrtAly120 zabbix]# zabbix_get -s 39.107.xx.xx -k vsftpd.alive 0
4)在 web 页面建立监控项 (说明:键值处填写自定义的UserParameter=key, key的名字。必须对应)进程
进入:配置 -> 主机 -> 监控项 -> 建立监控项rem
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 并邮件告警相应人员。