Zabbix的Linux指标采集

今天看了下Zabbix网管软件的用户手册,发现真的挺不错的。当看到一张截图的时候发现了有些指标挺有意义,于是就看了下它的源代码,关于Zabbix可借鉴的前端展现思路以后再分享,先分享下其Linux OS的性能指标采集。

关于其对Linux OS的指标采集的源码位于从官网上下载下来的整体源码包中的src/libs/zbxsysinfo/linux/目录中。通过看其包含的源代码文件(boottime.c,cpu.c,diskio.c,diskspace.c,inodes.c,kernel.c,linux.c,memory.c,net.c,proc.c,sensors.c,swap.c,uptime.c)可以大体看出其监控的指标包含系统启动时间、CPU占用信息、磁盘IO、磁盘空间、inode数、内核参数、物理内存、网络IO、进程监控、传感器信息-主要应该是温度、swap分区、启动时长。采集方式主要还是通过系统自带的原生态api采集的,效率挺高的。但有些还是通过读取一些文件来间接获取的。以下分别列举一下

启动时间是通过读取/proc/stat中的btime来获取的,但里面的btime的内容我一直没整明白,没和系统给对应上,帮助中解释的是“The “btime” line gives the time at which the system booted, in seconds since the Unix epoch.” 网络IO(流入流出字节数、包数、错误数、丢弃数)是通过 读取/proc/net/dev来获取的。关于监听的tcp和udp端口也是读取/proc/net/tcp和/proc/net/udp来获取的,后来发现/proc/net/目录下的好东东还真不少,更详细的网络信息里面也有。磁盘IO是通过读取/proc/partitions和/proc/diskstats来获取的。传感器信息则是通过/proc/sys/dev/sensors来获取的,但在我实验的机器上不清楚是没有高端的传感器还是没安装啥驱动那个文件不存在。

后来发现linux.c这个文件是定义指标参数的,但定义的那些指标并未在其它的源代码中全部实现,可能也是我没找着,以后还得再研究研究,先把采集的指标给列出来吧,挺不错的,人家起名的方式也挺方便记忆的。

有以下:

kernel.maxfileskernel.maxprocvfs.fs.sizevfs.fs.inodevfs.dev.readvfs.dev.writenet.tcp.listennet.udp.listennet.if.innet.if.outnet.if.totalnet.if.collisionsvm.memory.sizeproc.numproc.memsystem.cpu.switchessystem.cpu.intrsystem.cpu.utilsystem.cpu.loadsystem.cpu.numsystem.swap.sizesystem.swap.insystem.swap.outsystem.uptimesystem.boottimesensor

注:Zabbix的版本基于1.8.5

http://ivy7.me/2011/07/12/zabbix-linux-metrics-collect/

你看报表时,梅里雪山的金丝猴刚好爬上树尖。

Zabbix的Linux指标采集

相关文章:

你感兴趣的文章:

标签云: