Zabbix6.0监控常见应用案例Nginx和PHP

 

 

监控 Nginx 服务
nginx 模板参考:

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http

安装和配置nginx服务开启状态页

 

dnf -y install nginx 

vim /etc/nginx/nginx.conf

#添加下面三行,Zabbix默认监控/basic_status,此处为/status,需要和zabbix的模板定义的路径要保持一致

location = /basic_status {    
          stub_status;
        }

 

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

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

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
        location = /basic_status {
                  stub_status;
                }
    }

 

 

systemctl start nginx

nginx -s reload

systemctl enable --now nginx

 

http://192.168.3.63/basic_status

044c306d0cabb8f88a83bca7417a98a8

 

 

查看 nginx 内置模板和修改宏定义
使用内置模板:
Template App Nginx by HTTP (不需要安装zabbix agent.但是添加主机时,选中任意接口皆可)
Template App Nginx by Zabbix agent (需要安装zabbix agent)

 

添加监控的主机并关联模板
使用内置模板: Template App Nginx by HTTP 或者Template App Nginx by Zabbix agent

 

如果是通过Nginx by HTTP模板,无需安装Zabbix Agent,Interface可以任意选,但是添加主机时,必
须在客户端处指定Nginx服务器的真实地址

3e78662512dfc0179d9605decb9555eb

 

ac95c6a7bbaf238c79cca2d871802399

 

e3d33fe82dd7dd7f9aea859487e26e47

 

模拟用户请求数 并发数

dnf install -y httpd-tools

 while true ;do ab -c 100 -n 1000 http://192.168.3.63/;done

 

4bc5dc4b8000f0ff363fecb64426d2ed

 

f7a0737c9628d011b8399bbff8b5c070

 

debf7d6aa019a9f8e8108dd92bb9884b

 

0aba059b80ec146de2feabeb98854163

 

修改url路径

 location = /status {    
          stub_status;
        }

vim /etc/nginx/nginx.conf

nginx -s reload

 

修改宏定义

Zabbix 内置宏定义{$NGINX.STUB_STATUS.PATH}默认值为 basic_status

7b2f9c7c463b8847c57f730abf0de41f

 

修改模板中的宏定义值status页面的URL

85ebfbe8740db3d611bd20535a75d3ca

 

 在主机点击继承宏 修改

0aaf4611934714a3b0ca285f3330dd50

 

abe62cd78ed08e336fddb59fd20de6ee

 

 

6279d1667f64001b01dd9deebc33ca9a

 

 

9d5a26455350b8708e521bf1f9f0217b

 

监控 PHP-FPM 服务
php-fpm 模板参考:

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/php-fpm_agent

 

在前面nginx基础上实现 php-fpm 服务

dnf  -y install php-fpm nginx

vim /etc/php-fpm.d/www.conf

listen=127.0.0.1:9000
pm.status_path = /status                #Zabbix系统默认监控路径/status
ping.path = /ping

systemctl start php-fpm.service

systemctl enable --now php-fpm.service

 

#修改nginx的配置

vim /etc/nginx/conf.d/nginx.conf

cat > /etc/nginx/conf.d/nginx.conf << 'EOF'
server {
    listen 80;
    # 请替换为你的域名,如果没有域名可以写 _ 或 localhost
    server_name localhost; 
    # 请替换为你的实际网站根目录
    root /var/www/html;    
    index index.php index.html;

    location / {
        # 反向代理 PHP-FPM 状态页 9000 端口
        location ~ ^/(ping|status)$ {
            include fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        # 如果有其他 location 规则可以写在这里...
    }
}
EOF

mkdir -p /var/www/html

cat /var/www/html/index.php
<?php
phpinfo();
?>

nginx -s reload

nginx -t

#浏览器测试访问可以看到下面页面

ed98ade09590e46422ddd8f2201b4f31

 http://192.168.3.63/ping

 

修改内置模板
注意: 选择正确的模板
建议使用 Zabbix 内置模板 Template App PHP-FPM by Zabbix agent
注意: Template App PHP-FPM by HTTP 有问题,需要修改宏定义,如下修改两项宏定义
其中{$PHP_FPM.HOST}宏定义决定PHP服务器的地址,而和在Zabbix Web上添加的主机和interface无关

 

 

使用 Zabbix 内置模板 Template App PHP-FPM by Zabbix agent 

内置的宏{$PHP_FPM.STATUS.PAGE} 默认值为status,需要修改为当前PHP实际的路径
修改内置模板的宏定义,注意要和前面php-fpm的路径相匹配

 

关联内置模板到监控的主机
使用 Zabbix 内置模板 PHP-FPM by HTTP,需要修改宏定义 {$PHP_FPM.HOST} 指向PHP真实服务器的地址

d7c440bf5b03997f818a64708d46965c

 

使用 Zabbix 内置模板 Template App PHP-FPM by Zabbix agent

bf9555a34c70e6c5ffc3e3ee34585958

 

查看监控结果

 

posted @ 2026-10-28 19:01  minger_lcm  阅读(5)  评论(0)    收藏  举报