【发布时间】:2020-12-10 18:14:37
【问题描述】:
我们有一个 HP 1920S 交换机,通过 SNMP 获取 CPU 使用率的唯一方法是我在此处找到的 OID:https://community.hpe.com/t5/Web-and-Unmanaged/HP-1920s-OID-CPU-Utilization-and-memory/td-p/7001413
OID:.1.3.6.1.4.1.11.5.7.5.7.1.1.1.1.4.9.0
当通过 SNMP 查询该 OID 时返回如下值:
5 Secs ( 22.3463%) 60 Secs ( 25.677%) 300 Secs ( 21.3522%)
5 Secs ( 13.6713%) 60 Secs ( 15.3520%) 300 Secs ( 15.9640%)
所以 5 秒 CPU 利用率平均值为 22%,60 秒为 25%,5 分钟为 21%。然后我下次查询时是 13%、15% 和 15%。
有没有办法通过正则表达式离散匹配 5 秒百分比或离散匹配 60 秒百分比或 5 分钟百分比?目标是将其连接到 PRTG 中的几个 SNMP 自定义字符串传感器,例如,如果 5 分钟平均值高于 80%,它可以发出警报。
我在这里做得很好这个正则表达式:\d+(\%|\s\bpercent\b) 通过https://www.regextester.com/95112 但我也无法弄清楚如何根据我的需要修改它并且无法让它在 regex101.com 上工作
谢谢!
【问题讨论】:
-
您可以创建一个完整的模式并为所有百分比使用 3 个捕获组。例如:
^\s*\d+\s+Secs\s*\(\s*(\d+(?:\.\d+)?%)\)\s+\d+\s+Secs\s+\(\s+(\d+(?:\.\d+)?%)\)\s+\d+\s+Secs\s+\(\s+(\d+(?:\.\d+)?%)\)$regex101.com/r/8PqwXK/1