描述:基於生產中需要及時掌握重要應用的日志情況,可以使用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.檢查最近的數據