文章目录

  • 日志监控原理
  • 本文档示例版本与官方使用文档
  • 配置过程
  • 一,被监控的主机上配置zabbix_agentd.conf
  • 二,修改日志文件的权限
  • 修改前日志文件的权限:
  • 修改日志文件的权限
  • 查看修改后的文件权限
  • 三,配置zabbix web item页面(监控root用户登陆)
  • root用户登陆测试
  • 配置告警(trigger)
  • 最终配置
  • 再次测试root登陆


日志监控原理

zabbix 监控日志,主要是用于监控日志中的关键字,遇到关键字后,zabbix agent 将日志发送给server。日志监控必需是agent active的监控项目

本文档示例版本与官方使用文档

官方文档链接

zabbix监控idrac zabbix监控log_文件权限

配置过程

一,被监控的主机上配置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监控idrac zabbix监控log_日志文件_02


几个注意点:

  1. 类型必需是“zabbix agent active”的
  2. 信息类型必需是“日志”型的

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监控idrac zabbix监控log_日志文件_03


点击“历史记录查看”

zabbix监控idrac zabbix监控log_文件权限_04


zabbix已经收到相关日志

配置告警(trigger)

配置告警思路:

  1. 只要zabbix收到相应条目的日志一次,就触发一次告警
  2. 收到告警后,如果60s内没有再次触发告警就消失

最终配置

zabbix监控idrac zabbix监控log_日志文件_05

再次测试root登陆

zabbix监控idrac zabbix监控log_zabbix监控idrac_06

zabbix监控idrac zabbix监控log_root用户_07

此告警60S后消失