UNIX系统监控与SNMP协议详解
1. NRPE与UNIX系统监控基础
NRPE是在UNIX系统上执行Nagios插件的远程执行工具。与Windows系统不同,Windows上的一些多功能插件(如NSClient)实现了自己的守护进程和协议,而UNIX系统上的插件通常是单一用途的,依赖于NRPE或check_ssh等远程执行程序。大多数人从Nagios官方插件压缩包开始使用,不同主机根据已安装的库从压缩包中构建不同的插件,所以为Nagios守护进程和被监控主机使用同一组插件并不会造成浪费。
1.1 CPU监控
1.1.1 CPU利用率百分比指标
乍一看,测量CPU利用率似乎是一项相对简单的任务,但实际上是一个复杂的问题,没有简单的解决方案。通常有两个与CPU相关的指标用于总结CPU利用率,第一个是经典的基于百分比的指标。然而,从嵌入式系统或计算机工程师的角度来看,现实世界中的处理器要么处于使用状态,要么处于空闲状态,不存在42%这样的利用率。“空闲”实际上是处理器的一种状态,即使处于空闲状态,处理器仍在进行低优先级、可抢占的工作。因此,利用率百分比实际上是处理器状态与时间的平均值。不同的性能应用程序在同一操作系统上可能会以不同的方式测量这个百分比。例如,一种常见的方法是测量CPU在最低优先级状态下花费的时间百分比,然后从100中减去该值以获得实际利用率百分比。
但从监控的角度来看,经典的CPU百分比指标存在各种问题,它过于不稳定和模糊,不一定能反映系统的负载,因此不是一个很好的问题指示器,在容量规划中其价值也值得怀疑。例如,对于带宽或磁盘I/O密集型应用程序,100%的CPU利用率可能是好事。建议在系统监控中尽量避免使用这个指标。