Steps for Zabbix monitoring nginx-status environment

Source: Internet
Author: User
Tags curl mkdir openssl

1, compile and install Nginx

wget http://nginx.org/download/nginx-1.9.15.tar.gz
Yum-y install pcre-devel pcre OpenSSL openssl-devel
Groupadd-r Nginx
Useradd-g nginx-r Nginx

Tar XF http://nginx.org/download/nginx-1.9.15.tar.gz
LN-SV nginx-1.9.15 Nginx
CD Nginx
./configure \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--user=nginx--group=nginx \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_mp4_module \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--HTTP-FASTCGI-TEMP-PATH=/VAR/TMP/NGINX/FASTCGI \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
Make && make install
MKDIR-PV/VAR/TMP/NGINX/{CLIENT,FASTCGI,PROXY,UWSGI}
Configuration file:

[Root@mysql-master nginx]# cat/etc/nginx/nginx.conf
User Nginx;
Worker_processes 1;
Worker_rlimit_nofile 51200;
Error_log/usr/local/nginx/logs/nginx_error.log Crit;
Pid/usr/local/nginx/logs/nginx.pid;
Events {
Worker_connections 1024;
}
HTTP {
Include Mime.types;
Sendfile on;
Server_names_hash_bucket_size 3526;
Server_names_hash_max_size 4096;
Log_format combined_realip ' $remote _addr $http _x_forwarded_for [$time _local] '
' $host ' $request _uri ' $status '
' $http _referer ', ' $http _user_agent ';
Tcp_nopush on;
Keepalive_timeout 30;
Client_header_timeout 3m;
Client_body_timeout 3m;
Send_timeout 3m;
Connection_pool_size 256;
Client_header_buffer_size 1k;
Large_client_header_buffers 8 4k;
Request_pool_size 4k;
Output_buffers 4 32k;
Postpone_output 1460;
Client_max_body_size 10m;
Client_body_buffer_size 256k;
Client_body_temp_path/usr/local/nginx/client_body_temp;
Proxy_temp_path/usr/local/nginx/proxy_temp;
Fastcgi_temp_path/usr/local/nginx/fastcgi_temp;
Fastcgi_intercept_errors on;
Tcp_nodelay on;
gzip on;
Gzip_min_length 1k;
Gzip_buffers 4 8k;
Gzip_comp_level 5;
Gzip_http_version 1.1;
Gzip_types text/plain application/x-javascript text/css text/htmapplication/xml;
server {
Listen 80;
server_name localhost;
Location/{
root HTML;
Index index.html index.htm;
}
Error_page 502 503 504/50x.html;
Location =/50x.html {
root HTML;
}
}
include/etc/nginx/conf.d/status.conf;
}
Status state

[Root@mysql-master nginx]# mkdir/etc/nginx/conf.d/
[Root@mysql-master nginx]# cat/etc/nginx/conf.d/status.conf
server {
Listen 81;
server_name localhost;
Location/nginx_status {
Stub_status on;
# auth_basic "only for VIPs";
# auth_basic_user_file/etc/nginx/users/.htpasswd;
Access_log off;
# Allow 127.0.0.0/24;
# Allow 192.168.0.0/24;
# Deny All;
}
}
[Root@mysql-master nginx]#
Nginx Startup script

[Root@mysql-master nginx]# Cat/etc/init.d/nginx
#!/bin/bash
# Chkconfig:-30 21
# Description:http Service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings

Nginx_sbin= "/usr/local/nginx/sbin/nginx"
nginx_conf= "/etc/nginx/nginx.conf"
Nginx_pid= "/var/run/nginx/nginx.pid"
Retval=0
Prog= "Nginx"

Start () {
Echo-n $ "Starting $prog:"
Mkdir-p/dev/shm/nginx_temp
Daemon $NGINX _sbin-c $NGINX _conf
Retval=$?
Echo
Return $RETVAL
}

Stop () {
Echo-n $ "Stopping $prog:"
Killproc-p $NGINX _pid $NGINX _sbin-term
Rm-rf/dev/shm/nginx_temp
Retval=$?
Echo
Return $RETVAL
}

Reload () {
Echo-n $ "Reloading $prog:"
Killproc-p $NGINX _pid $NGINX _sbin-hup
Retval=$?
Echo
Return $RETVAL
}

Restart () {
Stop
Start
}

Configtest () {
$NGINX _sbin-c $NGINX _conf-t
return 0
}

Case "$" in
Start
Start
;;
Stop
Stop
;;
Reload
Reload
;;
Restart)
Restart
;;
Configtest)
Configtest
;;
*)
echo $ "Usage: $ {start|stop|reload|restart|configtest}"
Retval=1
Esac

Exit $RETVAL
[Root@mysql-master nginx]#/etc/init.d/nginx Restart
stopping Nginx: [OK]
Starting Nginx: [OK]
[Root@mysql-master nginx]# Ss-tlnp|grep Nginx
LISTEN 0 128 *:80 *:* Users: (("Nginx", 74903,6), ("Nginx", 74904,6) )
LISTEN 0 128 *:81 *:* Users: (("Nginx", 74903,7), ("Nginx", 74904,7) )
[Root@mysql-master nginx]# mkdir/etc/zabbix/scripts/
Test:

[Root@mysql-master local]# Curl 192.168.158.130:81/nginx_status
Active connections:1
Server accepts handled requests
9 9 19
reading:0 writing:1 waiting:0
[Root@mysql-master local]#
Nginx Get key Script

[Root@mysql-master nginx]# mkdir/etc/zabbix/scripts/
[Root@mysql-master zabbix_agentd.d]# vim/etc/zabbix/scripts/nginx-status.sh
#!/bin/bash
Dbkup_date= ' DATE +%y%m%d '
Log= "/var/log/zabbix/nginx-status.log"
host= ' Ifconfig eth0 | Sed-n '/inet/{s/.*addr://;s/*//;p} '
port= "80"
Function Active {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
grep ' Active ' | awk ' {print $NF} '
}
function reading {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
grep ' Reading ' | awk ' {print $} '
}
function writing {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
grep ' Writing ' | awk ' {print $} '
}
function waiting {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
grep ' Waiting ' | awk ' {print $} '
}
function accepts {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
awk nr==3 | awk ' {print '} '
}
function handled {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
awk nr==3 | awk ' {print $} '
}
function requests {
/usr/bin/curl "http://$HOST: $PORT/nginx_status" 2>/dev/null|
awk nr==3 | awk ' {print $} '
}
# Run The requested function
$

chmod +x nginx-status.sh
Add to/etc/zabbix/zabbix_agentd.d/nginx-status.conf

Vim/etc/zabbix/zabbix_agentd.d/nginx-status.conf
Userparameter=nginx.accepts,/etc/zabbix/scripts/nginx-status.sh accepts
Userparameter=nginx.handled,/etc/zabbix/scripts/nginx-status.sh handled
userparameter=nginx.requests,/etc/zabbix/scripts/nginx-status.sh Requests
Userparameter=nginx.connections.active,/etc/zabbix/scripts/nginx-status.sh Active
userparameter=nginx.connections.reading,/etc/zabbix/scripts/nginx-status.sh Reading
userparameter=nginx.connections.writing,/etc/scripts/nginx-status.sh Writing
Userparameter=nginx.connections.waiting,/etc/zabbix/scripts/nginx-status.sh Waiting

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.