Zabbix 用户参数

一、介绍

自定义用户参数,也就是自定义key
有时,你可能想要运行一个代理检查,而不是Zabbix的预定义
你可以编写一个命令检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数

语法格式
UserParameter=,
一个用户参数也包含一个键
在配置监控项时,key是必需的
注意:需要重新启动agent 服务

二、用法

1. 修改 agent 端的配置,设置用户参数

#自己需要查找的参数的命令
[root@zabbix-agent-none1 ~]# free | awk '/^Mem/{print $3}'
118052

#修改配置文件,把查找参数的命令设为用户参数
[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf
UserParameter=memory.used,free | awk '/^Mem/{print $3}'

#重启agent 服务
[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service

2. 在 zabbix-server 端,查询

[root@zabbix-server ~]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.used"
118212

3. 在zabbix监控上,设置一个item监控项,使用这个用户参数

配置-->主机-->none1-->监控项-->创建监控项


image.png

4. 查询graph 图形

image.png

三、用法升级

1. 修改agent 端的配置,设置用户参数

1.1 命令行查询参数的命令
image.png
1.2 修改配置文件,把查找参数的命令设为用户参数
[root@zabbix-agent-none1 zabbix_agentd.d]# ls
memory_usage.conf  userparameter_mysql.conf
[root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf  ----继续添加
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'     --添加到文件中注意去掉反斜杠
[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service


注意:$$2:表示不是前边调位置参数的$1,而是awk 的参数$2
注意:$1是调用前边的[*],位置参数,第一个参数

2. 在 zabbix-server 端,查询使用这个用户参数的key

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[MemTotal]"
999696
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Cache]"
243832
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Buffer]"
2108

3. 在zabbix监控上,设置一个item监控项,使用这个用户参数

3.1 添加Memory Total 的item监控项,使用memory.stats[MemTotal] 的用户参数
image.png

在进程中定义倍数,规定单位:


image.png
3.2 clone 克隆 Memory Total 创建 Memory Free 的监控项,使用memory.stats[MemFree] 的用户参数
image.png

4. 上面2个监控项的graph 图形

image.png
image.png

四、使用用户参数监控 php-fpm 服务的状态

1. 在agent 端:192.168.246.226 下载,设置php-fpm

[root@zabbix-agent-none1 ~]# yum -y install php-fpm
[root@zabbix-agent-none1 ~]# 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  #打开注释

[root@zabbix-agent-none1 ~]# yum -y install nginx
[root@zabbix-agent-none1 ~]# systemctl start php-fpm

2. 在 agent 端设置nginx ,设置代理php,和php-fpm的状态页面匹配

[root@zabbix-agent-none1 ~]# vim /etc/nginx/nginx.conf
server {
        listen       80 default_server;
        server_name  localhost;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }
        
        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;

            access_log off;   #访问这个页面就不用记录日志了
       }
}

[root@zabbix-agent-none1 ~]# nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@zabbix-agent-none1 ~]# nginx -s reload

3. 在agent 端,设置用户参数

3.1 查询 curl 192.168.246.226/php-fpm-status
image.png

pool – fpm池子名称,大多数为www
process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic
start time – 启动日期,如果reload了php-fpm,时间会更新
start since – 运行时长
accepted conn – 当前池子接受的请求数
listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
max listen queue – 请求等待队列最高的数量
listen queue len – socket等待队列长度
idle processes – 空闲进程数量
active processes – 活跃进程数量
total processes – 总进程数量
max active processes – 最大的活跃进程数量(FPM启动开始算)
max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
slow requests – 启用了php-fpm slow-log,缓慢请求的数量

3.2 设置
[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent-none1 zabbix_agentd.d]# vim php_status.conf      #添加
UserParameter=php-fpm.stats[*],curl -s http://192.168.246.226/php-fpm-status | awk '/^$1/{print $$NF}'

#设置用户参数为php-fpm.stats[*],$1为第一个参数;$$NF为awk中的参数

#重启服务
[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent

4. 在zabbix-server 端,查询使用这个用户参数的key

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[idle]"
4
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[max active]"
1
[root@zabbix-server fonts]#  zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[total processes]"
6
[root@zabbix-server fonts]#  zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[active]"
1

5. 在zabbix监控创建一个模板,在模板上创建4个item监控项,使用定义的用户参数

5.1 创建一个模板
image.png
5.2 在模板上配置items 监控项,使用刚定义的用户参数

配置--->模板-->fpm status--->监控项-->创建监控项
fpm.stats[total processes]

image.png

5.3 再clone克隆一个items监控项

fpm.stats[active processes]

image.png

6. host主机链接模板

配置-->主机-->none1--->模板--->选择--->fpm status --->添加--->更新


image.png
image.png

7. 查看graph 图形

image.png
image.png

8. 把模板导出,可以给别人使用

导出模板


image.png

最下面有导出


image.png

自己定义用户参数的文件,也不要忘记导出
/etc/zabbix/zabbix_agentd.d/php_status.conf

你可能感兴趣的:(Zabbix 用户参数)