User parameters 用户参数与Web监控

目录

一. 自定义键介绍 

二.  制作步骤

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服务的监控页面 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聚合分销推广系统CPS和CPA聚合分销系统小程序搭建开发

目录 前言: 一、聚合cps和cpa是什么? 1.CPS(Cost Per Sale), 2.CPA(Cost Per Action), 二、聚合CPS与CPA推广系统的特色 三、实际应用场景示例 四、总结 前言: 聚合…

【前端】包管理器:npm、Yarn 和 pnpm 的全面比较

前端开发中的包管理器:npm、Yarn 和 pnpm 的全面比较 在现代前端开发中,包管理器是开发者必不可少的工具。它们不仅能帮我们管理项目的依赖,还能极大地提高开发效率。本文将详细介绍三种主流的前端包管理器:npm、Yarn 和 pnpm&am…

从 Icelake 到 Iceberg Rust

本文作者丁皓是Databend 研发工程师,也是开源项目 OpenDAL 作者,主要研究领域包括存储、自动化与开源。 太长不看 Icelake 已经停止更新,请改用 iceberg-rust。 Iceberg-rust 是一个由社区驱动的项目,所有 Icelake 的贡献者都已转…

【深度学习】图形模型基础(7):机器学习优化中的方差减少方法(1)

摘要 随机优化是机器学习中至关重要的组成部分,其核心是随机梯度下降算法(SGD),这种方法自60多年前首次提出以来一直被广泛使用。近八年来,我们见证了一个激动人心的新进展:随机优化方法的方差降低技术。这…

3款自己电脑就可以运行AI LLM的项目

AnythingLLM、LocalGPT和PrivateGPT都是与大语言模型(LLM)相关的项目,它们允许用户在本地环境中与文档进行交互,但它们在实现方式和特点上存在一些差异。AnythingLLM使用Pinecone和ChromaDB来处理矢量嵌入,并使用OpenA…

在线绘图小工具

在线绘图小工具 文章说明程序源码功能展示源码下载 文章说明 本文主要是在看了袁老师的canvas绘图小视频后所写,记录一个简单的canvas绘图功能,并学习一下较为传统的JavaScript事件写法,同时了解一下拖拽事件的更合理写法,等待后续…

推荐系统三十六式学习笔记:原理篇.深度学习20|用RNN构建个性化音乐榜单

目录 时间的重要性循环神经网络榜单生成1.数据2.建模 总结 时间是一个客观存在的物理属性,很多数据都有时间属性,只不过大多时候都把它忽略了。前面讲到的绝大多数推荐算法,也都没有考虑“用户在产品上作出任何行为”都是有时间先后的。 正是…

数据结构:树状数组

树状数组 基本操作:1.快速求前缀和 2.修改一个数。 基本图示: lowbit:求出一个数字二进制最后一个1的位置; 原理: 我们发现,除了最后一个1,以及其后面的0,其余位置都是反&#xf…

翻牌器单独设置前后缀样式

翻牌器单独设置前后缀样式 <template><div :style"[fontStyle,styleBackGroundColor]"><!-- <span style"color: #1d1d1d"> {{optionData}}</span>--><!-- 设置前缀样式 --><span class"prefix" …

【全面介绍Oracle】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 目录 🎥前言🎥基本概念和安装🎥SQL语言🎥PL/SQL编程🎥数据库…

【UML用户指南】-34-应用UML

目录 1、事物 1.1、结构事物 1.2、行为事物 1.3、成组事物 1.4、注释事物 2、关系 2.1、依赖 2.2、关联 2.3、泛化 3、可扩展性 4、图 4.1、结构图 4.2、行为图 5、统一过程Rational 5.1、四个阶段 5.2、九个任务 5.3、制品 5.3.1、模型 5.3.2、其他制品 利…

CACTER直播预告:SMC2全面焕新——您的邮件系统专属安全管家

在数字化的浪潮中&#xff0c;科技革命和产业变革正重塑着企业的发展轨迹。邮箱作为企业内部&#xff0c;企业和企业之间沟通的桥梁&#xff0c;其安全性和效率性是保障企业顺畅运作和信息安全的基石。 随着网络攻击手段的不断翻新&#xff0c;邮件系统所面临的安全威胁日益加剧…

医院门诊预约挂号小程序模板源码

医院门诊预约挂号小程序模板源码,主要有&#xff1a;绿色的医院住院办理&#xff0c;门诊预约挂号微信小程序页面模板。包含&#xff1a;办卡绑定、快速办理预约挂号、门诊缴费、住院服务、医院信息、个人中心、添加就诊人、找医生等等。 医院门诊预约挂号小程序模板源码

vue 画二维码及长按保存

需求 想要做如下图的二维码带文字&#xff0c;且能够长按保存 前期准备 一个canvas安装qrcode&#xff08;命令&#xff1a;npm i qrcode&#xff09; 画二维码及文字 初始化画布 <template><div><canvas ref"canvas" width"300" he…

Qt常用基础控件总结—输入部件(QComboBox类和QLineEdit)

输入部件 下拉列表控件QComboBox 类 QComboBox 类是 QWidget 类的直接子类,该类实现了一个下拉列表(组合框)。 QComboBox 类中的属性函数 1)count:const int 访问函数:int count() const; 获取组合框中的项目数量,默认情况下,对于空组合框或未设置当前项目的组合框,…

4-2 文本向量化

4-2 文本向量化 文本向量化是自然语言处理&#xff08;NLP&#xff09;中的一个关键步骤&#xff0c;通过将文本数据转化为数值向量&#xff0c;使计算机能够理解和处理自然语言。本文将深入探讨文本向量化的各种方法&#xff0c;包括词袋模型&#xff08;Bag of Words&#x…

生物素-十一聚乙二醇-沙利度胺;Biotin-PEG11-Thalidomide

Biotin-PEG11-Thalidomide&#xff0c;即生物素-十一聚乙二醇-沙利度胺&#xff0c;是一种结合了生物素、十一聚乙二醇&#xff08;PEG11&#xff09;和沙利度胺的复杂化合物。以下是对该化合物的详细分析&#xff1a; 一、组成成分及特性 生物素&#xff08;Biotin&#xff09…

备份及恢复Sonarqube服务数据

基础数据&#xff1a; 源数据机ip&#xff1a;192.*.53 测试机ip&#xff1a;192.*.65 Sonarqube访问地址&#xff1a;http://192.*.65:9000/ 账户名&#xff1a;admin 密码&#xff1a;123456 数据库postgres&#xff1a; 版本&#xff1a;PostgreSQL 15.3 一、数据备份…

厨电,被AI重构的下一个十年|产业特稿

智能化赋能下&#xff0c;厨房从闲人免进的油污重地&#xff0c;到会朋交友的社交空间。随着老板、方太等头部厨电厂商纷纷布局AI&#xff0c;厨电行业的数字化、智能化正逐渐改变了人们和烹饪之间的交互&#xff0c;重塑着厨房固有的属性、定位和职能。 作者|斗斗 编辑|皮爷…

RSA算法java实现

基于RSA算法的Java示例代码&#xff0c;展示了如何进行公钥加密、私钥解密、私钥签名和公钥验签。 非堆成加密公私钥使用学习请查看&#xff1a;非堆成加密公私钥使用-CSDN博客 代码实现 package com.chengxuyuan.demo;import javax.crypto.Cipher; import java.security.*;…