zabbix监控日志的实现

描述:基于生产中需要及时掌握重要应用的日志情况,可以使用zabbix进行监控通知

zabbix监控的配置实现

1. 配置zabbix_agentd.conf(由于之前的配置这里是主动和被动混合使用)

[root@zabbix ~]# egrep -v "#|^$" /etc/zabbix/zabbix_agentd.conf 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=11.11.22.235                    ##被动模式,客户端允许这个ip来采集
ServerActive=127.0.0.1,11.11.22.235    ##主动模式的ip,客户端主动发数据到这个地址
Hostname=zabbix                        ##要与hosts中的hostname保持一致,否则无法收集
Include=/etc/zabbix/zabbix_agentd.d/*.conf
注:agent是以"Hostname"为参数向server发送"active checks"请求,server收到请求,到数据库里找到相同的名称的主机后,向agent返回active类型的监控项列表。agent根据这个item list进行监控,收集数据,并主动把数据推送给server。

2.设置日志文件的权限

[root@zabbix ~]# setfacl -m u:zabbix:r-- /var/log/secure (建议使用)

或者
[root@zabbix ~]# chown zabbix.root /var/log/secure

注: /var/log/secure的权限一般是600,zabbix agent对此文件没有权限。zabbix用户是agent的启动用户,要设置zabbix用户对/var/log/secure有可读权限,这样agent才能监控。

3.修改logrotate配置并重启agent

[root@zabbix ~]# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
	/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
	/usr/bin/setfacl -m u:zabbix:r-- /var/log/secure  ###
    endscript
}

重启
[root@zabbix ~]# systemctl restart zabbix-agent

4.在zabbix的web管理中配置item(注意: Type - 选择Zabbix agent (active))

 

 5. 配置trigger

expression:
{zabbix:log[/var/log/secure,"Failed password"].str(Failed)}=1 and {zabbix:log[/var/log/secure,"Failed password"].nodata(60)}=0

   表达式的含义为:如果用户登录失败了,item返回数据中会包含"Failed",则触发器被触发,60秒内没有新数据的话,触发器恢复。这样就保证了触发器不会一直在触发状态。

    下面把表达式拆解分析:

    A:{zabbix:log[/var/log/secure,"Failed password"].str(Failed)}=1,表示如果字符串中包含"Failed"则表达式为真。

    B:{zabbix:log[/var/log/secure,"Failed password"].nodata(60)}=0,表示60秒内有数据产生则表达式为真,即60秒内如果没有新数据了,则表达式为假。

    逻辑为A & B,表示同时符合A、B两个条件(同时为真),触发器才会触发。

6.模拟SSH连接失败

#SSH客户端
[root@web ~]# ssh 11.11.22.235
root@11.11.22.235's password: 
Permission denied, please try again.
root@11.11.22.235's password: 
sadfas
Permission denied, please try again.
root@11.11.22.235's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

##zabbix server端(日志监控端)
[root@zabbix ~]# tail -f /var/log/secure
Mar 14 17:24:30 zabbix sshd[888]: Failed password for root from 11.11.22.235 port 56952 ssh2
Mar 14 17:24:31 zabbix sshd[888]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Mar 14 17:24:33 zabbix sshd[888]: Failed password for root from 11.11.22.235 port 56952 ssh2
Mar 14 17:24:33 zabbix sshd[888]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Mar 14 17:24:35 zabbix sshd[888]: Failed password for root from 11.11.22.235 port 56952 ssh2
Mar 14 17:24:35 zabbix sshd[888]: Connection closed by 11.11.22.235 port 56952 [preauth]
Mar 14 17:24:35 zabbix sshd[888]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=web  user=root

7.检查最近的数据

 

 

posted @ 2018-03-14 17:56  Reid21  阅读(3593)  评论(0编辑  收藏  举报