文章目录
日志监控原理
zabbix 监控日志,主要是用于监控日志中的关键字,遇到关键字后,zabbix agent 将日志发送给server。日志监控必需是agent active的监控项目
本文档示例版本与官方使用文档
配置过程
一,被监控的主机上配置zabbix_agentd.conf
[root@GuangGu_Zabbix_proxy ~]# egrep -v "#|^$" /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=X.X.X.X
ServerActive=X.X.X.X
Hostname=Zabbix_lOG
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
ServerActive=X.X.X.X
Hostname=Zabbix_lOG
以上两个参数配置对日志很重要,agent active 在发送数据给server端时,会将配置文件中的hostname的值做为一个值携带给服务端,zabbix_server收到发送过来的数据后会主动匹配这个值,是否与自己配置的主机的hostname一致,一致即接收数据,放置在数据库中。
二,修改日志文件的权限
通常情况下,/var/log/目录下的系统日志文件只有root用户有相应的读写权限,而zabbix对这些文件需要有读取的权限,否则无法监控,所以在不更改属主属组的情况下,使用==“facl”== 添加文件权限比较合适,以下为示例:
修改前日志文件的权限:
[hostname]# ls -l /var/log/messages
-rw------- 1 root root 138063 Sep 11 08:10 /var/log/messages
只有root用户有读写权限,其它的用户均没有权限
修改日志文件的权限
setfacl -m u:zabbix:r-- /var/log/messages
查看修改后的文件权限
[root@GuangGu_Zabbix_proxy ~]# ls -l /var/log/messages
-rw-r-----+ 1 root root 193670 Sep 11 09:10 /var/log/messages
[root@GuangGu_Zabbix_proxy ~]# getfacl /var/log/messages
getfacl: Removing leading '/' from absolute path names
# file: var/log/messages
# owner: root
# group: root
user::rw-
user:zabbix:r--
group::---
mask::r--
other::---
user:zabbix:r-- 可以看到zabbix用户有r的权限了
但是这条命令只设置了当前的/var/log/messages的文件的权限,这个日志文件是会随日期滚动的所以还需要设置一下日志滚动后的zabbix用户的权限,此时还需要修改另外一个文件的内容:
[root@hostname~]# vim /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/messages
endscript
}
logrotate 不是守护进程的服务,所以不需要重启
三,配置zabbix web item页面(监控root用户登陆)
key : log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]
/var/log/messages 中 root 用户登陆的日志记录如下:
Sep 11 09:30:01 LOGMONITOR systemd: Started Session 6787 of user root.
几个注意点:
- 类型必需是“zabbix agent active”的
- 信息类型必需是“日志”型的
log[/var/log/messages, Started Session .* of user root.$,skip,]
root用户登陆测试
Sep 11 09:44:47 LOGMONITOR systemd-logind: New session 6789 of user root.
Sep 11 09:44:47 LOGMONITOR systemd: Started Session 6789 of user root.
Sep 11 09:44:47 LOGMONITOR systemd: Starting Session 6789 of user root.
以上三条是登陆产生的日志
查看zabbix监控的消息记录
点击“历史记录查看”
zabbix已经收到相关日志
配置告警(trigger)
配置告警思路:
- 只要zabbix收到相应条目的日志一次,就触发一次告警
- 收到告警后,如果60s内没有再次触发告警就消失
最终配置
再次测试root登陆
此告警60S后消失