![需要针对特定事件的严重警报,但 24 小时内未生成 ID](https://linux22.com/image/708122/%E9%9C%80%E8%A6%81%E9%92%88%E5%AF%B9%E7%89%B9%E5%AE%9A%E2%80%8B%E2%80%8B%E4%BA%8B%E4%BB%B6%E7%9A%84%E4%B8%A5%E9%87%8D%E8%AD%A6%E6%8A%A5%EF%BC%8C%E4%BD%86%2024%20%E5%B0%8F%E6%97%B6%E5%86%85%E6%9C%AA%E7%94%9F%E6%88%90%20ID.png)
我正在使用 NSClient++ 0.5.0.62 2016-09-14 的 CheckEventLog
如何使用语法,如果 24 小时内未生成特定事件 ID,则需要严重警报,如果生成了事件 ID,则需要状态 OK。
我的语法:
./check_nrpe -H 192.168.63.1 -c check_eventlog -a "scan-range=-24h" "crit=count=<0" "filter=id=1" "ok=count>0" "warn=none"
输出 :
OK: No entries found
对于上述语法,事件 ID 1 在 24 小时内未生成,我获得了 OK 状态。但我需要关键
请帮助我理解上述语法。
答案1
简单的方法是设置空状态并使用计数,就像您所做的那样,当未找到任何内容时,这会覆盖默认值“ok”。
什么都没找到:
check_eventlog scan-range=24h "filter=id=1008 and written < 24h" warn=none "crit=count=0" empty-state=critical
L cli CRITICAL: CRITICAL: No entries found
L cli Performance data: 'count'=0;0;0
发现了一些东西:
check_eventlog scan-range=24h "filter=id=1008 and written < 24h" warn=none "crit=count=0" empty-state=critical
L cli OK: OK: Event log seems fine
L cli Performance data: 'count'=12;0;0
您可能想使用以下方法稍微清理一下语法:
- 显示所有
- 空语法
就像这样:
发现了一些东西:
check_eventlog scan-range=24h "filter=id=1008 and written < 24h" warn=none "crit=count=0" empty-state=critical show-all "empty-syntax=Nooooohhhh"
L cli CRITICAL: Nooooohhhh
L cli Performance data: 'count'=0;0;0
什么都没找到:
check_eventlog scan-range=24h "filter=id=1008 and written < 24h" warn=none "crit=count=0" empty-state=critical show-all
L cli OK: OK: 12 message(s) .....)
L cli Performance data: 'count'=12;0;0
另请注意该事件 ID 是并非全球唯一,相反,它们对于每个源都是唯一的,因此如果另一个应用程序(源)碰巧使用相同的事件 ID,则仅使用事件 ID 很可能无法按预期工作......
PS 这是在 0.5.1 而不是 0.5.0 上测试的,但理论上也应该在 0.5.0 上运行......