zabbix的监控只要是通过key进行的,可以使用默认的key也可以自定义key,也可以二者结合使用。
默认的key,使用方便但是灵活性有所限制,同时在应用中发现默认的key对内存的使用百分比监控的数据有误差,最后自定义内存的key进行监控。
自定义key,灵活性大功能扩展强。因此一般都是应用自定义key进行信息的监控,自定义的discovery key 是获取监控的项目,item key 是根据监控项目获取数据。还有一种情况是,自定义discovery key,而item key 使用系统系统默认.例如.system.cpu.util[<cpu>,<type>,<mode>]的三个参数,可以通过自定义discovery key 让某一个参数变成你想要的。比如可以自定义<cpu>的核数,这样就可以通过discovery监控每颗CPU的性能了。
内存、CPU、磁盘、网络这四项,是所有监控的基本元素,现对它们进行简要说明:
内存的监控:
cat /proc/meminfo 查看系统的内存情况
vmstat //监控虚拟内存使用情况
free -m 得到的值解释如下:
4027224表示物理内存真是占用,为7328604-385856-2915524,也就是Mem:used-Mem:buffers-Mem:cached
4031648表示物理内存真是可用,为730268+385856+2915524,也就是Mem:free+Mem:buffers+Mem:cached
也就是说当前8g内存还有3.8是可用的,而不是730268k可用
zabbix对内存的监控使用情况不是很准确,最后自定义discovery去监控,通过/proc/meminfo采集数据
Linux内存计算方法:
1、MemTotal值作为总内存
2、空闲内存计算方式:如果Cached值大于MemTotal值则空闲内存为MemFree值,否则空闲内存为MemFree值+Buffers值+Cached值
一般是使用/proc/meminfo获取内存的监控数据
CPU的监控:
zabbix对cpu的监控已经很详细了,也可以通过自定义key来增强对CPU性能的监控
mpstat -P ALL
top
或者其他命令
CPU的性能参考指标如下:
在系统负荷方面,多核CPU与多CPU效果类似,所以考虑系统负荷的时候,必须考虑这台电脑有几个CPU、每个CPU有几个核心然后,把系统负荷除以总的核心数,只要每个核心的负荷不超过1.0,就表明电脑正常运行.
"load average"一共返回三个平均值----1分钟系统负荷、5分钟系统负荷,15分钟系统负荷,----应该参考哪个值?
如果只有1分钟的系统负荷大于1.0,其他两个时间段都小于1.0,这表明只是暂时现象,问题不大
如果15分钟内,平均系统负荷大于1.0(调整CPU核心数之后),表明问题持续存在,不是暂时现象。所以,你应该主要观察"15分钟系统负荷",将它作为电脑正常运行的指标系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久
磁盘监控:
zabbix对磁盘的监控包括基本的空间,读写性能的监控,也可以通过iostat -d -x -k 1 3 来获取数据
通过这个命令获取的数据一般去最后一次更接近真实值,mpstat等也类似
常关系的参数有await %util(设备) 等
网络监控:
zabbix对网络的监控基本可以满足需求,也主要是监控端口的进出流量信息
硬件性能监控:
zabbxi也有对硬件监控的key,也可以结合如下命令来自定义key
cat /proc/cpuinfo 查看系统的CPU硬件信息
dmidecode
-t
smartctl //硬盘检测命令
总结:
zabbix是一个强大的开源监控软件,扩张性很强、图像报表也很完善这是它的特点。无论使用zabbix监控什么,其主要思想还是通过key来获取获取,至于使用什么key那就是要我们自己去通过脚本语言来获取信息了。