前言:
当前小伙伴们对“zabbix添加nginx监控”大致比较注意,大家都想要剖析一些“zabbix添加nginx监控”的相关知识。那么小编在网摘上汇集了一些关于“zabbix添加nginx监控””的相关内容,希望小伙伴们能喜欢,大家快快来学习一下吧!在Linux系统上,日志文件通常可以分为四类:
System Logs(系统日志)
Event Logs(事件日志)
Application Logs(应用程序日志)
Service Logs(服务日志)
一、为什么要监控日志?
Linux为了跟踪和监视系统(内核)各个组件及应用程序运行状态而将产生的相关事件存储到日志文件中,当系统或者应用程序出现问题时,系统管理员能根据日志定位到问题。而通过监控Linux的日志,系统管理员不仅可以及时掌控到服务器错误消息以及其它应用程序的详细信息,还可以监控到系统安全性,如非法登录等事件等。
二、哪些日志需要被监控?
1、/var/log/messages,对应Debian或Ubuntu日志文件为/var/log/syslog。该日志文件用于记录系统启动期间的产生的日志、应用程序相关的错误日志。
/var/log/messages需要监控的关键字如下:
Crit、crit、Warn、warn、Error、error、err、failed、segfault等
2、/var/log/secure,对应Debian或Ubuntu日志文件为/var/log/auth.log。该日志文件用于记录服务器中所有与用户身份验证相关的事件,如用户sudo/ssh登录信息、暴力攻击等未经授权的信息。
/var/log/secure需要监控的关键字如下:
Failed、failed、Error、err等。
3、/var/log/boot.log,该日志用于记录系统启动时的相关信息,包括应用程序开机自启动。另外,非正常关机、意外重启或引导失败等相关问题均会被记录。
/var/log/boot.log需要监控的关键字如下:
WARNING、FATAL、ERROR、Failed等。
4、/var/log/dmesg,该日志记录了硬件设备以及驱动程序相关信息,当内核在引导过程中检测到硬件错误时会在该文件中记录相关信息。
/var/log/dmesg需要监控的关键字如下:
Failed、failed、Error、err等。
另外还可以监控系统相关应用日志,包括/var/log/cron、/var/log/yum.log、/var/log/maillog或者用户自研的应用日志,又或者是tomcat或者nginx访问日志等。
三、如何使用Zabbix监控日志关键字?
我们需要用到Zabbix监控日志的两种Key,log和logtr。
在配置log和logtr类型的Item时,item的Type一定要选择Zabbix agent (active),即主动模式,因此所有Zabbix的Agent端zabbix_agentd.conf中需要配置ServerActive指向Zabbix Server。另外,zabbix用户需要有被监控的日志文件读取权限,否则item添加后会报unsupported。
① 确保Zabbix Agent配置了ServerActive,如下图所示。
② 确保要监控的日志zabbix用户有读取权限,可执行如下命令。
/usr/bin/setfacl -m u:zabbix:r-- /var/log/secure
/usr/bin/setfacl -m u:zabbix:r-- /var/log/messages
/usr/bin/setfacl -m u:zabbix:r-- /var/log/boot.log
/usr/bin/setfacl -m u:zabbix:r-- /var/log/dmesg
③ 通过修改/etc/logrotate.d/syslog,确保日志滚动后仍然可被zabbix用户读取。
# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
/var/log/dmesg
/var/log/boot.log
{
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
/usr/bin/setfacl -m u:zabbix:r-- /var/log/messages
/usr/bin/setfacl -m u:zabbix:r-- /var/log/boot.log
/usr/bin/setfacl -m u:zabbix:r-- /var/log/dmesg
endscript
}
④ 使用log[]或者logrt[]添加items。
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]
详细可参考官档中文说明()
创建item前,我们先创建一个模板如"Template System Logs",专门用于系统日志监控。
然后,再创建一个名为"Template System Logs"的Applications
最后再创建items,创建items注意事项如下图所示。
创建触发器
添加到主机
最后模拟登录失败(输错密码即可),触发告警,如下图所示。
使用Grafana展示如下图所示。
总结:Zabbix Agent每次都从上次停止的点开始继续读取日志文件。当Agent刚刚启动或已收到以前被禁用或不支持的监控项的情况下,已经分析的字节数(大小计数器)和最后修改时间(时间计数器)存储在Zabbix数据库中并发送到Agent,以确保Agent从此位置开始读取日志文件。但是,如果Agent从服务器接受非零大小的计数器, 而logrt[] 和 logrt.count[] 监控项没有找到,也没找到匹配的文件,若文件稍后出现,大小计数器将重置为0,将从头开始分析。另外,当日志文件大小小于计数器中记录的大小时(日志发生了滚动),计数器会变为0,Agent将从头开始分析文件。