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