shell - zabbix_get 和 AWK/substr - ZBX_NOTSUPPORTED:参数太多
问题描述
我正在尝试使用 Zabbix 在 Apache 日志中收集有关 500 个错误的信息。我想,我将使用 zabbix_get 在代理的操作系统上执行命令,但是在尝试测试时,我得到了ZBX_NOTSUPPORTED: Too many parameters.
错误。起初,我试图转义所有"
和其他特殊字符,但没有任何成功。当尝试调试命令(在本地运行良好,不使用 zabbix_get)时,我发现问题可能在 AWK 和 substr 附近。如果有人可以看一下,我将不胜感激...
tail -n 1000 /content/logs/httpd/*_access.log | awk -v d1="$(date --date='-5 min' '+%_d/%b/%Y:%H:%M:%S')" -v d2="$(date '+%_d/%b/%Y:%H:%M:%S')" 'substr($5,2) > d1 && substr($5,2) < d2 || substr($5,2) ~ d2' | cut -d" " -f10 | grep "500" | wc -l
样本输入:
IP IP - - [21/Jan/2019:03:14:06 -0500] "GET /path HTTP/1.1" 200 2068 referrer "UserAgent" 7634.
IP IP - - [21/Jan/2019:03:14:06 -0500] "GET /path HTTP/1.1" 500 1 "-" "UserAgent" 1892
输出:
1
我想每 5 分钟执行一次上面列出的命令,以计算在前 5 分钟内发生的 500 错误的条目数。
我知道我总是可以创建一个脚本,但如果我可以避免这样做......
谢谢!
解决方案
您zabbix_get
可以创建一个system.run[blablabla]
.
但是,您应该使用本机日志文件监控功能:使用logrt.count
orlog.count
函数提取匹配行数。
推荐阅读
- c# - Azure Active Directory OpenID 在 Web 浏览器中引发 nonce 异常,但不在 Web 浏览器控件中
- java - 忽略 Junit5 中的测试
- firebase - 检查 kotlin 中的 Firebase Child 值
- android - ProgressBar 不与协调器布局一起出现
- ios - 如何使用 JSONDecoder 将 Int 解码为字符串?
- python - Pandas groupby - 计算相对点的距离
- swift - 设置 Timer 时,.RunLoop.Modes.default 中的“表达式类型不明确,没有更多上下文”
- javascript - 如何将动态创建的按钮单击事件绑定到javascript中动态创建的输入?
- python - 如何测试列表是否按升序排序
- oracle - 计算列逗号分隔值 oracle