User parameters 用户参数与Web监控

news2024/9/21 5:10:07

目录

一. 自定义键介绍 

二.  制作步骤

1. 添加无可变部分参数

2. 添加有可变参数 

3. 使用用户参数监控php-fpm 服务的状态

三. Web页面导入应用监控

四. Web监控

主要功能和操作:

开启方式 


官方预定义监控项文档icon-default.png?t=N7T8https://www.zabbix.com/documentation/6.4/zh/manual/config/items/itemtypes/zabbix_agent

一. 自定义键介绍 

在Zabbix中,UserParameter 是一个非常重要的功能,它允许用户定义自定义参数,从而监控那些Zabbix标准监控项之外的服务或应用程序。通过UserParameter,用户可以执行脚本或命令来收集数据,然后将这些数据返回给Zabbix进行进一步的处理和监控。

使用UserParameter的基本步骤如下:

  1. 配置Zabbix Agent:在Zabbix agent的配置文件(通常是/etc/zabbix/zabbix_agentd.d/zabbix_agentd.d/)目录中定义UserParameter。通常文件名没有特定要求,但重要的是确保文件具有 .conf 扩展名,这样 Zabbix agent 在启动时会自动加载该文件中的配置。配置格式如下:

    复制

    UserParameter=key[*],command
    

    其中key是你在Zabbix前端定义的键值,[*]表示参数的可变部分,command是执行脚本或命令的路径。

  2. 编写脚本:根据你的监控需求,编写相应的脚本来收集数据。脚本需要能够接收来自Zabbix agent的参数,并返回文本格式的输出。

  3. 重启Zabbix Agent:在修改了配置文件并添加了自定义参数后,需要重启Zabbix agent服务以使配置生效。

  4. 在Zabbix前端添加监控项:在Zabbix前端,创建一个新的监控项,并选择类型为“Zabbix agent”或“Zabbix agent (active)”,然后在“Key”字段中输入你在UserParameter中定义的键值。

  5. 测试监控项:在Zabbix前端,测试你添加的监控项是否能够成功获取数据。

通过这种方式,Zabbix的监控能力可以得到极大的扩展,可以监控几乎任何可以通过脚本或命令行工具获取数据的系统指标或应用程序状态。需要注意的是,在使用UserParameter时,应当确保执行的脚本或命令是安全的,不会对系统稳定性造成影响,同时也要保证数据收集的效率,避免对系统性能产生不良影响。

二.  制作步骤

首先准备一个agent端和server端,并进行监控。

1. 添加无可变部分参数

例如我要取已使用的内存量:

#使用这个bash命令可以获取到

[root@web1 ~]# free -k
               total        used        free      shared  buff/cache   available
Mem:         3714688      463632     2834340        9468      655160     3251056
Swap:         839676           0      839676
[root@web1 ~]# free | awk '/^Mem/{print $3}'
463632

 现在我们将这个自定义键写入这个memory_usage.conf文件里

[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
​#将这个自定义Key添加写入这个文件里
UserParameter=memory.used,free | awk '/^Mem/{print $3}'

重启agent服务

[root@web1 ~]# systemctl restart zabbix-agent

 在server端使用命令测试(server端需要下载zabbix_get,agent端需要下载)

[root@zabbix ~]# zabbix_get -s 192.168.226.29 -k memory.used
463632

2. 添加有可变参数 

 现在我们以Linux 系统的内存使用情况为例

[root@web1 ~]# cat /proc/meminfo
MemTotal:        3714688 kB
MemFree:         2830252 kB
MemAvailable:    3246988 kB
Buffers:            2708 kB
Cached:           602060 kB
SwapCached:            0 kB
Active:           137764 kB
Inactive:         511872 kB
Active(anon):      45016 kB
Inactive(anon):     9320 kB
Active(file):      92748 kB
Inactive(file):   502552 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        839676 kB
SwapFree:         839676 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         44868 kB
Mapped:            33976 kB
Shmem:              9468 kB
KReclaimable:      50416 kB
Slab:             106580 kB
SReclaimable:      50416 kB
SUnreclaim:        56164 kB
KernelStack:        5728 kB
PageTables:         2248 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2697020 kB
Committed_AS:     173100 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       55704 kB
VmallocChunk:          0 kB
Percpu:            49152 kB
HardwareCorrupted:     0 kB
AnonHugePages:      4096 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
Unaccepted:            0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      130880 kB
DirectMap2M:     4063232 kB
DirectMap1G:     2097152 kB

 现在我们将这个自定义键写入这个memory_usage.conf文件里

[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
​#将这个自定义Key添加写入这个文件里
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'

#   $$2:表示不是前边调位置参数的$2 ,而是awk 的参数$2

重启agent服务

[root@web1 ~]# systemctl restart zabbix-agent

 在server端使用命令测试

[root@zabbix ~]# zabbix_get -s 192.168.226.29 -k memory.stats[MemTotal]
3714688
[root@zabbix ~]# zabbix_get -s 192.168.226.29 -k memory.stats[DirectMap4k]
130880

3. 使用用户参数监控php-fpm 服务的状态

在agent 端 :

下载,设置php-fpm

[root@web1 ~]# yum -y install php-fpm

打开php-fpm的状态页面

[root@web1 ~]# vim /etc/php-fpm.d/www.conf
#修改如下参数
user = nginx	
group = nginx
listen = 127.0.0.1:9000
pm.status_path = /status    #php-fpm 的状态监测页面
ping.path = /ping      #ping 接口,存活状态是否ok
ping.response = pong    #响应内容pong

 开启服务

[root@web1 ~]# systemctl enable --now php-fpm

下载nginx

[root@web1 ~]# yum install -y nginx

设置nginx ,设置代理php,和php-fpm的状态页面匹配

[root@web1 ~]# vim /etc/nginx/nginx.conf    #在server块中加入下述内容,集体见图
      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 ~* /(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;   #访问这个页面就不用记录日志了
        }

测试访问 

[root@web1 ~]# curl 127.0.0.1/status
pool:                 www
process manager:      dynamic
start time:           06/Jul/2024:15:33:15 +0800
start since:          152
accepted conn:        2
listen queue:         0
max listen queue:     0
listen queue len:     511
idle processes:       4
active processes:     1
total processes:      5
max active processes: 1
max children reached: 0
slow requests:        0

现在我们将这个自定义键写入这个memory_usage.conf文件里

[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
​#将这个自定义Key添加写入这个文件里
UserParameter=php.status[*],curl -s http://127.0.0.1/status | awk '/^$1/{print $NF}'

重启agent服务

[root@web1 ~]# systemctl restart zabbix-agent

 在server端使用命令测试

[root@zabbix ~]# zabbix_get -s 192.168.226.29 -k "php.status[pool]"
www
[root@zabbix ~]# zabbix_get -s 192.168.226.29 -k "php.status[idle processes]"
4

三. Web页面导入应用监控

创建模板组

 创建模板

 找到刚创建的模板

添加监控项

 

利用上方自定义的key来创建监控项 

给主机应用模板

 

四. Web监控

Zabbix 的 Web 监控是通过 Zabbix 的 Web 界面来实现对监控系统的管理、配置和数据查看的过程。以下是关于 Zabbix Web 监控的一些主要功能和操作:

主要功能和操作:

  1. 登录和用户管理

    • 用户可以通过 Web 界面登录到 Zabbix,根据其权限访问不同的功能和数据。
    • 管理员可以配置用户权限、角色和访问控制列表(ACL)。
  2. 仪表盘和概览

    • Zabbix 提供了个性化的仪表盘功能,可以根据用户的需求自定义显示的监控数据和图表。
    • 仪表盘可以展示实时的监控状态和数据趋势,方便用户快速了解系统的健康状态。
  3. 配置管理

    • 主机和设备管理:管理员可以添加、编辑和删除监控的主机和设备。
    • 监控项和模板:定义要监控的具体数据项,并通过模板进行统一管理。
    • 触发器和警报:设置监控数据异常时的触发条件和警报规则,确保及时响应和处理。
    • 自动发现:通过自动发现功能,自动添加新的主机或服务到监控系统中,并应用预定义的监控配置。
  4. 监控数据查看

    • 实时监控:通过图表和数据表格查看实时收集的监控数据,例如 CPU 使用率、内存、网络流量等。
    • 历史数据:查看和分析历史性能数据,进行性能趋势分析和问题排查。
  5. 警报和通知

    • 配置警报规则和动作,定义监控数据超过阈值时的通知方式和响应策略。
    • 支持多种通知方式,如电子邮件、短信、Slack 等,确保管理员和团队及时了解和响应监控事件。
  6. 报表和导出

    • 生成和导出监控数据报表,帮助管理员和团队进行定期性能分析和报告。

开启方式 

 

填入的URL就用上面下载的PHP服务的监控页面 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908307.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

fastjson-1.2.24漏洞复现

文章目录 0x01 前言0x02 环境0x03漏洞复现环境准备 0x04 漏洞分析利用链源码分析 0x05 总结0x06 可能遇到的坑 0x01 前言 影响版本 fastjson < 1.2.24 本文出于学习fastjson漏洞的目的&#xff0c;为了能更好的复现漏洞&#xff0c;需要有以下前置知识。 springbootfastj…

刷代码随想录有感(129):动态规划——两个字符串的删除操作

题干&#xff1a; 代码&#xff1a; class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>>dp(word1.size() 1, vector<int>(word2.size() 1, 0));for(int i 1; i < word1.size(); i){for(int j 1; j < wor…

15个最佳WooCommerce商城网站及其主要功能

正在寻找的WooCommerce商城网站来激发灵感&#xff1f; 在动态的在线购物世界中&#xff0c;WooCommerce 就像企业的超级英雄。它帮助他们轻松创建强大而可靠的在线商店&#xff0c;并与WordPress顺畅协作。 从创新的产品展示到简化的结账流程&#xff0c;每个特色网站都拥有…

724.力扣每日一题7/8 Java

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 主要基于数组的…

解析Xml文件并修改QDomDocument的值

背景&#xff1a; 我需要解决一个bug&#xff0c;需要我从xml中读取数据到QDomDocument&#xff0c;然后获取到我想要的目标信息&#xff0c;然后修改该信息。 ---------------------------------------------------------------------------------------------------------…

PPO控制人形机器人行走举例

PPO控制人形机器人行走 Proximal Policy Optimization (PPO) 是一种策略优化算法,在强化学习中广泛使用。它通过改进策略梯度方法,使得训练过程更加稳定和高效。 PPO算法原理介绍 PPO算法主要有两种变体:PPO-Clip 和 PPO-Penalty。这里主要介绍PPO-Clip,因为它更常用。 …

RecyclerView

1、导入RecyclerView包 2、在activity_main.xml中创建RecyclerView <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…

Face_recognition实现人脸识别

这里写自定义目录标题 欢迎使用Markdown编辑器一、安装人脸识别库face_recognition1.1 安装cmake1.2 安装dlib库1.3 安装face_recognition 二、3个常用的人脸识别案例2.1 识别并绘制人脸框2.2 提取并绘制人脸关键点2.3 人脸匹配及标注 欢迎使用Markdown编辑器 本文基于face_re…

@Builder注解详解:巧妙避开常见的陷阱

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 Builder注解详解&#xff1a;巧妙避开常见的陷阱 前言1. Builder的基本使用使用示例示例类创建对…

Java——面试题

1、JDK 和 JRE 有什么区别&#xff1f; JDK&#xff08;Java Development Kit&#xff09;&#xff0c;Java开发工具包 JRE&#xff08;Java Runtime Environment&#xff09;&#xff0c;Java运行环境 JDK中包含JRE&#xff0c;JDK中有一个名为jre的目录&#xff0c;里面包含…

电子发票管理系统-计算机毕业设计源码99719

摘 要 本文旨在设计和实现一个基于SpringBoot的电子发票管理系统&#xff0c;以提升企业的发票管理效率和准确性。随着电子化发票管理的需求增加&#xff0c;企业需要一个高效、可靠且功能丰富的系统来帮助管理发票信息。基于SpringBoot的电子发票管理系统将提供诸如发票信息、…

多数据源及其连接池的配置、事务管理器的注册和使用

&#xff08;ps&#xff1a;如果只有这几个数据源&#xff0c;请选择一个默认的数据源和对应的事务管理器均加上Primary注解&#xff09;示例&#xff1a; 1.在yml文件中配置多数据源/池的信息 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:initia…

nodejs + vue3 模拟 fetchEventSouce进行sse流式请求

先上效果图: 前言: 在GPT爆发的时候,各项目都想给自己的产品加上AI,蹭上AI的风口,因此在最近的一个需求,就想要给项目加入Ai的功能,原本要求的效果是,查询到对应的数据后,完全展示出来,也就是常规的post请求,后来这种效果遇到了一个很现实的问题:长时间的等待。我…

SCI三区|儿童学习优化算法KLO:基于社会进化和认知学习的优化算法

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;ST Javed受到社会环境下家庭儿童的早期社会学习行为启发&#xff0c;提出了儿童学习优化算法&#xff08;Kids Learning Optimizer, KLO&#xff09;。 2.算法原理 2.…

使用MySQLInstaller配置MySQL

操作步骤 1.配置High Availability 默认选项Standalone MySQL Server classic MySQL Replication 2.配置Type and Networking ◆端口默认启用TCP/P网络 ◆端口默认为3306 3.配置Account and Roles 设置root账户的密码、添加其他管理员 4.配置Windows Service ◆配置MySQL Serv…

day4单向链表

主程序 #include "fun.h" int main(int argc, const char *argv[]) { node_p Lcreate_head();//创建链表 printf("########################链表的头插尾插\n"); insert_head(L,45);//头插 insert_head(L,45); insert_tail(L,45);/…

imx6ull/linux应用编程学习(14) MQTT基础知识

什么是mqtt&#xff1f; 与HTTP 协议一样&#xff0c; MQTT 协议也是应用层协议&#xff0c;工作在 TCP/IP 四层模型中的最上层&#xff08;应用层&#xff09;&#xff0c;构建于 TCP/IP协议上。 MQTT 最大优点在于&#xff0c;可以以极少的代码和有限的带宽&#xff0c;为连接…

极客时间:使用Autogen Builder和本地LLM(Microsoft Phi3模型)在Mac上创建本地AI代理

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Jenkins教程-15-常用插件-Blue Ocean

上一小节我们学习了Jenkins定时任务构建的方法&#xff0c;本小节我们讲解一下Jenkins常用插件Blue Ocean的使用方法。 Blue Ocean 提供了一套可视化操作界面来帮助创建、编辑 Pipeline 任务。 Blue Ocean 特性&#xff1a; 流水线编辑器&#xff1a;用于创建贯穿始终的持续交…

JavaScript学习笔记(七)

45.9 JavaScript 可迭代对象 可迭代对象&#xff08;Iterables&#xff09;是可以使用 for..of 进行迭代的对象。 从技术上讲&#xff0c;可迭代对象必须实现 Symbol.iterator 方法。 45.9.1 遍历字符串 <body><p id"demo"></p><script>c…