10.6. zabbix监控项(items)

10.6.1. 一般监控项

监控项一般可以配置在模版、主机。或者发现时使用的监控内容。

10.6.1.1. 网速监控

../../../_images/zabbix-network001.png ../../../_images/zabbix-network002.png ../../../_images/zabbix-network003.png ../../../_images/zabbix-network004.png ../../../_images/zabbix-network005.png ../../../_images/zabbix-network006.png ../../../_images/zabbix-network007.png ../../../_images/zabbix-network008.png ../../../_images/zabbix-network009.png

10.6.1.2. 总流量监控

如果统计每天的网络流量方法:
  1. 监控网卡总流量;

  2. 每天凌晨定时清空网卡流量统计;

注意

清空网卡流量统计信息的方法:
  • yum install ethtool -y

  • ethtool -i eth0查网卡类型

  • 清空网卡流量统计信息:

    ifconfig eth0 down

    modprobe -r e1000

    modprobe e1000

    ifconfig eth0 up

zabbix客户端和服务器默认可以统计网卡接口的接收和发送数据和的信息。如果要分别统计接收和发送的数据,需要自定义key值来监控。

下面是监控网卡总流量信息配置:

下面不再详细介绍item创建过程。而是重点介绍流量接口监控创建过程。

../../../_images/zabbix-network101.png ../../../_images/zabbix-network102.png ../../../_images/zabbix-network103.png ../../../_images/zabbix-network104.png ../../../_images/zabbix-network105.png ../../../_images/zabbix-network106.png ../../../_images/zabbix-network107.png

10.6.1.3. 自定义流量接收/发送数据监控

在zabbix客户端配置文件中添加:

1UserParameter=network.statistic.in[*],/sbin/ifconfig $1 | awk -F '[ :]' '{if(NR==8) print $$13}'
2UserParameter=network.statistic.out[*],/sbin/ifconfig $1 | awk -F '[ :]' '{if(NR==8) print $$19}'

zabbix服务器创建item并相应的key是 network.statistic.out[eth1]network.statistic.in[eth1]

然后创建监控的图形展示即可。

../../../_images/zabbix-network201.png ../../../_images/zabbix-network202.png ../../../_images/zabbix-network203.png ../../../_images/zabbix-network204.png ../../../_images/zabbix-network205.png ../../../_images/zabbix-network206.png ../../../_images/zabbix-network207.png ../../../_images/zabbix-network208.png

10.6.2. 自定义监控内容

zabbix-agent客户端配置文件

1/etc/zabbix/zabbix_agentd.conf
1vi /etc/zabbix/zabbix_agentd.conf

295行

1UserParameter=

具体配置方法参考:

1### Option: UserParameter
2#       User-defined parameter to monitor. There can be several user-defined parameters.
3#       Format: UserParameter=<key>,<shell command>
4#       See 'zabbix_agentd' directory for examples.

举例:

方法1

1UserParameter=net.ip[*],/sbin/ifconfig $1 | awk -F '[ :]' '{if(NR==2) print $$13}'

zabbix服务器测试获取客户端数据:

1[root@zzjlogin ~]# zabbix_get -s 192.168.161.134 -k "net.ip[eth1]"
2192.168.161.134
3[root@zzjlogin ~]# zabbix_get -s 192.168.161.134 -k "net.ip[lo]"
4127.0.0.1

备注

zabbix_get命令需要安装zabbix-get软件包才能有这个测试命令。

方法2

1UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}'

注意

  1. 命令路径要用绝对路径;

  2. 命令用命令自己的 $n 时需要用两个 $ 符号。 一个 $ 的参数是通过*传入的参数。

1[root@zzjlogin ~]# zabbix_get -s 192.168.161.134 -k "memory.usage[MemFree]"
2693216
3[root@zzjlogin ~]# zabbix_get -s 192.168.161.134 -k "memory.usage[MemTotal]"
41004348

10.6.3. 监控nginx

 1cat >>/etc/nginx/nginx.conf<<EOF
 2##status
 3server{
 4    listen    80;
 5    #server_name    status.mysite.com;
 6    location  /  {
 7    stub_status    on;
 8    access_log    off;
 9    allow 192.168.161.0/24;
10    allow 127.0.0.1;
11    deny all;
12    }
13}
14EOF
 1[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" |awk '/^Active/ {print $NF}'
 22
 3[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" |awk '/^Active/ {print $NF}'
 41
 5
 6[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | grep "Reading"
 7Reading: 0 Writing: 1 Waiting: 0
 8[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | grep "Reading"|cut -d " " -f2
 90
10[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | grep "Reading"|cut -d " " -f4
111
12[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | grep "Reading"|cut -d " " -f6
130
14[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | grep "Waiting"|cut -d " " -f6
150
16
17[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $1}'
1822
19[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $2}'
2023
21[root@zzjlogin ~]# /usr/bin/curl -s "http://192.168.161.134:80/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $3}'
2225

注意

/etc/zabbix/zabbix_agentd.d/ 目录下的conf配置文件会自动以 UserParameter 方式包含在主配置文件中。

 1cat >>/etc/zabbix/zabbix_agentd.d/nginx_parameters.conf <<EOF
 2
 3UserParameter=Nginx.active[*],/usr/bin/curl -s "http://$1:$2/status" |awk '/^Active/ {print $$NF}'
 4
 5UserParameter=Nginx.reading[*],/usr/bin/curl -s "http://$1:$2/status" | grep "Reading"|cut -d " " -f2
 6
 7UserParameter=Nginx.writing[*],/usr/bin/curl -s "http://$1:$2/status" | grep "Writing"|cut -d " " -f4
 8
 9UserParameter=Nginx.waiting[*],/usr/bin/curl -s "http://$1:$2/status" | grep "Waiting"|cut -d " " -f6
10
11UserParameter=Nginx.accepted[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}'
12
13UserParameter=Nginx.handled[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}'
14
15UserParameter=Nginx.requests[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}'
16
17EOF