1、介绍和用法
① 介绍
自定义用户参数,也就是自定义key
有时,你可能想要运行一个代理检查,而不是Zabbix的预定义
你可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中
② 用法格式 syntax
UserParameter=<key>,<command>
A user parameter also contains a key 一个用户参数也包含一个键
The key will be necessary when configuring an item 在配置监控项时,key是必需的
Note: Need to restart the agent 注意:需要重新启动agent 服务
2、用法展示
(1)修改agent 端的配置,设置用户参数
① free | awk '/^Mem/{print $3}' 自己需要查找的参数的命令
② 修改配置文件,把查找参数的命令设为用户参数
cd /etc/zabbix/zabbix_agentd.d/
vim memory_usage.conf
UserParameter=memory.used,free | awk '/^Mem/{print $3}'
③ systemctl restart zabbix-agent.service 重启agent 服务
(2)在zabbix-server 端,查询
zabbix_get -s 192.168.30.7 -p 10050 -k "memory.used"
(3)在监控上,设置一个item监控项,使用这个用户参数
(4)查询graph 图形
3、用法升级
(1)修改agent 端的配置,设置用户参数
① 命令行查询参数的命令
② 修改配置文件,把查找参数的命令设为用户参数
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'
分析:$$2:表示不是前边调位置参数的$2 ,而是awk 的参数$2
注意:$1是调用前边的[*],位置参数,第一个参数
(2)在zabbix-server 端,查询使用这个用户参数的key
(3)在监控上,设置一个item监控项,使用这个用户参数
① 添加Memory Total 的item监控项,使用memory.stats[MemTotal] 的用户参数
在进程中定义倍数,规定单位
② clone 克隆Memory Total 创建Memory Free 的监控项
memory.stats[MemFree] 用户参数
③ 创建Memory Buffers 的item 监控项,使用 memory.stats[Buffers] 的key
(4)上面3个监控项的graph 图形
① memory total
② memory free
③ buffers
4、使用用户参数监控php-fpm 服务的状态
在agent 端:
(1)下载,设置php-fpm
yum -y install php-fpm
② 打开php-fpm的状态页面
vim /etc/php-fpm.d/www.conf
user = nginx group = nginx pm.status_path = /php-fpm-status #php-fpm 的状态监测页面 ping.path = /ping #ping 接口,存活状态是否ok ping.response = pong #响应内容pong
③开启服务
systemctl start php-fpm
(2)设置nginx ,设置代理php,和php-fpm的状态页面匹配
①
vim /etc/nginx/nginx.conf
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* /(php-fpm-status|ping) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params; allow 127.0.0.1; #因为这个页面很重要,所有需加访问控制 deny all; access_log off; #访问这个页面就不用记录日志了 }
②开启nginx服务
systemctl start nginx
(3)在agent 端,设置用户参数
① 查询 curl 192.168.30.7/php-fpm-status
② 设置
cd /etc/zabbix/zabbix_agentd.d/
vim php_status.conf
UserParameter=php-fpm.stats[*],curl -s http://127.0.0.1/php-fpm-status | awk '/^$1/{print $$NF}'
分析:设置用户参数为php-fpm.stats[*],$1为第一个参数;$$NF为awk中的参数,倒数第一列
③ 重启服务
systemctl restart zabbix-agent
(4)在zabbix-server 端,查询使用这个用户参数的key
zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[idle]"
zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[active]"
zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[max active]"
(5)创建一个模板,在模板上创建4个item监控项,使用定义的用户参数
① 创建一个模板
② 在模板上配置items 监控项,使用刚定义的用户参数
fpm.stats[total processes]
③ 再clone克隆几个items监控项
fpm.stats[active processes]
④ fpm.stats[max active processes]
⑤ fpm.stats[idle processes]
(6)host主机链接模板
(7)查看graph 图形
① php-fpm total processes
② php-fpm active processes
③ php-fpm max active processes
④ php-fpm idle processes
(8)把模板导出,可以给别人使用
① 导出模板
最下面有导出
② 自己定义用户参数的文件,也不要忘记导出
/etc/zabbix/zabbix_agentd.d/php_status.conf