如何在 Zabbix 中使用基于日志条目计数的计算字段创建图表?
Posted
技术标签:
【中文标题】如何在 Zabbix 中使用基于日志条目计数的计算字段创建图表?【英文标题】:How do I create a graph in Zabbix with a calucated field based on the count of log entries? 【发布时间】:2011-11-13 04:19:10 【问题描述】:我有一个项目设置来监控致命错误,我想添加另一个项目,以便计算致命错误的计数并绘制图表。
使用此键: 日志["/d2/httpd/logs/myDomain-error_log","php 致命","UTF-8",100]
它正确地获取了我想要的数据,但是它不会绘制这个,我想我必须计算条目并将格式作为整数,但这不起作用:
count(log["/d2/httpd/logs/myDomain-error_log","PHP Fatal","UTF-8",100], 60)
任何关于我的密钥应该是什么的想法,或者我将如何绘制这些数据以查看随着时间的推移有多少错误?
动作和触发器工作正常,做应该做的事,但无法从中创建图表。
【问题讨论】:
您的问题有没有得到任何解决方案。我也在努力从我的日志文件监控数据创建图表。一切正常,显示历史数据,触发触发器和操作。但是当我在图表中添加相同的项目时,不会显示任何数据。甚至有人告诉我,你可以创建一个新的 orabbix 模板来使用 zabbix 监控你的日志文件。但我没有任何线索。你能分享你的解决方案吗?非常感谢。 我现在对模板已经很清楚了......没有什么可以做的......请帮助我从日志文件监控数据创建图表 【参考方案1】:什么对我有用:
创建用于解析日志中某些字符串的项目。
密钥log["C:/Logs/log.log",ERROR]
。
输入Zabbix agent (active)
信息类型Log
。
此项应显示日志中带有指定字符串“ERROR”的所有行。
其次,创建带有转义引号的计算项:
密钥my.special.app.error.count
输入Calculated
公式count("log[\"C:/Logs/log.log\",ERROR]", 60)
这将计算 60 秒内日志中“错误”重复的次数。
现在这个项目可以绘制、触发等。
我不太确定为什么需要解析项,但没有它,这个计算项将不起作用。
【讨论】:
这不起作用。我像这样更改了日志文件: log["/var/log/nginx/access.log",HTTP] 它说:不支持。只能作为主动检查访问Accessible only as active check
有点不同的配置问题,试试here的一些建议(比如在zabbix文件中设置主机名等)【参考方案2】:
这里是通过Zabbix监控日志文件的步骤。
1) 创建一个批处理文件,例如。
//test.bat
@echo off
or /F %%x in ('findstr /r /n "ERROR" C:\test.log ^| find /C ":"') do echo %%x
2) 将“test.log”替换为您的日志文件
3) 在 Zabbix_agentd.config 文件中做如下修改
EnableRemoteCommands=1
DisableActive=0
UnsafeUserParameters=1
UserParameter=key.in.zabbix.frontend,c:/temp/test.bat
4) C:/temp/test.bat 是批处理文件的路径
5) 在 Zabbix GUI 中使用以下详细信息创建项目
Key= key.in.zabbix.frontend // This is any name but the name in GUI and abbix_agentd.config file must be same.
Type=Zabbix_Agent or Zabbix_Agent(Active)
Type of Information= Numeric(Unsigned)
其余的都一样。
6) 重启 Zabbix 代理。并检查监控->最新值。
7)为了测试,我们也可以通过命令检查服务器上的输出
Go to root->zabbix 1.8.6->src->zabbix_get
【讨论】:
我注意到您使用了 Windows 的 C 盘中的日志文件。 Linux 日志呢?相同的脚本可以吗? @echo off or /F %%x in ('findstr /r /n "ERROR" var/log/nginx/access.log ^| find /var/log/nginx ":"') do echo %%x跨度> 【参考方案3】:这将计算自上次签入文件后新日志记录中正则表达式 @NginxNotOK
的匹配,该文件的名称在宏 $NGINX_ACCESS_LOG_FILE
中定义:
log.count[$NGINX_ACCESS_LOG_FILE,@NginxNotOK,,,skip]
【讨论】:
以上是关于如何在 Zabbix 中使用基于日志条目计数的计算字段创建图表?的主要内容,如果未能解决你的问题,请参考以下文章