New monitoring stuff
This commit is contained in:
		
							
								
								
									
										64
									
								
								bin/nginx-check.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								bin/nginx-check.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| #!/bin/bash | ||||
| ################################## | ||||
| # Zabbix monitoring script | ||||
| # | ||||
| # nginx: | ||||
| #  - anything available via nginx stub-status module | ||||
| # | ||||
| ################################## | ||||
| # Contact: | ||||
| #  vincent.viallet@gmail.com | ||||
| ################################## | ||||
| # ChangeLog: | ||||
| #  20100922	VV	initial creation | ||||
| ################################## | ||||
|  | ||||
| # Zabbix requested parameter | ||||
| ZBX_REQ_DATA="$1" | ||||
| ZBX_REQ_DATA_URL="$2" | ||||
|  | ||||
| # Nginx defaults | ||||
| NGINX_STATUS_DEFAULT_URL="http://localhost:10061/nginx_status" | ||||
| WGET_BIN="/usr/bin/wget" | ||||
|  | ||||
| # | ||||
| # Error handling: | ||||
| #  - need to be displayable in Zabbix (avoid NOT_SUPPORTED) | ||||
| #  - items need to be of type "float" (allow negative + float) | ||||
| # | ||||
| ERROR_NO_ACCESS_FILE="-0.9900" | ||||
| ERROR_NO_ACCESS="-0.9901" | ||||
| ERROR_WRONG_PARAM="-0.9902" | ||||
| ERROR_DATA="-0.9903" # either can not connect /	bad host / bad port | ||||
|  | ||||
| # Handle host and port if non-default | ||||
| if [ ! -z "$ZBX_REQ_DATA_URL" ]; then | ||||
|   URL="$ZBX_REQ_DATA_URL" | ||||
| else | ||||
|   URL="$NGINX_STATUS_DEFAULT_URL" | ||||
| fi | ||||
|  | ||||
| # save the nginx stats in a variable for future parsing | ||||
| NGINX_STATS=$($WGET_BIN -q $URL -O - 2> /dev/null) | ||||
|  | ||||
| # error during retrieve | ||||
| if [ $? -ne 0 -o -z "$NGINX_STATS" ]; then | ||||
|   echo $ERROR_DATA | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| #  | ||||
| # Extract data from nginx stats | ||||
| # | ||||
| case $ZBX_REQ_DATA in | ||||
|   active_connections)   echo "$NGINX_STATS" | head -1             | cut -f3 -d' ';; | ||||
|   accepted_connections) echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f2 -d' ';; | ||||
|   handled_connections)  echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f3 -d' ';; | ||||
|   handled_requests)     echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f4 -d' ';; | ||||
|   reading)              echo "$NGINX_STATS" | tail -1             | cut -f2 -d' ';; | ||||
|   writing)              echo "$NGINX_STATS" | tail -1             | cut -f4 -d' ';; | ||||
|   waiting)              echo "$NGINX_STATS" | tail -1             | cut -f6 -d' ';; | ||||
|   *) echo $ERROR_WRONG_PARAM; exit 1;; | ||||
| esac | ||||
|  | ||||
| exit 0 | ||||
		Reference in New Issue
	
	Block a user
	 kamil
					kamil