当前位置: 首页 > news >正文

zabbix实现监控Apache、Nginx、php-fpm应用的实操保姆级流程

一、zabbix实现监控Apache应用流程

 1.1、检查系统是否已经安装Apache

解决OpenEuler安装httpd报Error: Transaction test error: file xxx from install conflicts with file from x错误https://coffeemilk.blog.csdn.net/article/details/153775415?spm=1001.2014.3001.5502

 1.2、下载agent2到Linux系统中安装

        注意:我们在下载被监控端agent安装包的时候需要根据zabbix-server的版本来匹配下载安装,zabbix-server的版本可以在zabbix的web界面的仪表盘右侧可以查看到或者直接在安装了zabbix-server的服务器上执行【zabbix_server -V 】命令查看版本信息。

#直接使用dnf/yum方式在线安装zabbix-agent2实操流程#1-查看系统当前版本
cat /etc/os-release#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpmdnf clean all#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y

zabbix自动发现与自动注册的实操保姆级教程-CSDN博客https://coffeemilk.blog.csdn.net/article/details/153694161?spm=1001.2014.3001.5502

 1.3、配置Apache

  1.3.1、开启Apache的状态页

#开启Apache的状态页实操流程#1-进入Apache的配置文件目录
cd /etc/httpd/
cd conf
vi httpd.conf#2-编辑配置文件【cd /etc/httpd/conf/httpd.conf】并在其末尾添加开启状态页的配置(注意:开启该状态页配置的内容中:Allow from 后面配置的IP地址其实只用127.0.0.1就可以了;我这里为了方便自己的本机的windows电脑192.168.1.2访问因此添加上了)
ExtendedStatus On
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1.2
</location>#3-重启Apache服务让配置生效并查看状态
systemctl restart httpd
systemctl status httpd#注意:若该安装了Apache的服务器防火墙是打开的,则需要放开Apache的默认80端口才可以访问到
firewall-cmd --list-port
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port#4-查看Apache的状态页信息是否正常显示(安装Apache服务器的IP/server-status)【ip a】可以查看服务器ip地址信息
#显示Apache的固定信息
http://192.168.1.10/server-status
#显示Apache的动态信息
http://192.168.1.10/server-status?auto

  1.3.2、apache监控指标解析并压测

apache监控指标解析
序号apache的监控指标说明
1Load1每分钟的负载
2Load5每5分钟的负载
3Load15每15分钟的负载
4Total Accesses总的请求数,即客户端向服务器发送的请求数
若这个值不变,那么说明客户端发送的请求未到达服务器
5Total kBytes总的字节数
6Total Duration总运行时间
7Uptime运行时间
8ReqPerSecHTTP的每秒请求数
9BytesPerReq每秒请求的字节数
10BusyWorkers正在忙的线程数
11IdleWorkers空闲的线程数

BusyWorkers+IdleWorkers为总的线程数。

如果监控发现IdleWorkers为0,那么就说明请求可能出现排队。排队最后会由超时时间来决定。

请求的各种状态类型
序号请求的状态标识说明
1_等待连接
2S准备连接
3R正在读请求
4W服务器向客户端发送响应信息
5K保持长连接
6DDNS查询
7C关闭连接
8L正在写日志
9G退出完成
10I该线程释放
11.当前未使用状态

        关于请求的各种状态类型我们可以使用压测工具siege对该Apache服务状态进行测试时,不停的刷新【Apache服务所在服务器IP/server-status?auto】(如:192.168.1.10/server-status?auto)最底部即可看到不断变化,详细操作如下:

Linux上安装部署轻量级高性能压力测试工具siege实操教程与常用示例https://coffeemilk.blog.csdn.net/article/details/153787828?spm=1001.2014.3001.5502

#1-先对Apache服务器(如:192.168.1.10)上的配置文件【/etc/httpd/conf/httpd.conf】进行编辑添加上对该Apache服务器状态压测服务器的IP(如:192.168.1.9)后保存退出并重启httpd服务
vi /etc/httpd/conf/httpd.confExtendedStatus On
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1.2 192.168.1.9
</location>systemctl restart httpd#2-在对Apache服务器状态压测服务器(如:192.168.1.9)安装配置压测工具siega并对Apache状态服务压测
siege -c 200 -r 1000 http://192.168.1.10/server-status?auto >log.txt

 1.4、zabbix的web界面修改Apache模板并链接指定模板到Apache主机

《1》打开zabbix的web界面左侧的导航栏【数据采集】-->【模板】-->在模板界面顶部的【名称】输入框中输入apache后点击-->【应用】即可过滤出所有Apache的相关模板;我们这里就选择被动模式的模板【Apache by Zabbix agent】打开-->选择【宏】需要对最后两个【{$APACHE.STATUS.PORT}】【{$APACHE.STATUS.SCHEME}】根据实际情况修改。

《2》将【Apache by Zabbix agent】模板链接到安装了Apache的主机上(即:打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->选择安装了Apache服务的主机(如:192.168.1.10)-->【主机】-->模板选择【Apache by Zabbix agent】-->【更新】)即可。

《3》监测给Apache服务所在主机配置的Apache监测模板数据是否采集到进行监控(即:打开zabbix的web界面左侧的导航栏【监测】-->【主机】-->选择安装了Apache服务的主机(如:192.168.1.10)-->【最新数据】-->使用【名称】过滤Total)

详细操作如下:

到这里恭喜你配置zabbix监控Apache状态成功了。

二、zabbix实现监控Nginx应用流程

 2.1、检查系统是否已经安装Nginx

#检查当前系统是否安装了Nginx(即:查看nginx服务状态,若没有则需要安装)
systemctl status nginx.service#在线安装Nginx
yum install nginx -y

使用源码安装配置Linux上的Web服务器——Nginxhttps://coffeemilk.blog.csdn.net/article/details/150780215

 2.2、下载agent2到Nginx的Linux服务器上

#直接使用dnf/yum方式在线安装zabbix-agent2实操流程#1-查看系统当前版本
cat /etc/os-release#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpmdnf clean all#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y

zabbix自动发现与自动注册的实操保姆级教程https://coffeemilk.blog.csdn.net/article/details/153694161?spm=1001.2014.3001.5502

 2.3、配置Nginx

  2.3.1、开启Nginx的状态页

#开启nginx的状态也配置实操流程#1-进入nginx的配置文件目录编辑配置文件nginx.conf
cd /etc/nginx
vi nginx.conf
#编辑nginx.conf配置文件实现开启状态页的server完整内容server {listen 80;listen [::]:80;server_name _;location /nginx-status {stub_status on;access_log off;#根据需要设置访问白名单allow 127.0.0.1;allow 192.168.1.2;#allow 192.168.3.0/24;deny  all;}location / {root html;index  index.html index.htm index.php;}error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}#2-验证配置的nginx.conf是否正确
nginx -t#3-验证nginx.conf的配置都正确后重启nginx服务
systemctl restart nginx.service
systemctl status nginx.service#4-查看当前系统的IP地址后查询(使用Nginx的服务器IP/nginx-status;如:http://192.168.1.9/nginx-status)
ip a

  2.3.2、nginx监控指标解析

nginx的监控指标解析
序号nginx的监控指标说明
1Active connections对后端发起的活动连接数;
2acceptsnginx总共处理了多少个连接;
3handlednginx成功创建了几次握手;
4requestsnginx总共处理了多少请求。
5Readingnginx读取客户端的header数;
6Writingnginx 返回给客户端的header数;
7Waitingnginx 请求处理完成,正在等待下一请求指令的连接。

 2.4、zabbix的web界面修改nginx模板并链接指定模板到nginx主机

《1》打开zabbix的web界面左侧的导航栏【数据采集】-->【模板】-->在模板界面顶部的【名称】输入框中输入nginx后点击-->【应用】即可过滤出所有nginx的相关模板;我们这里就选择主动模式的模板【Nginx by Zabbix agent active】打开-->选择【宏】需要对最后三个【{$NGINX.STUB_STATUS.HOST}】【{$NGINX.STUB_STATUS.PATH}】【{$NGINX.STUB_STATUS.PORT}】根据实际情况修改。

《2》将【Nginx by Zabbix agent active】模板链接到安装了nginx的主机上(即:打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->选择安装了nginx服务的主机(如:192.168.1.9)-->【主机】-->模板选择【Nginx by Zabbix agent active】-->【更新】)即可。

《3》监测给nginx服务所在主机配置的nginx监测模板数据是否采集到进行监控(即:打开zabbix的web界面左侧的导航栏【监测】-->【主机】-->选择安装了nginx服务的主机(如:192.168.1.9)-->【最新数据】-->使用【名称】过滤 Requests、 Connections)

详细操作如下:

到这里恭喜你配置zabbix监控Nginx状态成功了。

三、zabbix监控Nginx+php-fpm应用流程

 3.1、检查系统是否已经安装Nginx+php-fpm

#1-检查nginx+php-fpm环境是否搭建和启动(执行如下两个命令可以显示对应的内容则表示已安装,没有则需要安装)
systemctl status nginx.service
systemctl status php-fpm.service#2-若没有安装nginx+php-fpm环境则执行如下命令实现快速在线安装
yum install php php-fpm php-mysqlnd nginx -y

 3.2、下载agent2到Nginx的Linux服务器上

#直接使用dnf/yum方式在线安装zabbix-agent2实操流程#1-查看系统当前版本
cat /etc/os-release#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpmdnf clean all#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y

zabbix自动发现与自动注册的实操保姆级教程https://coffeemilk.blog.csdn.net/article/details/153694161?spm=1001.2014.3001.5502

 3.3、配置nginx+php-fpm

  3.3.1、开启nginx+php-fpm的状态页

#开启nginx+php-fpm的状态页实操流程#1-进入php-fpm的配置文件目录编辑php-fpm的配置文件www.conf
cd /etc/php-fpm.d/
vi www.conf
#开启php-fpm的配置文www.conf的状态页内容参数(即取消如下三个内容前面的分号;后保存退出即可)
pm.status_path = /status
ping.path = /ping
ping.response = pong#2-进入ngInx的配置文件所在目录修改nginx的配置文件nginx.conf添加上php-fpm的状态页内容
cd /etc/nginx/
vi nginx.conf#nginx.conf文件添加php-fpm的状态页内容server {listen 80;listen [::]:80;server_name _;location ~ \.php$ {fastcgi_pass   127.0.0.1:9000;fastcgi_param  SCRIPT_FILENAME   /usr/share/nginx/html$fastcgi_script_name;include        fastcgi_params;}location ~ ^/(status|ping)$ {fastcgi_pass  127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;include    fastcgi_params;}location /nginx-status {stub_status on;access_log off;#根据需要设置访问白名单allow 127.0.0.1;allow 192.168.1.2;#allow 192.168.3.0/24;deny  all;}location / {root html;index  index.html index.htm index.php;}error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}#3-验证配置的nginx.conf是否正确,验证nginx.conf的配置都正确后重启nginx服务
nginx -t
killall -HUP nginx
systemctl status nginx.service
systemctl restart php-fpm.service #4-查看当前系统的IP地址后查看php-fpm状态页(使用nginx+php-fpm的服务器IP/status;如:http://192.168.1.9/status)
ip a

若使用nginx+php-fpm服务器的IP/status查看php-fpm的状态页时提示“

nginx error!

The page you are looking for is temporarily unavailable. Please try again later.

”错误时,需要检查php-fpm的监听端口9000是否设置;编辑【/etc/php-fpm.d/www.conf】配置文件添加监听的9000端口内容【listen =127.0.0.1:9000】

#解决在浏览器访问php-fpm的状态页时显示nginx error错误方法#1-进入php-fpm的配置文件路径编辑配置文件www.conf
cd /etc/php-fpm.d/
vi www.conf#检查php-fpm的配置文件www.conf是否配置了监听端口9000配置,没有则需要配置上
listen =127.0.0.1:9000#2-重启php-fpm
systemctl restart php-fpm.service 
systemctl status php-fpm.service#3-再次访问nginx+php-fpm的状态页和ping
http://192.168.1.9/status
http://192.168.1.9/ping#注意nginx+php-fpm的状态页可以显示多种格式(json、xml、html)
http://192.168.1.9/status?xml
http://192.168.1.9/status?html
http://192.168.1.9/status?json

到这里表示你配置nginx+php-fpm的状态页开启完成了。

  3.3.2、php-fpm监控指标解析

php-fpm监控指标解析
序号php-fpm监控指标说明
1poolfpm池子名称,大多数为www
2process manager进程管理方式;值类型有:static, dynamic or ondemand. dynamic
3start time启动日期,如果reload了php-fpm,时间会更新
4start since运行时长
5accepted conn当前池子接受的请求数
6listen queue请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
7max listen queue请求等待队列最高的数量
8listen queue lensocket等待队列长度
9idle processes空闲进程数量
10active processe活跃进程数量
11total processes总进程数量
12max active processes最大的活跃进程数量(FPM启动开始算)
13max children reached达到进程最大数量限制的次数,如果这个数量不为0,那说明最大进程数量太小了,可适当改大一点。
14slow requests启用了php-fpm slow-log,缓慢请求的数量

 3.4、zabbix的web界面修改php-fpm模板并链接指定模板到php-fpm主机

《1》打开zabbix的web界面左侧的导航栏【数据采集】-->【模板】-->在模板界面顶部的【名称】输入框中输入php-fpm后点击-->【应用】即可过滤出所有php-fpm的相关模板;我们这里就选择模板【PHP-FPM by HTTP】(可以不用安装zabbix-agent2就直接使用)打开-->选择【宏】需要将【{$PHP_FPM.HOST}】这个主机删除掉,因为是通过HTTP协议连接通讯,要实现该模板通用就不能使用指定的主机IP;接下来会修改涉及到原来使用【{$PHP_FPM.HOST}】宏变量的监控项实现为自动获取主机IP连接(

①是将【PHP-FPM by HTTP】模板里面的【Get ping page】监控项中的【URL】内容的宏变量{$PHP_FPM.HOST}修改为{HOST.CONN}。

②是将【PHP-FPM by HTTP】模板里面的【Get status page】监控项中的【URL】内容的宏变量{$PHP_FPM.HOST}修改为{HOST.CONN}。

)。

《2》将【PHP-FPM by HTTP】模板链接到安装了nginx+php-fpm的主机上(即:打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->选择安装了nginx+php-fpm服务的主机(如:192.168.1.9)-->【主机】-->模板选择【PHP-FPM by HTTP】-->【更新】)即可。

《3》监测给nginx+php-fpm服务所在主机配置的php-fpm监测模板数据是否采集到进行监控(即:打开zabbix的web界面左侧的导航栏【监测】-->【主机】-->选择安装了nginx+php-fpm服务的主机(如:192.168.1.9)-->【最新数据】-->使用【名称】过滤 Listen、Processes、Get status page)

详细操作如下:

默认【Get status page】的监控项没有内容这是因为默认该监控项不存储数据,我们可以修模板【PHP-FPM by HTTP】的【Get status page】监控项保存7天后再次查看即可获取到数据:

到这里在zabbix的web界面可以获取到php-fpm的监控数据内容表示对php-fpm的监控成功了。

四、zabbix官网提供的各种应用模板资料

Zabbix Integrations and Templateshttps://www.zabbix.com/cn/integrations

http://www.dtcms.com/a/528242.html

相关文章:

  • 69.力扣LeetCode_x的平方根
  • linux第二次作业
  • (二)Gradle 依赖仓库及安全凭证配置
  • 医疗信创标杆实践:浙人医 LIS 系统异构多活容灾架构深度解析(附 KingbaseES 实战)
  • 廊坊怎么做网站免费访问国外网站的应用
  • 对网站建设好学吗vps 需刷新几次才能打开网站
  • 百日挑战之单词篇(第三天)
  • 【C++】list 常见使用和模拟实现
  • HTML HTML5基础(2)
  • macOS安装使用Oh My Tmux教程
  • SpringBoot+FFmpeg+ZLMediaKit 实现本地视频推流
  • Mac-终端
  • 中科大分子生物学Ⅲ复习题2025年
  • 关于lvgl-for linxu的dockerfile
  • 做ppt的网站叫什么名字sem和seo是什么职位
  • 临沂网站建设有哪些公司网页制作模板
  • UDP多线程在线咨询
  • 微信小程序原生如何使用画布生成名片
  • Postman介绍和安装,发送带参数的GET请求
  • 海西州wap网站建设公司网站布局怎么用dw做
  • Python入门经典题目
  • 佛山网站建设乐云seo在线制作wordpress媒体库略缩图
  • 网站的服务器怎么做的网站模板软件
  • Go Web 编程快速入门 07.4 - 模板(4):组合模板与逻辑控制
  • 【Canvas与旗帜】标准加拿大枫叶旗
  • LwIP协议栈MPA多进程架构
  • 【JUnit实战3_12】第七章:用 Stub 模拟进行粗粒度测试
  • 东莞网络推广网站做静态网站软件
  • 想建网站做优化网站建设服务费 印花税
  • verilog阻塞赋值和非阻塞赋值的区别