1. User parameters
在agent端自定义key,编写脚本,添加到配置文件中;server端调用agent端的key进行采集数据。
只能返回一个512KB数据,默认用/bin/sh执行脚本命令
1.1 无参key
格式:UserParameter=<key>,<command>
如:UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
执行成功返回1,否则0其他
# 在agent端
[root@localhost ~]#vim /usr/local/etc/zabbix_agentd.conf
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=<key>,<shell command>
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=memory.free,/usr/bin/free | awk '/^Mem:/{print $4}'
# 重启agent端
# 在server端
[root@localhost ~]#zabbix_get -h
usage:
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
zabbix_get -h
zabbix_get -V
Get data from Zabbix agent.
General options:
-s --host host-name-or-IP Specify host name or IP address of a host
-p --port port-number Specify port number of agent running on the host
(default: 10050)
-I --source-address IP-address Specify source IP address
-k --key item-key Specify key of the item to retrieve value for
-h --help Display this help message
-V --version Display version number
[root@localhost ~]#zabbix_get -s 192.168.195.204 -k "memory.free"
148720
配置->主机->监控项->创建监控项->键入键值,1024倍
监测中->最新数据->修改应用集
1.2 带参key
格式:UserParameter=<key>[*],<command>
command使用[*]参数用$1,$2..,使用命令参数用$$1,$$2区别
# 在agent端
[root@localhost ~]#vim /usr/local/etc/zabbix_agentd.conf
# 增加
UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}'
# 在server端
[root@localhost ~]#zabbix_get -s 192.168.195.204 -k "memory.usage[MemFree]"
148224
[root@localhost ~]#zabbix_get -s 192.168.195.204 -k "memory.usage[MemTotal]"
1012080
配置->主机->监控项->新建监控项
监测中->最新数据->选择应用集->选择这三个监控项->显示数据图
配置->主机->图形->创建图形
配置->主机->监控项->多选,删除历史数据
监测中->图形->选择群组,主机,图形
2. 自定义监控Nginx状态
nginx status开启
# 在agent端
[root@localhost ~]#vim /etc/nginx/nginx.conf
# 在server下加个location
server {
...
location /status {
stub_status on;
access_log off;
allow 192.168.195.202; # 允许访问的 IP,本地是不能访问的
allow 127.0.0.1;
deny all;
}
}
[root@localhost ~]#service nginx restart # 重启nginx
# 在server端
[root@localhost ~]#curl http://192.168.195.204/status
Active connections: 1
server accepts handled requests
4 4 10
Reading: 0 Writing: 1 Waiting: 0
# 在agent端
[root@localhost ~]#vim /usr/local/etc/zabbix_agentd.conf
# 增加
UserParameter=Nginx.active[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}'
UserParameter=Nginx.reading[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2
UserParameter=Nginx.writing[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4
UserParameter=Nginx.waiting[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6
UserParameter=Nginx.accepted[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}'
UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}'
UserParameter=Nginx.requests[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}'
# 重启agent
# 在server端
[root@localhost ~]#zabbix_get -s 192.168.195.204 -k "Nginx.accepted[127.0.0.1,80]"
5
配置->主机->监控项->创建监控项
创建图形
看不到last min max avg是因为编码问题