Zabbix 는 Nginx 와 PHP - FPM 상 태 를 모니터링 합 니 다.
Nginx 를 컴 파일 할 때 파 라 메 터 를 추가 합 니 다. --with-http_stub_status_module
설치 후 nginx - V | grep httpstub_status_module 상태 모듈 이 설치 되 어 있 는 지 확인
PHP - FPM 도 자체 모니터링 을 통 해 pp - fpm. conf 에 설정 합 니 다.
pm.status_path = /php-fpm_status
PHP - FPM 상 태 를 URL 로 가 져 올 수 있 습 니 다.
참고 문장
https://rtcamp.com/tutorials/php/fpm-status-page/
nginx 추가status.conf
server {
listen 88 ;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
# allow 10.4.1.125;
deny all;
}
location /php-fpm_status {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
$ curl 127.0.0.1:88/nginx_status
Active connections: 1
server accepts handled requests
788163 788163 788163
Reading: 0 Writing: 1 Waiting: 0
Active connections
The current number of active client connections including
Waiting
connections. 활성 클 라 이언 트 연결 수, 대기 상태 에 있 는 연결 수 포함
accepts
The total number of accepted client connections.
받 은 클 라 이언 트 연결 총수
handled
The total number of handled connections. Generally, the parameter value is the same as
accepts
unless some resource limits have been reached 요청 한 총 수 를 처리 합 니 다.일반적으로 이 값 은 accepts 값 과 같 습 니 다.일부 자원 제한 에 이 르 지 않 는 한예 를 들 어 워 커 설정connections 1024; 워 커 프로 세 스 가 열 수 있 는 최대 병렬 연결 수 를 설정 합 니 다.
requests
The total number of client requests.
클 라 이언 트 요청 총수
Reading
The current number of connections where nginx is reading the request header.
현재 Nginx 에서 요청 헤더 의 연결 수 를 읽 고 있 습 니 다.
Writing
The current number of connections where nginx is writing the response back to the client.
현재 Nginx 는 응답 을 클 라 이언 트 의 연결 수량 으로 되 돌려 쓰 고 있 습 니 다.
Waiting
The current number of idle client connections waiting for a request.
현재 요청 을 기다 리 고 있 는 유 휴 클 라 이언 트 연결 수량
$ curl 127.0.0.1:88/php-fpm_status
pool: www
process manager: dynamic
start time: 16/Nov/2014:13:29:11 +0800
start since: 77844
accepted conn: 202788
listen queue: 0
max listen queue: 1
listen queue len: 128
idle processes: 6
active processes: 1
total processes: 7
max active processes: 4
max children reached: 0
slow requests: 0
pool pool 이름
process manager static or dynamic
start time 시작 시간
start since 얼마나 시 작 했 습 니까? 초 단위 입 니 다.
accepted conn pool 에서 받 은 요청 수량
listen queue the number of request in the queue of pending connections. 이 값 이 0 이 아니라면 PHP - FPM 프로 세 스 수 를 늘 리 는 것 이 좋 습 니 다.
max listen queue the maximum number of requests in the queue of pending connections since FPM has started
listen queue len the size of the socket queue of pending connections
idle processes the number of idle processes
active processes the number of active processes
total processes the number of idle + active processes
max active processes the maximum number of active processes since FPM has started
max children reached number of times, the process limit has been reached, when pm tries to start more children. that value is not zero, then you may need to increase max process limit for your PHP - FPM pool. 이것 처럼, you can find other useful information to tweak your pool better way. 이 값 이 0 이 아니라면 최대 프로 세 스 의 제한 을 늘 리 는 것 이 좋 습 니 다.
slow requests 만약 이 값 이 0 이 아니라면, 처리 가 느 린 프로그램 이 있 음 을 나타 낸다
$ curl 127.0.0.1:88/php-fpm_status?full
pool: www
process manager: dynamic
start time: 17/Nov/2014:16:09:17 +0800
start since: 1139
accepted conn: 3354
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 5
active processes: 1
total processes: 6
max active processes: 2
max children reached: 0
slow requests: 0
************************
pid: 19921
state: Idle
start time: 17/Nov/2014:16:09:17 +0800
start since: 1139
requests: 563
request duration: 223
request method: GET
request URI: /php-fpm_status
content length: 0
user: -
script: -
last request cpu: 0.00
last request memory: 262144
curl 127.0.0.1:88/php-fpm_status?json
curl 127.0.0.1:88/php-fpm_status?html
curl 127.0.0.1:88/php-fpm_status?xml
2. Nginx 와 PHP - FPM 상태 정 보 를 작성 하여 스 크 립 트 가 져 오기
nginx_status.sh
#!/bin/bash
#check nginx status
#ip=$(ifconfig eth0|grep "inet addr"|sed 's/^.*addr://'|awk '{print $1}')
#echo $ip
ip=127.0.0.1
port=88
#echo $ip:$port
function active() {
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Active"|awk '{print $NF}'
}
function reading() {
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Reading"|awk '{print $2}'
}
function writing() {
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Writing"|awk '{print $4}'
}
function waiting() {
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Waiting"|awk '{print $6}'
}
function accepts() {
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|awk 'NR==3{print $1}'
}
function handled() {
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|awk 'NR==3{print $2}'
}
function requests(){
/usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|awk 'NR==3{print $3}'
}
case $1 in
active)
active
;;
reading)
reading
;;
writing)
writing
;;
waiting)
waiting
;;
accepts)
accepts
;;
handled)
handled
;;
requests)
requests
;;
*)
exit 1
;;
esac
php-fpm_status.sh
#!/bin/bash
#check php-fpm status
ip=127.0.0.1
port=88
function idle() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "idle processes"|awk '{print $3}'
}
function active() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "active processes"|awk '{print $3}'|grep -v "processes"
}
function total() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "total processes"|awk '{print $3}'|grep -v "processes"
}
function mactive() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "max active processes"|awk '{print $4}'
}
function conn() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "accepted conn"|awk '{print $3}'
}
function since() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "start since"|awk '{print $3}'
}
function slow() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "slow requests"|awk '{print $3}'
}
function listenqueue() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "listen queue:"|grep -v "max"|awk '{print $3}'
}
function maxlistenqueue() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "max listen queue:"|awk '{print $4}'
}
function listenqueuelen() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "listen queue len:"|awk '{print $4}'
}
function maxchildren() {
/usr/bin/curl http://$ip:$port/php-fpm_status 2>/dev/null|grep "max children reached:"|awk '{print $4}'
}
$1
3. zabbix 의 하위 프로필 추가
nginx_status_zabbix.conf
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=,
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
# /usr/local/zabbix/bin/nginx_status.sh
UserParameter=nginx.accepts,/usr/local/zabbix/bin/nginx_status.sh accepts
UserParameter=nginx.handled,/usr/local/zabbix/bin/nginx_status.sh handled
UserParameter=nginx.requests,/usr/local/zabbix/bin/nginx_status.sh requests
UserParameter=nginx.connections.active,/usr/local/zabbix/bin/nginx_status.sh active
UserParameter=nginx.connections.reading,/usr/local/zabbix/bin/nginx_status.sh reading
UserParameter=nginx.connections.writing,/usr/local/zabbix/bin/nginx_status.sh writing
UserParameter=nginx.connections.waiting,/usr/local/zabbix/bin/nginx_status.sh waiting
php-fpm_status.conf
UserParameter=php-fpm.idle.processes,/usr/local/zabbix/bin/php-fpm_status.sh idle
UserParameter=php-fpm.total.processes,/usr/local/zabbix/bin/php-fpm_status.sh total
UserParameter=php-fpm.active.processes,/usr/local/zabbix/bin/php-fpm_status.sh active
UserParameter=php-fpm.max.active.processes,/usr/local/zabbix/bin/php-fpm_status.sh mactive
UserParameter=php-fpm.listen.queue.len,/usr/local/zabbix/bin/php-fpm_status.sh listenqueuelen
UserParameter=php-fpm.listen.queue,/usr/local/zabbix/bin/php-fpm_status.sh listenqueue
UserParameter=php-fpm.start.since,/usr/local/zabbix/bin/php-fpm_status.sh since
UserParameter=php-fpm.accepted.conn,/usr/local/zabbix/bin/php-fpm_status.sh conn
UserParameter=php-fpm.slow.requests,/usr/local/zabbix/bin/php-fpm_status.sh slow
UserParameter=php-fpm.max.listen.queue,/usr/local/zabbix/bin/php-fpm_status.sh maxlistenqueue
UserParameter=php-fpm.max.children,/usr/local/zabbix/bin/php-fpm_status.sh maxchildren
4. zabbix 모니터링 템 플 릿 추가
템 플 릿 첨부 참조
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.