自定义监控项
先使用zabbix_get本地测试监控项是否可用
修改agent端配置文件,自定义key
vim /usr/local/etc/zabbix_agentd.conf
#做以下修改
UnsafeUserParameters=1 # 默认为0,表示不允许自定义key
# 监控*进程是否存在,[*]是server端传递参数,是服务名称
UserParameter=usernubmer[],/bin/bash /scripts/usernumber.sh
#usernubmer[]为监控项名称,/scripts/usernumber.sh为监控脚本名称,脚本的运行结果返回给zabbix_server
#再设置触发器、动作,达到理想效果!
Zabbix中内置了很多监控参数(Key_),可以获取监控对象中的系统、CPU、网络、内存、文件系统等信息。下面就详细介绍一下这些监控参数的意义。
1. 测试获取监控参数内容的方法zabbix_get
在Zabbix Server上使用zabbix_get命令可以从监控对象获取监控参数的具体内容。zabbix_get命令的具体使用方法如下:
zabbix_get -s 目标服务器IP -p 端口(10050) -k {key}
2. 监控参数的实际意义
2.1 操作系统信息(OS)
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);API中参数history需指定为0;下同;时间间隔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)
2.2 内存信息(Memory)
虚拟内存是由物理内存(即购买的内存条)和swap分区组成。物理内存占用过高之后,会将部分很久不用的数据转储到swap分区中。由此可见,在正常情况下,物理内存使用量并不高的情况下,不会占用swap分区。如果出现物理内存使用量过高,开始使用swap分区,或者swap分区使用过高的情况,就需要考虑购买并添加物理内存了。
—> 通过zabbix_get获取内存使用信息
hadoop@centos:~$ zabbix_get -s 192.168.4.133 -p 10050 -k vm.memory.size[available]
14989234176
hadoop@centos:~$ zabbix_get -s 192.168.4.133 -p 10050 -k system.swap.size[,free]
10681548800
system.swap.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[total]
#物理内存总量(Total memory)(单位:字节);API中参数history需指定为3;时间间隔3600s;
2.3 文件系统信息(Filesystems)
文件系统的inode表示可以创建的文件的最大数量。在需要创建很多文件的系统中需要密切关注这个值。如果文件系统的容量没有用完,但是inode的数量已经消耗完了,也再也不能创建文件了。
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;
2.4 安全信息(Security)
vfs.file.cksum[/etc/passwd]
#求指定文件的校验和(Checksum)(单位:字节);API中参数history需指定为3;下同。 求/etc/passwd的校验和(Checksum of /etc/passwd)
2.5 Agent信息(Agent ping)
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)
补充mysql:
mysqladmin -uroot -padmin123 ping
#检测MySQL状态