我正在使用 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 上运行......