zabbix监控用户登录失败多次告警

zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式。
设置日志文件的权限
/var/log/secure的权限一般是600,zabbix agent对此文件没有权限。zabbix用户是agent的启动用户,所以我们要设置zabbix用户对/var/log/secure有可读权限,这样agent才能监控。
执行下面的命令,追加zabbix的可读权限:

setfacl -m u:zabbix:r-- /var/log/secure
修改logrotate配置
sed -i '/kill/a\/usr\/bin\/setfacl -m u:zabbix:r-- \/var\/log\/secure' /etc/logrotate.d/syslog

1,首先编写自定义监控脚本,按分钟统计当前出现登录失败的次数

[root@iZwz98h11awz4grlqcg6goZ etc]# pwd
/usr/local/zabbix_agent/etc
[root@iZwz98h11awz4grlqcg6goZ etc]# cat check_failed.sh
#!/bin/bash

LOG_PATH="/var/log/secure"
mon=$(date +%B)
h=$(date +%d)
ms=$(date +%H:%M)
#表示字符开头为0就替换为空
h=${h/#0/""}
k=" "
count=`grep "$h$k$ms" /var/log/secure | grep -c Failed `

echo $count

2,修改zabbix_agentd.conf配置文件。
  说明:红色部分为需要我们修改的
  第一个:默认为0,此处我们将它改为1,改为1以后,表示用户自定义的脚本中可以包含特殊字符。
  第二个:为我们自定义监控项,格式为:UserParameter=<键值>,<命令>。这里我们自定义键值为:check_failed,要执行的命令为执行check_failed.sh这个脚本。
这里写图片描述

UnsafeUserParameters=1
UserParameter=check_failed,sh /usr/local/zabbix_agent/etc/check_failed.sh
添加完成以后,重启zabbix_agentd才会生效
3、测试键值是否生效
在zabbix-server端
[root@localhost bin]# ./zabbix_get -s xxxxxxxxx -p10050 -k “check_failed”
0
这里写图片描述
4、创建监控项
进入模板添加监控项
这里写图片描述

5、创建对应的触发器
这里写图片描述
6、最后对应主机重新加载模板(记住,要监控的的每台机器都要加入监控脚本和更改配置,不然不识别)可以观察数据,自己故意多输错几次密码,然后在对应最新数据可以看到图形和报警

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_25611295/article/details/80264673
今日推荐