Configure Nginx Template on ZABBIX 4
ZABBIX 4 에서 Nginx 모니터링 템플릿 설정 가이드
ZABBIX 4 에서 Nginx 를 모니터링 하기 위한 템플릿을 설정하는 방법입니다. Nginx 의 stub_status 모듈을 이용하는 방법이기 때문에 반드시 stub_status 모듈이 활성화 되어 있어야 합니다.
nginx site config 파일 생성
: vi /data/apps/ln/nginx/conf/sites-enabled/nginx_status.conf
server { listen 10061; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } }
nginx 재시작
[root@10-19-10-10 /]# systemctl restart nginx
nginx check file 추가
: vi /etc/zabbix/bin/nginx_status.bash
#!/bin/bash ################################################## # AUTHOR: coulson <fallboyz@umount.net> # WEBSITE: https://umount.net # Description:nginx monitoring on zabbix # Note:Zabbix 2.2 or higher # DateTime: 2014-11-22 ################################################## # Zabbix requested parameter KEYNAME="$1" # Nginx defaults STATUS_URL="http://localhost:10061/nginx_status" WGET="/usr/bin/wget" CURL="/usr/bin/curl" if [ ! -f $WGET ]; then USE_CURL=true fi ERROR_WRONG_PARAM="0.0009" ERROR_DATA="0.0008" if [ ! $USE_CURL = true ]; then STATS=$($WGET_BIN -q $STATUS_URL -O - 2> /dev/null) else STATS=$($CURL -S -s $STATUS_URL) fi if [ $? -ne 0 -o -z "$STATS" ]; then echo $ERROR_DATA exit 1 fi case $KEYNAME in active_connections) echo "$STATS" | head -1 | awk '{print $3}' ;; accepted_connections) echo "$STATS" | grep -Ev '[a-zA-Z]' | awk '{print $1}' ;; handled_connections) echo "$STATS" | grep -Ev '[a-zA-Z]' | awk '{print $2}' ;; handled_requests) echo "$STATS" | grep -Ev '[a-zA-Z]' | awk '{print $3}' ;; reading) echo "$STATS" | tail -1 | awk '{print $2}' ;; writing) echo "$STATS" | tail -1 | awk '{print $4}' ;; waiting) echo "$STATS" | tail -1 | awk '{print $6}' ;; *) echo $ERROR_WRONG_PARAM exit 1 ;; esac exit 0
UserParameter 파일 추가
: vi /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx[*], bash /etc/zabbix/bin/nginx_status.bash "$1" "$2"
자빅스 재시작
[root@10-19-10-10 /]# systemctl restart zabbix_agentd
템플릿 파일 임포트 (nginx_template.xml)
host에 template 적용
적용 후 그래프 확인