You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					123 lines
				
				2.8 KiB
			
		
		
			
		
	
	
					123 lines
				
				2.8 KiB
			| 
											2 years ago
										 | #!/bin/bash | ||
|  | # info: update httpd rrd | ||
|  | # options: PERIOD | ||
|  | # | ||
|  | # example: v-update-sys-rrd-httpd | ||
|  | # | ||
|  | # This function is for updating apache rrd database and graphic. | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                Variables & Functions                     # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | # Argument definition | ||
|  | period=${1-daily} | ||
|  | 
 | ||
|  | # Includes | ||
|  | # shellcheck source=/etc/hestiacp/hestia.conf | ||
|  | source /etc/hestiacp/hestia.conf | ||
|  | # shellcheck source=/usr/local/hestia/func/main.sh | ||
|  | source $HESTIA/func/main.sh | ||
|  | # load config file | ||
|  | source_conf "$HESTIA/conf/hestia.conf" | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                       Action                             # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | # Switching on time period | ||
|  | case $period in | ||
|  | 	daily) | ||
|  | 		start='-1d' | ||
|  | 		end='now' | ||
|  | 		grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M' | ||
|  | 		;; | ||
|  | 	weekly) | ||
|  | 		start='-7d' | ||
|  | 		end='now' | ||
|  | 		grid='HOUR:8:DAY:1:DAY:1:0:%a %d' | ||
|  | 		;; | ||
|  | 	monthly) | ||
|  | 		start='-1m' | ||
|  | 		end='now' | ||
|  | 		grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d' | ||
|  | 		;; | ||
|  | 	yearly) | ||
|  | 		start='-1y' | ||
|  | 		end='now' | ||
|  | 		grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b' | ||
|  | 		;; | ||
|  | 	*) exit "$E_RRD" ;; | ||
|  | esac | ||
|  | 
 | ||
|  | # Checking directory | ||
|  | if [ ! -d "$RRD/web" ]; then | ||
|  | 	mkdir $RRD/web | ||
|  | fi | ||
|  | 
 | ||
|  | # Checking database | ||
|  | if [ ! -e "$RRD/web/httpd.rrd" ]; then | ||
|  | 	# Adding database | ||
|  | 	rrdtool create $RRD/web/httpd.rrd --step $RRD_STEP \ | ||
|  | 		DS:A:GAUGE:600:U:U \ | ||
|  | 		RRA:AVERAGE:0.5:1:600 \ | ||
|  | 		RRA:AVERAGE:0.5:6:700 \ | ||
|  | 		RRA:AVERAGE:0.5:24:775 \ | ||
|  | 		RRA:AVERAGE:0.5:288:797 \ | ||
|  | 		RRA:MAX:0.5:1:600 \ | ||
|  | 		RRA:MAX:0.5:6:700 \ | ||
|  | 		RRA:MAX:0.5:24:775 \ | ||
|  | 		RRA:MAX:0.5:288:797 | ||
|  | fi | ||
|  | 
 | ||
|  | # Parsing data | ||
|  | if [ "$period" = 'daily' ]; then | ||
|  | 	server_status=$(wget -qO- http://localhost:8081/server-status \ | ||
|  | 		| grep 'currently being processed' \ | ||
|  | 		| cut -f 2 -d '>' \ | ||
|  | 		| sed 's/requests currently being processed, //' \ | ||
|  | 		| cut -f 1,2 -d ' ') | ||
|  | 	active=$(echo "$server_status" | cut -f 1 -d ' ') | ||
|  | 	idle=$(echo "$server_status" | cut -f 1 -d ' ') | ||
|  | 	a=$((active + idle)) | ||
|  | 
 | ||
|  | 	# Updating rrd database | ||
|  | 	rrdtool update $RRD/web/httpd.rrd N:$a | ||
|  | fi | ||
|  | 
 | ||
|  | # Updating rrd graph | ||
|  | rrdtool graph $RRD/web/$period-httpd.png \ | ||
|  | 	--imgformat PNG \ | ||
|  | 	--height="150" \ | ||
|  | 	--width="670" \ | ||
|  | 	--start "$start" \ | ||
|  | 	--end "$end" \ | ||
|  | 	--vertical-label "Connections" \ | ||
|  | 	--x-grid "$grid" \ | ||
|  | 	-c "BACK#ffffff" \ | ||
|  | 	-c "SHADEA#ffffff" \ | ||
|  | 	-c "SHADEB#ffffff" \ | ||
|  | 	-c "FONT#555555" \ | ||
|  | 	-c "CANVAS#302c2d" \ | ||
|  | 	-c "GRID#666666" \ | ||
|  | 	-c "MGRID#AAAAAA" \ | ||
|  | 	-c "FRAME#302c2d" \ | ||
|  | 	-c "ARROW#FFFFFF" \ | ||
|  | 	DEF:a=$RRD/web/httpd.rrd:A:AVERAGE \ | ||
|  | 	COMMENT:'\r' \ | ||
|  | 	LINE1:a#fefda0:"Connections " \ | ||
|  | 	GPRINT:a:'LAST:Current\:''%8.0lf' \ | ||
|  | 	GPRINT:a:'MIN:Min\:''%8.0lf' \ | ||
|  | 	GPRINT:a:'MAX:Max\:''%8.0lf\j' &> /dev/null | ||
|  | result=$? | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                       Hestia                             # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | if [ "$result" -ne 0 ]; then | ||
|  | 	exit "$E_RRD" | ||
|  | fi | ||
|  | 
 | ||
|  | exit |