zabbix监控中间件服务

zabbix监控Nginx

自定义nginx访问量的监控项,首先要通过脚本将各种状态的值取出来,然后通过zabbix监控。找到自定义脚本上传到指定目录/etc/zabbix/script/

在zbx-client客户端主机操作

#创建目录,然后将脚本上传到该目录

mkdir /etc/zabbix/script/

cd /etc/zabbix/script

chmod +x ngx_status.sh

#脚本内容主要是利用函数定义nginx状态页面的各个字段,然后结合awk进行取值,最后在通过case语句控制脚本输出
cat /etc/zabbix/script/ngx_status.sh
#定义Nginx status页面
ngx_status="http://127.0.0.1/status"
#判断status页面是否存活
ngx_status_code() {
    http_code=`curl -o /dev/null -s -w %{http_code}${ngx_status}`
    if [ ${http_code} == "200" ];then
    	return 1
    else
    	echo "Nginx status is not running."
    fi
}
#获取当前活动用户的连接数量
active() {
    ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}
#获取接受的客户端连接数量
accepts() {
    ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}
#获取处理的连接总数量
handled() {
    ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}
#获取客户端请求的总数量
requests() {
    ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}

#获取正在读取请求标头的当前连接数量
reading() {
	ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}
#获取正在将响应写回到客户端的当前连接数量
writing() {
	ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}
#获取当前正在等待响应的客户端连接数量
waiting() {
	ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}
#使用位置变量控制脚本输出
case $1 in
        active)
        	active;;
        accepts)
        	accepts;;
        handled)
        	handled;;
        requests)
        	requests;;
        reading)
        	reading;;
        writing)
        	writing;;
        waiting)
        	waiting;;
        *)
        	echo "Unknown options"
esac
#修改zabbix agent配置文件,开启自定义监控功能
vim /etc/zabbix/zabbix_agentd.conf
...
311 Include=/etc/zabbix/zabbix_agentd.d/*.conf --自定监控路径
330 UnsafeUserParameters=1 --改为1为开启自定义监控功能,默认该功能为关闭状态
#进入自定义监控路径
cd /etc/zabbix/zabbix_agentd.d/
#创建自定义监控文件(文件名要求以 .conf结尾)
vim nginx_status.conf

UserParameter=nginx.active,bash
/etc/zabbix/script/ngx_status.sh active
UserParameter=nginx.accepts,bash
/etc/zabbix/script/ngx_status.sh accepts
UserParameter=nginx.handled,bash
/etc/zabbix/script/ngx_status.sh handled
UserParameter=nginx.requests,bash
/etc/zabbix/script/ngx_status.sh requests
UserParameter=nginx.reading,bash
/etc/zabbix/script/ngx_status.sh reading
UserParameter=nginx.writing,bash
/etc/zabbix/script/ngx_status.sh writing
UserParameter=nginx.waiting,bash
/etc/zabbix/script/ngx_status.sh waiting

#解释
UserParameter= #自定义监控固定格式
nginx.active #监控项名称

#重启zabbix-agent服务
systemctl restart zabbix-agent

获取监控项数据

zabbix server端操作

#服务端下载zabbix-get软件包,用于在命令行获取客户端监控项的值
yum -y install zabbix-get
#获取客户端监控项(按照自己的环境修改IP)
zabbix_get -s 192.168.0.15 -k nginx.active --当前活动用户的连接数量
zabbix_get -s 192.168.0.15 -k nginx.accepts --接收的客户端连接总数量
zabbix_get -s 192.168.0.15 -k nginx.handled --处理的连接总数量
zabbix_get -s 192.168.0.15 -k nginx.requests --客户端请求的总数量
zabbix_get -s 192.168.0.15 -k nginx.reading --正在读取请求的连接数
zabbix_get -s 192.168.0.15 -k nginx.writing --将响应反回客户端的连接数
zabbix_get -s 192.168.0.15 -k nginx.waiting --客户端正在等待服务器的响应数量

接下来创建监控模板、应用集、监控项

当完成后,点击 添加(Add),新的监控项将出现在监控项列表中。

按照上述方法在将其余的监控项添加至模板中。最终的效果如下图:

绑定模板,转到 配置 主机 找到你的主机,把模板绑定到主机。

随后点击配置栏中的监测(Monitoring) → 最新数据 (Latest data)以查看具体细节。

zabbix监控Redis

自定义监控项方法与nginx类似

#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x redis_status.sh
#创建自定义监控项文件
vim /etc/zabbix/zabbix_agentd.d/custom_redis_status.conf
UserParameter=Redis.Info[*],/etc/zabbix/script/redis_statu
s.sh $1 $2
UserParameter=Redis.Status,(redis-cli -h 127.0.0.1 -p 6379 ping)2>/dev/null |grep -c PONG
#重启zabbix agent服务
systemctl restart zabbix-agent

接下来创建模板、应用集、监控项、绑定模板与前边的nginx一样,此处不在重复演示,最终效果如下图:

zabbix监控PHP

php-fpm 作为 PHP进程管理程序,我们也需要监控它的状态。

#查看php-fpm配置文件确保已经开启状态页面功能(搜索:status)
vim /etc/php-fpm.d/www.conf
...
121 pm.status_path = /php_status
#查看nginx配置文件确保可以访问php_status页面
vim /etc/nginx/conf.d/default.conf
...
location /php_status { #php状态页面
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/scripts$fastcgi_script_name;
include fastcgi_params;
}
  • 访问php状态页面:http://server_ip/php_status

  • pool:fpm池子名称,大多数为www

  • process manager:进程管理方式,值:static,dynamic orondemand

  • 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功能时,如果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查询会触发这个值

自定义监控项方法与nginx类似

#上传脚本到/etc/zabbix/script路径并添加执行权限

chmod +x phpfpm_status.sh
#创建自定义监控项文件

cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.conf

UserParameter=phpfpm_status[*],/bin/bash

/etc/zabbix/script/phpfpm_status.sh "$1"
#重启zabbix agent服务

systemctl restart zabbix-agent

Zabbix Server获取监控项数据

#php-fpm运行时长
zabbix_get -s 192.168.0.15 -k phpfpm_status[start_since]
#当前接收的连接数
zabbix_get -s 192.168.0.15 -k phpfpm_status[accepted_conn]
#等待连接的请求数
zabbix_get -s 192.168.0.15 -k phpfpm_status[listen_queue]
#请求等待队列最高的数量
zabbix_get -s 192.168.0.15 -k
phpfpm_status[max_listen_queue]

zabbix监控MySQL

  • percona官网: https://www.percona.com/
  • 软件下载地址: wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm

安装percona

rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm
...
Scripts are installed to /var/lib/zabbix/percona/scripts --监控脚本安装路径
Templates are installed to /var/lib/zabbix/percona/templates --监控模板安装路径
#查看监控模板路径
ls /var/lib/zabbix/percona/templates 
userparameter_percona_mysql.conf --监控项配置文件
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml --监控模板文件
#将自定义监控文件移动至/etc/zabbix/zabbix_agentd.d/自定义监控项
目录
mv /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

导入监控模板,验证模板是否可用,回到zabbix web界面通过 配置模板导入 将模板文件导入。

提示:默认会出现如上图问题,应为percona提供的监控模板由于版本2.0.9过低,而zabbix4.0以后版本就不支持2.0以下的模板,需要使高版本的模板。

通过配置模板查看(搜索:mysql)具体信息

配置percona连接数据库

percona监控插件是php编写,通过php连接mysql数据库来获取相关的数据,需要为percona指定连接数据库的用户与密码。

#修/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php文件指定用户与密码
ls /var/lib/zabbix/percona/scripts/
get_mysql_stats_wrapper.sh --获取MySQL状态脚本
ss_get_mysql_stats.php --php连接MySQL数据库脚本
#修改php脚本指定连接数据库用户与密码
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
...
30 $mysql_user = 'root';
31 $mysql_pass = ''; 如果root用户没有密码,则留空即可
#重启zabbix agent服务
systemctl restart zabbix-agent

zabbix server 端命令行取值(具体值可

从/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf监控项文件中查看)

zabbix_get -s 192.168.0.15 -k MySQL.Sort-scan

0

如果需要监控主从同步状态,需要修

改/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh脚本文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将用户改为root即可(如果root用户没有设置密码,则不需要指定-p)。

回到web界面查看监控项状态。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

具体取值数据可从 监测最新数据 中查看

此时通过 监测仪表板 查看时会发现一个问题通知,大致含义为主从状态为停止。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果没有配置主从同步,通过 配置主机监控项,找到对应监控项关闭即可。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

到此为止MySQL监控以完成。

有时间可以制作一个MySQL的监控模板(中文)只保留核心监控项目,没有必要的,停用掉!

查看监控项状态。

[外链图片转存中…(img-FxnuItaS-1709728242025)]

具体取值数据可从 监测最新数据 中查看

此时通过 监测仪表板 查看时会发现一个问题通知,大致含义为主从状态为停止。

[外链图片转存中…(img-fiOs3lNX-1709728242026)]

如果没有配置主从同步,通过 配置主机监控项,找到对应监控项关闭即可。

[外链图片转存中…(img-9jHutmYm-1709728242026)]

到此为止MySQL监控以完成。

有时间可以制作一个MySQL的监控模板(中文)只保留核心监控项目,没有必要的,停用掉!

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

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

相关文章

信息安全与阿里云等保三级方案实践总结

信息安全在当今数字化时代变得至关重要,企业和组织需要采取有效措施来保护其数据和信息资产。阿里云作为中国领先的云服务提供商,提供了等保三级方案,帮助用户满足国家信息安全等级保护的要求。本文将探讨信息安全和阿里云等保三级方案的重要…

使用vite创建一个vue3项目

创建一个vue3项目 1.使用命令npm create vuelatest来创建一个vue3项目,注意:官网说明了必须node版本是18及以上的,这边需要注意下 2.然后根据提示进入项目目录 先npm install安装依赖,然后npm run dev启动项目 大家可以看到&am…

TCP与UDP基础

思维导图&#xff1a; TCP&#xff1a; 服务器 #include<myhead.h> #define SER_IP "192.168.252.163" #define SER_PORT 6666 int main(int argc, const char *argv[]) {//&#xff11;、创建用于监听的套接字int sfd-1;sfdsocket(AF_INET,SOCK_STREAM,0);/…

2023 电脑PC FetchV网页视频下载器 浏览器插件

FetchV&#xff0c;它可以下载网页视频&#xff0c;下载速度快到离谱&#xff0c;非常好用&#xff01; FetchV:网页视频下载器(HLS|m3u8|mp4|blob) 下载和录制各种格式的在线网页视频&#xff0c;包括HLS、m3u8、blob、mp4、webm等各种类型的视频。 这是一个通用的网页视频…

保留数据的重装系统教程!(win11系统)

上车警告&#xff01;&#xff01;&#xff01; 本教程无需思考&#xff0c;跟着操作一步一步来就能完成系统的重装。原理是将C盘系统重装&#xff0c;其他盘符数据保存。适用于系统盘重装数据或更改系统版本。 重要提示&#xff01;&#xff01;&#xff01; C盘有重要学习资…

视频产品介绍:国标28181网关(GB/T28118网关)

目 录 一、概述 二、产品功能 &#xff08;一&#xff09;功能描述 &#xff08;二&#xff09;功能展示 1、国标接入 2、资源绑定 三、产品能力 &#xff08;一&#xff09;接入能力 &#xff08;二&#xff09;多级架构 四、特点优势 &#xff08;一&am…

用硬盘空间管理工具TreeSize拯救C盘容量

一、软件简介 TreeSize 是一款卓越的硬盘空间管理工具&#xff0c;能智能检测磁盘文件和存储量&#xff0c;为您提供详尽的磁盘空间信息&#xff0c;帮助您根据需求删除无用文件&#xff0c;释放更多空间。使用该工具可有效分析硬盘存储情况&#xff0c;找出大文件和未使用文件…

【React Native】修改Android端应用的图标

简言 修改android应用的图标的步骤&#xff0c;效果如下&#xff1a; 修改图标 Android应用的app图标在 /android/app/src/main/res 下&#xff1a; 准备图标 在替换之前要准备好图标各精度的图片。 图标工厂&#xff0c;这个网站可以快速免费生成图标文件供使用。 可以…

MySQL 空间碎片详解

文章目录 前言1. 空间碎片如何产生2. 空间碎片如何查看3. 空间碎片如何回收后记 前言 MySQL 数据库在运行过程中&#xff0c;随着时间的推移&#xff0c;可能会出现空间碎片的问题。空间碎片是指数据库表中不再使用的空间&#xff0c;但由于各种原因&#xff0c;这些空间并没有…

Linux 下安装 Git

Linux 下安装 Git 1 参考2 安装2.1 通过 yum方式安装&#xff08;不推荐&#xff09;2.2 通过源码编译安装&#xff08;推荐&#xff09; 3 配置SSH 1 参考 Linux 下安装 Git 2 安装 2.1 通过 yum方式安装&#xff08;不推荐&#xff09; 在Linux上安装git仅需一行命令即可…

[R] How to communicate with your data? - ggplot2

We have gone through the basic part of how to clean and process before analyzing your data. How to communicate with your data? R语言具有生成各种图形的多种可能性。 并非所有图形功能对初学者来说都是必要的。 复杂的图形需要长代码。 我们将从简单的图形元素开…

基于SSM的医院挂号系统

1 引言 1.1 课题背景及意义 社会发展迅速&#xff0c;以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。医院门诊挂号系统慢慢的被人们关注。网上获取信息十分的实时、便捷&#xff0c;只要系统在线状态&#xff0c;无论在哪里都能第一时间查找到理想的信息…

深度解析速卖通商品详情API:Python实战与高级技术探讨

速卖通商品详情API接口实战&#xff1a;Python代码示例 一、准备工作 在开始之前&#xff0c;请确保你已经完成了以下步骤&#xff1a; 在速卖通开放平台注册账号并创建应用&#xff0c;获取API密钥。阅读速卖通商品详情API接口的文档&#xff0c;了解接口的使用方法和参数要…

静态住宅代理IP如何选?这5点最重要

静态住宅代理IP&#xff0c;是一种在网络通信过程中提供固定IP地址的代理服务。与动态代理IP相比&#xff0c;静态代理IP提供的是持久且不变的IP地址。这种稳定性使得静态代理IP在需要长期稳定网络身份的场景中&#xff0c;如跨境电商/社媒养号、网络监控、品牌保护、长期数据爬…

人力资源管理软件大比拼:这篇文章帮你做出明智选择!

本期为您盘点的助力现代企业强力提效的人力资源管理软件有&#xff1a;Zoho People&#xff0c;Workday&#xff0c;BambooHR和Namely。 Zoho People人力资源管理软件 Zoho People是一款全面的云端人力资源管理&#xff08;HRM&#xff09;软件&#xff0c;由Zoho Corporation…

Android开发工程师面试题,2024年Android开发陷入饱和

前言 马上快到金三银四都春招阶段了&#xff0c;在这本就是跳槽、找工作的年后黄金时间&#xff0c;大多数求职者都早早做好年后求职的准备&#xff0c;其中不乏有年前早早辞了工作准备年后跳槽的有经验的职场老人们&#xff0c;也有一批即将毕业的应届毕业生的职场新人们。 …

软件测试需求分析如何编写?为什么要进行测试需求分析?

在软件开发的过程中&#xff0c;软件测试需求分析是至关重要的一个环节。测试需求分析是指对待测软件的需求进行全面细致的分析&#xff0c;明确软件测试的目标和范围&#xff0c;为测试活动的进行提供指导。通过对软件需求的详细分析&#xff0c;可以确保测试人员清楚了解软件…

diffusion model (扩散模型)原理

扩散模型分为正向过程和反向过程。 正向过程为一点点在图片上添加噪声的过程&#xff0c;反向过程为去噪声的过程。 图片的生成就是反向过程&#xff0c;给一张高斯噪声图片&#xff0c;逐步去噪生成图片。 扩散模型和VAE的区别&#xff0c; VAE是一步到位的&#xff08;通过…

7大必备应用推荐,为你的 Nextcloud 实例增添更多效率功能

适用于 Linux 的开源云存储软件有很多&#xff0c;ownCloud、Seafile 和 Pydio 只是其中的几个。 不过&#xff0c;如果您非常重视安全问题&#xff0c;并希望完全掌管您的数据&#xff0c;可以选择​Nextcloud并将其安装到您的服务器上。​ Nextcloud 是一个基于 PHP 的开源安…

NetOps-Python实现网络设备SFTP配置

一、网络设备文件管理 1、基本概念 ①配置文件 网络设备配置文件是命令的集合。 ②作用 用户将当前配置保存到配置文件中&#xff0c;以便设备重启后&#xff0c;这些配置能够继续生效。通过配置文件&#xff0c;用户可以非常方便地查阅配置信息将配置文件下载到本地设备&…
最新文章