찾다
백엔드 개발PHP 튜토리얼zabbix 监控 nginx 跟 php-fpm

zabbix 监控 nginx 和 php-fpm

监控常规的任务自然少不了 nginx 和 php-fpm 的监控,最近也是重新开始整理 zabbix,重新学习之,里面的脚本,配置文件以及模板都来源《zabbix 企业级分布式监控系统》一书,根据自身环境适当修改

一、监控 nginx server

1.1 配置 nginx 和 php-fpm

php-fpm 中 [www] 段中配置文件新增

<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>
<span style="height: 20px;" class="line">[www]</span><span style="height: 20px;" class="line">pm<span class="class">.status_path</span> = /fpm_status.php</span>

?

nginx 配置新增 server 段

<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>3456789101112131415161718
<span style="height: 20px;" class="line"><span style="color: #3e999f;" class="title">server</span> {</span><span style="height: 20px;" class="line">    <span style="color: #3e999f;" class="title">listen</span>  <span style="color: #f5871f;" class="number">127.0.0.1:80</span>;</span><span style="height: 20px;" class="line">    <span style="color: #3e999f;" class="title">allow</span> <span style="color: #f5871f;" class="number">127.0.0.1</span>;</span><span style="height: 20px;" class="line">    <span style="color: #3e999f;" class="title">deny</span> all;			<span style="color: #8e908c;" class="comment"># 这里两行控制权限</span></span><span style="height: 20px;" class="line">    <span style="color: #8e908c;" class="comment"># 开启 nginx 状态页</span></span><span style="height: 20px;" class="line">    <span style="color: #3e999f;" class="title">location</span> /nginxstatus {</span><span style="height: 20px;" class="line">        <span style="color: #3e999f;" class="title">stub_status</span> <span style="color: #f5871f;" class="built_in">on</span>;</span><span style="height: 20px;" class="line">        <span style="color: #3e999f;" class="title">access_log</span> <span style="color: #f5871f;" class="built_in">off</span>;</span><span style="height: 20px;" class="line">    }</span><span style="height: 20px;" class="line">	<span style="color: #8e908c;" class="comment"># 开启 php-fpm 状态页</span></span><span style="height: 20px;" class="line">    <span style="color: #3e999f;" class="title">location</span> <span style="color: #c82829;" class="regexp">~ ^/(fpm_status)</span> {</span><span style="height: 20px;" class="line">            <span style="color: #3e999f;" class="title">fastcgi_pass</span> <span style="color: #f5871f;" class="number">127.0.0.1:9000</span>;</span><span style="height: 20px;" class="line">            <span style="color: #3e999f;" class="title">fastcgi_index</span> index.php;</span><span style="height: 20px;" class="line">            <span style="color: #3e999f;" class="title">include</span> fastcgi.conf;</span><span style="height: 20px;" class="line">    }</span><span style="height: 20px;" class="line">}</span>

?

访问测试,确保可以查看状态信息

<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>
<span style="height: 20px;" class="line">curl <span style="color: #718c00;" class="string">http:</span><span style="color: #8e908c;" class="comment">//127.0.0.1/nginxstatus</span></span><span style="height: 20px;" class="line">curl <span style="color: #718c00;" class="string">http:</span><span style="color: #8e908c;" class="comment">//127.0.0.1/fpm_status.php</span></span>

1.2 配置检测脚本和 userparameter

我配置了 agent 主动发送数据到 server 的 active 模式

首先看目录结构

<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>3456789
<span style="height: 20px;" class="line"># tree /etc/zabbix/</span><span style="height: 20px;" class="line">/etc/zabbix/</span><span style="height: 20px;" class="line">├── scripts</span><span style="height: 20px;" class="line">│?? ├── check_nginx_status.<span style="color: #8959a8;" class="keyword">sh</span></span><span style="height: 20px;" class="line">│?? └── check_phpfpm.<span style="color: #8959a8;" class="keyword">sh</span></span><span style="height: 20px;" class="line">├── zabbix_agentd.<span style="color: #8959a8;" class="keyword">conf</span></span><span style="height: 20px;" class="line">└── zabbix_agentd.<span style="color: #f5871f;" class="literal">d</span></span><span style="height: 20px;" class="line">    ├── userparameter_nginx.<span style="color: #8959a8;" class="keyword">conf</span></span><span style="height: 20px;" class="line">    └── userparameter_phpfpm.<span style="color: #8959a8;" class="keyword">conf</span></span>

?

下面分别对应每个文件

  • userparameter_nginx.conf
<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>34567
<span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.accepts</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> accepts</span><span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.handled</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> handled</span><span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.requests</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> requests</span><span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.connections</span><span class="class">.active</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> active</span><span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.connections</span><span class="class">.reading</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> reading</span><span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.connections</span><span class="class">.writing</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> writing</span><span style="height: 20px;" class="line">UserParameter=nginx<span class="class">.connections</span><span class="class">.waiting</span>,/etc/zabbix/scripts/check_nginx_status<span class="class">.sh</span> waiting</span>
  • userparameter_phpfpm.conf
<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>3456789101112
<span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.pool</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> pool</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.process</span><span class="class">.manager</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> process_manager</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.start</span><span class="class">.since</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> start_since</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.accepted</span><span class="class">.conn</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> accepted_conn</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.listen</span><span class="class">.queue</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> listen_queue</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.max</span><span class="class">.listen</span><span class="class">.queue</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> max_listen_queue</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.listen</span><span class="class">.queue</span><span class="class">.len</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> listen_queue_len</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.idle</span><span class="class">.processes</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> idle_processes</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.active</span><span class="class">.processes</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> active_processes</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.total</span><span class="class">.processes</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> total_processes</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.max</span><span class="class">.active</span><span class="class">.processes</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> max_active_processes</span><span style="height: 20px;" class="line">UserParameter=phpfpm<span class="class">.status</span><span class="class">.max</span><span class="class">.children</span><span class="class">.reached</span>,/etc/zabbix/scripts/check_phpfpm<span class="class">.sh</span> max_children_reached</span>
  • check_nginx_status.sh
<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>3456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
<span style="height: 20px;" class="line"><span class="shebang">#!/bin/bash</span></span><span style="height: 20px;" class="line"><span style="color: #f5871f;" class="built_in">source</span> /etc/bashrc >/dev/null <span style="color: #f5871f;" class="number">2</span>>&<span style="color: #f5871f;" class="number">1</span></span><span style="height: 20px;" class="line"><span style="color: #f5871f;" class="built_in">source</span> /etc/profile  >/dev/null <span style="color: #f5871f;" class="number">2</span>>&<span style="color: #f5871f;" class="number">1</span></span><span style="height: 20px;" class="line">nginxstatus=http://<span style="color: #f5871f;" class="number">127.0</span>.<span style="color: #f5871f;" class="number">0.1</span>/nginxstatus</span><span style="height: 20px;" class="line"><span style="color: #8e908c;" class="comment"># Functions to return nginx stats</span></span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> checkavailable {</span><span style="height: 20px;" class="line">    code=$(curl -o /dev/null <span class="operator">-s</span> -w %{http_code} <span style="color: #c82829;" class="variable">${nginxstatus}</span>)</span><span style="height: 20px;" class="line">    <span style="color: #8959a8;" class="keyword">if</span> [ <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${code}</span>"</span> == <span style="color: #718c00;" class="string">"200"</span> ]</span><span style="height: 20px;" class="line">    <span style="color: #8959a8;" class="keyword">then</span></span><span style="height: 20px;" class="line">        <span style="color: #f5871f;" class="built_in">return</span> <span style="color: #f5871f;" class="number">1</span></span><span style="height: 20px;" class="line">    <span style="color: #8959a8;" class="keyword">else</span></span><span style="height: 20px;" class="line">        <span style="color: #f5871f;" class="built_in">echo</span>  <span style="color: #f5871f;" class="number">0</span></span><span style="height: 20px;" class="line">    <span style="color: #8959a8;" class="keyword">fi</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> active {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | grep <span style="color: #718c00;" class="string">'Active'</span> | awk <span style="color: #718c00;" class="string">'{print $3}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> reading {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | grep <span style="color: #718c00;" class="string">'Reading'</span> | awk <span style="color: #718c00;" class="string">'{print $2}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> writing {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | grep <span style="color: #718c00;" class="string">'Writing'</span> | awk <span style="color: #718c00;" class="string">'{print $4}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> waiting {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | grep <span style="color: #718c00;" class="string">'Waiting'</span> | awk <span style="color: #718c00;" class="string">'{print $6}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> accepts {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | awk NR==<span style="color: #f5871f;" class="number">3</span> | awk <span style="color: #718c00;" class="string">'{print $1}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> handled {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | awk NR==<span style="color: #f5871f;" class="number">3</span> | awk <span style="color: #718c00;" class="string">'{print $2}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">function</span> requests {</span><span style="height: 20px;" class="line">    checkavailable|| curl <span class="operator">-s</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">${nginxstatus}</span>"</span> | awk NR==<span style="color: #f5871f;" class="number">3</span> | awk <span style="color: #718c00;" class="string">'{print $3}'</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">case</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">$1</span>"</span> <span style="color: #8959a8;" class="keyword">in</span></span><span style="height: 20px;" class="line">    active)</span><span style="height: 20px;" class="line">        active</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    reading)</span><span style="height: 20px;" class="line">        reading</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    writing)</span><span style="height: 20px;" class="line">        writing</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    waiting)</span><span style="height: 20px;" class="line">        waiting</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    accepts)</span><span style="height: 20px;" class="line">        accepts</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    handled)</span><span style="height: 20px;" class="line">        handled</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    requests)</span><span style="height: 20px;" class="line">        requests</span><span style="height: 20px;" class="line">        ;;</span><span style="height: 20px;" class="line">    *)</span><span style="height: 20px;" class="line">        <span style="color: #f5871f;" class="built_in">echo</span> <span style="color: #718c00;" class="string">"Usage: <span style="color: #c82829;" class="variable">$0</span> {active |reading |writing |waiting |accepts |handled |requests }"</span></span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">esac</span></span>
  • check_phpfpm.sh
<span style="height: 20px;" class="line">1</span><span style="height: 20px;" class="line">2</span>3456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
<span style="height: 20px;" class="line"><span class="shebang">#!/bin/bash</span></span><span style="height: 20px;" class="line"><span style="color: #f5871f;" class="built_in">source</span> /etc/bashrc >/dev/null <span style="color: #f5871f;" class="number">2</span>>&<span style="color: #f5871f;" class="number">1</span></span><span style="height: 20px;" class="line"><span style="color: #f5871f;" class="built_in">source</span> /etc/profile  >/dev/null <span style="color: #f5871f;" class="number">2</span>>&<span style="color: #f5871f;" class="number">1</span></span><span style="height: 20px;" class="line">LOG_FILE=/var/<span style="color: #f5871f;" class="built_in">log</span>/zabbix/phpfpmstatus.log</span><span style="height: 20px;" class="line">curl http://<span style="color: #f5871f;" class="number">127.0</span>.<span style="color: #f5871f;" class="number">0.1</span>/fpm_status.php ><span style="color: #c82829;" class="variable">${LOG_FILE}</span> <span style="color: #f5871f;" class="number">2</span>>&<span style="color: #f5871f;" class="number">1</span></span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">pool</span></span>(){</span><span style="height: 20px;" class="line">     awk <span style="color: #718c00;" class="string">'/pool/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">process_manager</span></span>() {</span><span style="height: 20px;" class="line">     awk <span style="color: #718c00;" class="string">'/process manager/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">start_since</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^start since:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">accepted_conn</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^accepted conn:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">listen_queue</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^listen queue:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">max_listen_queue</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^max listen queue:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">listen_queue_len</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^listen queue len:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">idle_processes</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^idle processes:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">active_processes</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^active processes:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">total_processes</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^total processes:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">max_active_processes</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^max active processes:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #4271ae;" class="function"><span style="color: #3e999f;" class="title">max_children_reached</span></span>(){</span><span style="height: 20px;" class="line">    awk <span style="color: #718c00;" class="string">'/^max children reached:/ {print $NF}'</span> <span style="color: #c82829;" class="variable">${LOG_FILE}</span></span><span style="height: 20px;" class="line">}</span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">case</span> <span style="color: #718c00;" class="string">"<span style="color: #c82829;" class="variable">$1</span>"</span> <span style="color: #8959a8;" class="keyword">in</span></span><span style="height: 20px;" class="line">pool)</span><span style="height: 20px;" class="line">    pool</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">process_manager)</span><span style="height: 20px;" class="line">    process_manager</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">start_since)</span><span style="height: 20px;" class="line">    start_since</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">accepted_conn)</span><span style="height: 20px;" class="line">    accepted_conn</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">listen_queue)</span><span style="height: 20px;" class="line">    listen_queue</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">max_listen_queue)</span><span style="height: 20px;" class="line">    max_listen_queue</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">listen_queue_len)</span><span style="height: 20px;" class="line">    listen_queue_len</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">idle_processes)</span><span style="height: 20px;" class="line">    idle_processes</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">active_processes)</span><span style="height: 20px;" class="line">    active_processes</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">total_processes)</span><span style="height: 20px;" class="line">    total_processes</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">max_active_processes)</span><span style="height: 20px;" class="line">    max_active_processes</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">max_children_reached)</span><span style="height: 20px;" class="line">    max_children_reached</span><span style="height: 20px;" class="line">    ;;</span><span style="height: 20px;" class="line">*)</span><span style="height: 20px;" class="line">    <span style="color: #f5871f;" class="built_in">echo</span> <span style="color: #718c00;" class="string">"Usage: <span style="color: #c82829;" class="variable">$0</span> {pool|process_manager|start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}"</span></span><span style="height: 20px;" class="line"><span style="color: #8959a8;" class="keyword">esac</span></span>

以上全部配置完成之后重启 agent 即可

1.3 添加模板,调用

松爷的书里提供了大量的模板,如果不想自己重写生成模板,直接拿着这个模板进行根据自身的环境修改即可

  • nginx 的模板
  • php-fpm 的模板

最后呈现出来的效果如下图(zatree中)
zabbix-nginx-phpfpm.jpg

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP는 사용자 세션을 어떻게 식별합니까?PHP는 사용자 세션을 어떻게 식별합니까?May 01, 2025 am 12:23 AM

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션을 확보하기위한 모범 사례는 무엇입니까?PHP 세션을 확보하기위한 모범 사례는 무엇입니까?May 01, 2025 am 12:22 AM

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

PHP 세션 파일은 기본적으로 어디에 저장됩니까?PHP 세션 파일은 기본적으로 어디에 저장됩니까?May 01, 2025 am 12:15 AM

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;

PHP 세션에서 데이터를 어떻게 검색합니까?PHP 세션에서 데이터를 어떻게 검색합니까?May 01, 2025 am 12:11 AM

toretrievedatafromAphPsession, startSessionstart_start () andaccessvariblesinthe $ _sessionArray.forexample : 1) startthessession : session_start (). 2) retrievedata : $ _ session [ 'username']; echo "Welcome,". $ username;

세션을 사용하여 쇼핑 카트를 구현할 수있는 방법은 무엇입니까?세션을 사용하여 쇼핑 카트를 구현할 수있는 방법은 무엇입니까?May 01, 2025 am 12:10 AM

세션을 사용하여 효율적인 쇼핑 카트 시스템을 구축하는 단계에는 다음이 포함됩니다. 1) 세션의 정의와 기능을 이해합니다. 세션은 요청에 따라 사용자 상태를 유지하는 데 사용되는 서버 측 스토리지 메커니즘입니다. 2) 쇼핑 카트에 제품 추가와 같은 기본 세션 관리를 구현합니다. 3) 제품 수량 관리 및 삭제 지원 고급 사용으로 확장; 4) 세션 데이터를 지속하고 보안 세션 식별자를 사용하여 성능 및 보안을 최적화합니다.

PHP에서 인터페이스를 어떻게 생성하고 사용합니까?PHP에서 인터페이스를 어떻게 생성하고 사용합니까?Apr 30, 2025 pm 03:40 PM

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

crypt ()와 password_hash ()의 차이점은 무엇입니까?crypt ()와 password_hash ()의 차이점은 무엇입니까?Apr 30, 2025 pm 03:39 PM

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

PHP의 크로스 사이트 스크립팅 (XSS)을 어떻게 방지 할 수 있습니까?PHP의 크로스 사이트 스크립팅 (XSS)을 어떻게 방지 할 수 있습니까?Apr 30, 2025 pm 03:38 PM

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경