Zabbix基础监控项keys介绍

in 互联网技术 with 0 comment  访问: 5,493 次

Zabbix中内置了很多监控参数(Key), 可以获取监控对象中的系统、CPU、网络、内存、文件系统等信息。下面就详细介绍一下这些监控参数的意义。

一、测试取监控参数内容的方法

Zabbix Server上使用zabbix_get命令可以从监控对象获取监控参数的具体内容。zabbix_get命令的具体使用方法如下:

zabbix_get -s Target_Server_IP  -p Port(10050) -k {key}

zabbix_get命令实际的执行实例如下:

[root@zabbix ~]# zabbix_get -s 10.0.1.11 -p 10050 -k kernel.maxfiles
1000000
[root@zabbix ~]# zabbix_get -s 10.0.1.11 -p 10050 -k kernel.maxproc
32768

二、监控参数的实际意义

1、操作系统信息(OS)

Keys 说明
system.boottime 系统启动的时间点(Host boot time)(单位:时间戳); API中参数history需指定为3
system.uptime 系统已运行时长(System uptime)(单位:秒); API中参数history需指定为3
system.localtime 系统时间(Host local time)(单位:时间戳); API中参数history需指定为3
system.hostname 主机名(Host name); API中参数history需指定为1
kernel.maxfiles 内核参数,可打开的最大文件数(Maximum number of opened files); API中参数history需指定为3
kernel.maxproc 内核参数,支持的最大进程数(Maximum number of processes); API中参数history需指定为3
system.users.num 目前登录到系统中的用户数量(Number of logged in users); API中参数history需指定为3
system.uname 获取系统信息(System information); API中参数history需指定为1

常用监控参数:

kernel.maxproc system.users.num

2、网卡信息(Network interfaces)

Keys 说明
net.if.out[eth0] 网卡流速,流出方向;时间间隔60s; 获取指定网卡(eth0)的流出流量的流速值(Outgoing network traffic on eth0),eth0为网卡名称,根据实际情况填写;时间间隔60s;
net.if.in[eth0] 网卡流速,流入方向(单位:字节); API中参数history需指定为3;下同;时间间隔60s; 获取指定网卡(eht0)的流入流量的流速值(Incoming network traffic on eht0),eht0为网卡名称,根据实际情况填写;时间间隔60s

网卡按照最高网速可以分为百兆网卡(100Mbps)和千兆网卡(1000Mbps或1Gbps)。当传输大量的数据时,可能会出现流速过大的情况。对于Web APP而言,如果出现高并发,同时请求的页面比较大时,就会出现流量过大的情况,也叫作带宽被占满了。

如果试验将网速触发到顶速,可以在内网环境中,在两台主机之间传输一个大文件,如果是百兆网卡可以传输几个G的数据,如果是千兆网卡则需要传输几十个G的数据,效果才会比较明显。

两个主机之间传输数据时,网速最大不会超过网速比较小的网卡的最高网速。比如百兆网卡之间传输数据,最高配可能到达90Mbps以上;千兆网卡之间传输数据,最高配速可能到达900Mbps以上;百兆网卡和千兆网卡之间传输数据,最高配速只能到达90Mbps以上。

传输大量的数据,理论上会出现高流速的情况,如果没有出现,则说明是数据传输的发送方或者接收方在处理数据上消耗了一些时间,这些时间摊平了数据的流速。此时如果需要提升传输速度,则需要减少发送发或接收方的数据处理操作。

3、进程信息(Processes)

Keys 说明
proc.num[] 目前系统中的进程总数(Number of processes); 默认时间间隔60s
proc.num[,,run] 目前正在运行(处于运行态)的进程总数(Number of running processes)

4、处理器信息(CPU)

Keys 说明
system.cpu.switches CPU的进程上下文切换(Context switches per seconds), 单位sps, 表示每秒采样次数; API中参数history需指定为3;时间间隔60s
system.cpu.intr CPU中断数量(Interrupts per second); API中参数history需指定为3
system.cpu.load[percpu,avg1] CPU每分钟的负载值,按照核数做平均值(Processor load (1 min average per core)); API中参数history需指定为0;下同
system.cpu.load[percpu,avg5] CPU每5分钟的负载值,按照核数做平均值(Processor load (5 min average per core))
system.cpu.load[percpu,avg15] CPU每15分钟的负载值,按照核数做平均值(Processor load (15 min average per core))
system.cpu.util[,softirq] CPU的软中断时间,百分比形式(CPU softirq time); API中参数history需指定为0; 下同
system.cpu.util[,steal] CPU的窃取的时间, 百分比形式(CPU steal time)
system.cpu.util[,idle] CPU的空闲时间,百分比形式(CPU idle time); 时间间隔60s
system.cpu.util[,user] CPU的用户态运行时间, 百分比形式(CPU user time); 时间间隔60s
system.cpu.util[,system] CPU的系统态运行时间,百分比形式(CPU system time);时间间隔60s
system.cpu.util[,iowait] CPU的io等待时间,百分比形式(CPU iowait time)
system.cpu.util[,interrupt] CPU的中断时间,百分比形式(CPU interrupt time)
system.cpu.util[,nice] CPU的nice时间,百分比形式(CPU nice time)

常用监控参数:

system.cpu.switches system.cpu.load[percpu,avg1] system.cpu.load[percpu,avg5] system.cpu.load[percpu,avg15] system.cpu.util[,iowait]

合理的控制用户态、系统态、io等待时间可以保证进程高效率的运行。

系统态运行时间较高说明进程进行系统调用的次数比较多。一般的程序,如果系统态运行时间占用过高,就需要优化程序,减少系统调用。

io等待时间的比例过高,则表明硬盘的IO性能差,如果是读写文件比较频繁,读写效率要求比较高,可以考虑更换硬盘,或者使用多磁盘做Raid的方案。

CPU的负载值可以使用uptime命令查看,但是Zabbix所获得到CPU负载值与uptime所显示的结果并不同,它的结果是uptime所显示的负载值除以主机的CPU核数的,也就是一个平均数。

5、内存信息(Memory)

Keys 说明
vm.memory.size[total] 物理内存总量(Total memory)(单位:字节);API中参数history需指定为3;时间间隔3600s
vm.memory.size[available] 物理内存目前可用的容量(Available memory)(单位:字节); API中参数history需指定为3;时间间隔60s
system.swap.size[,total] swap分区的总容量(Total swap space);API中参数history需指定为3;时间间隔3600s
system.swap.size[,free] swap分区尚可使用的容量(Free swap space);API中参数history需指定为3;时间间隔60s
system.swap.size[,pfree] swap分区尚可使用的容量,百分比形式(Free swap space in %);API中参数history需指定为0;时间间隔60s

常用监控参数:

vm.memory.size[available] system.swap.size[,pfree]

虚拟内存是由物理内存(即购买的内存条)和swap分区组成。物理内存占用过高之后,会将部分很久不用的数据转储到swap分区中。

由此可见,在正常情况下,物理内存使用量并不高的情况下,不会占用swap分区。如果出现物理内存使用量过高,开始使用swap分区,或者swap分区使用过高的情况,就需要考虑购买并添加物理内存了。

内存的信息可以使用free命令查看,其中<物理内存目前可用的容量>的值约等于free和cached的数值之和。

[root@zabbix ~]# free -b
             total       used       free     shared    buffers     cached
Mem:    1242498252 1210263552  322347008    6000640  228753408 7073005568
-/+ buffers/cache: 4800876544 7624105984 
Swap:    536862720          0  536862720 
[root@zabbix ~]# zabbix_get -s 10.0.1.11 -p 10050 -k vm.memory.size[available]
15362560000
[root@zabbix ~]# zabbix_get -s 10.0.1.11 -p 10050 -k system.swap.size[,free]
536862720

6、文件系统信息(Filesystems)

Keys 说明
vfs.fs.inode[/,pfree] 文件系统的指定分区中尚未使用的inode数量,百分比形式(Free inodes on / (percentage));API中参数history需指定为0;时间间隔60s
vfs.fs.size[/,free] 文件系统中指定分区(目录)中未使用的容量数值(Free disk space on /);API中参数history需指定为3;时间间隔60s;
vfs.fs.size[/,pfree] 文件系统中指定分区(目录)中未使用的容量,百分比形式(Free disk space on / (percentage));API中参数history需指定为0;时间间隔60s
vfs.fs.size[/,used] 文件系统中指定分区(目录)中已使用的容量(Used disk space on /)(单位:字节);API中参数history需指定为3;下同;时间间隔60s
vfs.fs.size[/,total] 文件系统中指定分区(目录)的总容量(Total disk space on /);时间间隔3600s

常用监控参数:

vfs.fs.inode[/,pfree] vfs.fs.size[/,pfree] vfs.fs.size[/,used]

文件系统的inode表示可以创建的文件的最大数量。在需要创建很多文件的系统中需要密切关注这个值。如果文件系统的容量没有用完,但是inode的数量已经消耗完了,也再也不能创建文件了。

7、Web应用信息(WebApp)

Web应用信息的参数,默认没有配置在任何模板中,需要设置了web scenario之后才能够看到。

Keys 说明
web.test.in[baidu.test,,bps] 指定方案中所有步骤的页面平均下载速度(Download speed for scenario "baidu.test".)
web.test.in[baidu.test,baidu,bps] 指定方案中指定步骤的页面下载速度(Download speed for step "baidu" of scenario "baidu.test".)
web.test.fail[baidu.test] 指定方案是否测试失败(Failed step of scenario "baidu.test".)
web.test.error[baidu.test] 指定方案中各个步骤中最后出现的错误详情(Last error message of scenario "baidu.test".)
web.test.rspcode[baidu.test,baidu] 指定方案中指定步骤的页面响应状态码(Response code for step "baidu" of scenario "baidu.test".)
web.test.time[baidu.test,baidu,resp] 指定方案中指定步骤的页面响应时间(Response time for step "baidu" of scenario "baidu.test".)

常用监控参数:

web.test.fail web.test.rspcode web.test.time

检测Web APP的性能,页面测试是否出现错误,测试错误详情,页面的响应时间,通过页面大小和响应时间计算页面的下载速度等。

8、安全信息(Security)

Keys 说明
vfs.file.cksum[/etc/passwd] 求/etc/passwd的校验和(Checksum of /etc/passwd)

tips: 校验文件是否被更改

9、Agent信息(Agent ping)

Keys 说明
agent.ping 检测Agent在线状态(Agent ping);API中参数history需指定为3
agent.hostname Zabbix Agent的hostname(Host name of zabbix_agentd running) API中参数history需指定为1;下同
agent.version Agent的软件版本号(Version of zabbix_agent(d) running)

常用监控参数:

agent.ping

以上介绍了Zabbix中与系统相关的监控参数,基本覆盖了获取系统信息、影响系统稳定的各种参数,各个参数之间的相互影响需要在使用过程中去实践理解。

更多请参考:https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent

WeZan