| 
									
										
										
										
											2017-12-13 16:13:10 +13:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 13:13:32 +02:00
										 |  |  | CONFIGFILE=/etc/snmp/freeradius.conf | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-13 16:13:10 +13:00
										 |  |  | # Set 0 for SNMP extend; set to 1 for Check_MK agent | 
					
						
							|  |  |  | AGENT=0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Set FreeRADIUS status_server details | 
					
						
							|  |  |  | RADIUS_SERVER='localhost' | 
					
						
							|  |  |  | RADIUS_PORT='18121' | 
					
						
							|  |  |  | RADIUS_KEY='adminsecret' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-16 01:05:49 +01:00
										 |  |  | if [ -f $CONFIGFILE ]; then | 
					
						
							| 
									
										
										
										
											2020-07-04 13:13:32 +02:00
										 |  |  |     . $CONFIGFILE | 
					
						
							| 
									
										
										
										
											2020-12-16 01:05:49 +01:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2020-07-04 13:13:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-13 16:13:10 +13:00
										 |  |  | # Default radclient access request, shouldn't need to be changed | 
					
						
							|  |  |  | RADIUS_STATUS_CMD='Message-Authenticator = 0x00, FreeRADIUS-Statistics-Type = 31, Response-Packet-Type = Access-Accept' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Pathes for grep and radclient executables, should work if within PATH | 
					
						
							|  |  |  | BIN_GREP="$(command -v grep)" | 
					
						
							|  |  |  | BIN_RADCLIENT="$(command -v radclient)" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ $AGENT == 1 ]; then | 
					
						
							|  |  |  |   echo "<<<freeradius>>>" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-18 12:24:30 +01:00
										 |  |  | RESULT=$(echo "$RADIUS_STATUS_CMD" | $BIN_RADCLIENT -x $RADIUS_SERVER:$RADIUS_PORT status $RADIUS_KEY) | 
					
						
							| 
									
										
										
										
											2017-12-13 16:13:10 +13:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-18 12:24:30 +01:00
										 |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Access-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Access-Accepts = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Access-Rejects = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Access-Challenges = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Auth-Responses = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Auth-Duplicate-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Auth-Malformed-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Auth-Invalid-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Auth-Dropped-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Auth-Unknown-Types = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Accounting-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Accounting-Responses = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Acct-Duplicate-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Acct-Malformed-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Acct-Invalid-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Acct-Dropped-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Acct-Unknown-Types = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Access-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Access-Accepts = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Access-Rejects = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Access-Challenges = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Auth-Responses = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Auth-Duplicate-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Auth-Malformed-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Auth-Invalid-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Auth-Dropped-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Auth-Unknown-Types = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Accounting-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Accounting-Responses = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Acct-Duplicate-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Acct-Malformed-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Acct-Invalid-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Acct-Dropped-Requests = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Total-Proxy-Acct-Unknown-Types = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-Len-Internal = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-Len-Proxy = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-Len-Auth = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-Len-Acct = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-Len-Detail = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-PPS-In = [[:digit:]]*' | 
					
						
							|  |  |  | echo "$RESULT" | grep -o 'FreeRADIUS-Queue-PPS-Out = [[:digit:]]*' |