Added supported for all games supported by qstat. Version 0.3.
This commit is contained in:
parent
5576a5384f
commit
52e476b769
94
README
94
README
@ -1,8 +1,8 @@
|
||||
check_quake.sh
|
||||
|
||||
This is a Nagios plugin to monitor Quake servers. Currently only Quake II
|
||||
servers are supported, but more games will be added in the future.
|
||||
This plugin uses qstat to do all the queries.
|
||||
This is a Nagios plugin to monitor game servers.
|
||||
The plugin uses qstat to do all the queries.
|
||||
All games that are supported by qstat works with check_quake.
|
||||
The plugin complies with the Nagios Plugin Development Guidelines. It has
|
||||
some basic sanity checks, uses the default exit codes, follows the standard
|
||||
arguments, has only one line of output etc.
|
||||
@ -11,6 +11,7 @@ The plugin is in use by myself to monitor a friends Quake II server and is
|
||||
working nicely.
|
||||
|
||||
|
||||
|
||||
Options:
|
||||
-h
|
||||
Print detailed help screen
|
||||
@ -21,6 +22,93 @@ Options:
|
||||
-p
|
||||
Set the port number of the Quake server to watch
|
||||
Default is 27910
|
||||
--game
|
||||
Set the gametype to be monitored. Default is Quake 2 (q2s)
|
||||
Any game supported by qstat works. See the list below:
|
||||
a2s Half-Life 2 new server
|
||||
ams America's Army v2.x server
|
||||
bfs BFRIS server
|
||||
odm Call of Duty Master server
|
||||
cods Call of Duty server
|
||||
crs Command and Conquer: Renegade server
|
||||
d3g Descent3 Gamespy Protocol server
|
||||
d3m Descent3 Master (PXO) server
|
||||
d3p Descent3 PXO protocol server
|
||||
d3s Descent3 server
|
||||
dm3m Doom 3 Master server
|
||||
dm3s Doom 3 server
|
||||
efm Star Trek: Elite Force server
|
||||
efs Star Trek: Elite Force server
|
||||
eye All Seeing Eye Protocol server
|
||||
fcs FarCry server
|
||||
gps Gamespy Protocol server
|
||||
grs Ghost Recon server
|
||||
gs2 Gamespy V2 Protocol server
|
||||
gs3 Gamespy V3 Protocol server
|
||||
gs4 Gamespy V4 Protocol server
|
||||
gsm Gamespy Master server
|
||||
h2s Hexen II server
|
||||
hl2s Half-Life 2 server
|
||||
hla2s Half-Life server
|
||||
hla2sm Steam Master server
|
||||
hlm Half-Life Master server
|
||||
hlqs Half-Life server
|
||||
hls Half-Life server
|
||||
hrs Heretic II server
|
||||
hws HexenWorld server
|
||||
jk3m Jedi Knight: Jedi Academy server
|
||||
jk3s Jedi Knight: Jedi Academy server
|
||||
kps Kingpin server
|
||||
maqs Medal of Honor: Allied Assault (Q) server
|
||||
mas Medal of Honor: Allied Assault server
|
||||
mhs Medal of Honor: Allied Assault server
|
||||
netp NetPanzer server
|
||||
netpm NetPanzer Master server
|
||||
nexuizm Nexuiz Master server
|
||||
nexuizs Nexuiz server
|
||||
preym Prey Master server
|
||||
preys PREY server
|
||||
prs Pariah server
|
||||
q2m Quake II Master server
|
||||
q2s Quake II server
|
||||
q3m Quake III Master server
|
||||
q3s Quake III: Arena server
|
||||
q4m Quake 4 Master server
|
||||
q4s Quake 4 server
|
||||
qs Quake server
|
||||
qwm QuakeWorld Master server
|
||||
qws QuakeWorld server
|
||||
rss Ravenshield server
|
||||
rwm Return to Castle Wolfenstein Master server
|
||||
rws Return to Castle Wolfenstein server
|
||||
sas Savage server
|
||||
sfs Soldier of Fortune server
|
||||
sgs Shogo: Mobile Armor Division server
|
||||
sms Serious Sam server
|
||||
sns Sin server
|
||||
sof2m SOF2 Master server
|
||||
sof2m1.0 SOF2 Master (1.0) server
|
||||
sof2s Soldier of Fortune 2 server
|
||||
stm Steam Master server
|
||||
stma2s Steam Master for A2S server
|
||||
stmhl2 Steam Master for HL2 server
|
||||
t2m Tribes 2 Master server
|
||||
t2s Tribes 2 server
|
||||
tbm Tribes Master server
|
||||
tbs Tribes server
|
||||
tm TrackMania server
|
||||
tremulous Tremulous server
|
||||
tremulousm Tremulous Master server
|
||||
ts2 Teamspeak 2 server
|
||||
uns Unreal server
|
||||
ut2004m UT2004 Master server
|
||||
ut2004s UT2004 server
|
||||
ut2s Unreal Tournament 2003 server
|
||||
warsowm Warsow Master server
|
||||
warsows Warsow server
|
||||
woetm Enemy Territory Master server
|
||||
woets Enemy Territory server
|
||||
--warning
|
||||
Issue a warning state instead of a critical state
|
||||
Default is critical
|
||||
|
||||
|
116
check_quake.sh
116
check_quake.sh
@ -22,14 +22,15 @@
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# Nagios plugin to monitor a Quake II server. #
|
||||
# Nagios plugin to monitor a game server. #
|
||||
# All games supported by qstat works. #
|
||||
# The plugin exit with a CRICITAL error code if the server is down. #
|
||||
# This behavior can be changed with the --warning argument. #
|
||||
# Written in Bash (and uses standard tools such as grep and awk). #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
VERSION="0.2"
|
||||
VERSION="0.3"
|
||||
AUTHOR="(c) 2012 Jack-Benny Persson (jack-benny@cyberinfo.se)"
|
||||
|
||||
# Qstat binary
|
||||
@ -43,6 +44,7 @@ STATE_UNKNOWN=3
|
||||
|
||||
# Some default values
|
||||
PORT=27910
|
||||
GAME="q2s"
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
@ -67,7 +69,7 @@ print_help()
|
||||
{
|
||||
print_version
|
||||
printf "$AUTHOR\n"
|
||||
printf "Monitor a Quake II server\n"
|
||||
printf "Monitor a game server\n"
|
||||
/bin/cat <<EOT
|
||||
|
||||
Options:
|
||||
@ -78,8 +80,94 @@ Options:
|
||||
-H
|
||||
Set the host/IP of the server to watch
|
||||
-p
|
||||
Set the port number of the Quake server to watch
|
||||
Default is 27910
|
||||
Set the port number of the game server to watch
|
||||
Default is 27910 (Quake 2)
|
||||
--game
|
||||
Set the game to be monitored. Default is Quake 2 (q2s)
|
||||
Any game supported by qstat works. See the list below:
|
||||
a2s Half-Life 2 new server
|
||||
ams America's Army v2.x server
|
||||
bfs BFRIS server
|
||||
odm Call of Duty Master server
|
||||
cods Call of Duty server
|
||||
crs Command and Conquer: Renegade server
|
||||
d3g Descent3 Gamespy Protocol server
|
||||
d3m Descent3 Master (PXO) server
|
||||
d3p Descent3 PXO protocol server
|
||||
d3s Descent3 server
|
||||
dm3m Doom 3 Master server
|
||||
dm3s Doom 3 server
|
||||
efm Star Trek: Elite Force server
|
||||
efs Star Trek: Elite Force server
|
||||
eye All Seeing Eye Protocol server
|
||||
fcs FarCry server
|
||||
gps Gamespy Protocol server
|
||||
grs Ghost Recon server
|
||||
gs2 Gamespy V2 Protocol server
|
||||
gs3 Gamespy V3 Protocol server
|
||||
gs4 Gamespy V4 Protocol server
|
||||
gsm Gamespy Master server
|
||||
h2s Hexen II server
|
||||
hl2s Half-Life 2 server
|
||||
hla2s Half-Life server
|
||||
hla2sm Steam Master server
|
||||
hlm Half-Life Master server
|
||||
hlqs Half-Life server
|
||||
hls Half-Life server
|
||||
hrs Heretic II server
|
||||
hws HexenWorld server
|
||||
jk3m Jedi Knight: Jedi Academy server
|
||||
jk3s Jedi Knight: Jedi Academy server
|
||||
kps Kingpin server
|
||||
maqs Medal of Honor: Allied Assault (Q) server
|
||||
mas Medal of Honor: Allied Assault server
|
||||
mhs Medal of Honor: Allied Assault server
|
||||
netp NetPanzer server
|
||||
netpm NetPanzer Master server
|
||||
nexuizm Nexuiz Master server
|
||||
nexuizs Nexuiz server
|
||||
preym Prey Master server
|
||||
preys PREY server
|
||||
prs Pariah server
|
||||
q2m Quake II Master server
|
||||
q2s Quake II server
|
||||
q3m Quake III Master server
|
||||
q3s Quake III: Arena server
|
||||
q4m Quake 4 Master server
|
||||
q4s Quake 4 server
|
||||
qs Quake server
|
||||
qwm QuakeWorld Master server
|
||||
qws QuakeWorld server
|
||||
rss Ravenshield server
|
||||
rwm Return to Castle Wolfenstein Master server
|
||||
rws Return to Castle Wolfenstein server
|
||||
sas Savage server
|
||||
sfs Soldier of Fortune server
|
||||
sgs Shogo: Mobile Armor Division server
|
||||
sms Serious Sam server
|
||||
sns Sin server
|
||||
sof2m SOF2 Master server
|
||||
sof2m1.0 SOF2 Master (1.0) server
|
||||
sof2s Soldier of Fortune 2 server
|
||||
stm Steam Master server
|
||||
stma2s Steam Master for A2S server
|
||||
stmhl2 Steam Master for HL2 server
|
||||
t2m Tribes 2 Master server
|
||||
t2s Tribes 2 server
|
||||
tbm Tribes Master server
|
||||
tbs Tribes server
|
||||
tm TrackMania server
|
||||
tremulous Tremulous server
|
||||
tremulousm Tremulous Master server
|
||||
ts2 Teamspeak 2 server
|
||||
uns Unreal server
|
||||
ut2004m UT2004 Master server
|
||||
ut2004s UT2004 server
|
||||
ut2s Unreal Tournament 2003 server
|
||||
warsowm Warsow Master server
|
||||
warsows Warsow server
|
||||
woetm Enemy Territory Master server
|
||||
woets Enemy Territory server
|
||||
--warning
|
||||
Issue a warning state instead of a critical state
|
||||
Default is critical
|
||||
@ -127,6 +215,16 @@ while [[ -n "$1" ]]; do
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--game)
|
||||
if [[ -z "$2" ]]; then
|
||||
printf "\nOption $1 requires an argument\n"
|
||||
print_help
|
||||
exit $STATE_UNKNOWN
|
||||
fi
|
||||
GAME=$2
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--warning)
|
||||
warning="yes"
|
||||
shift 1
|
||||
@ -162,21 +260,21 @@ fi
|
||||
### MAIN ###
|
||||
|
||||
#Test if the server is up and running
|
||||
QSTAT_TEST=`quakestat -u -default q2s ${HOST}:${PORT} | grep "${HOST}"`
|
||||
QSTAT_TEST=`quakestat -u -default ${GAME} ${HOST}:${PORT} | grep "${HOST}"`
|
||||
|
||||
#Let's see if the above command was succesful or not
|
||||
if [[ $? == 0 ]]; then
|
||||
printf "Q2 on port $PORT - OK\n"
|
||||
printf "${GAME} on port $PORT - OK\n"
|
||||
exit $STATE_OK
|
||||
|
||||
#See if we wanted a warning instead of a critical
|
||||
elif [[ "$warning" == "yes" ]]; then
|
||||
printf "Q2 on port $PORT - WARNING\n"
|
||||
printf "${GAME} on port $PORT - WARNING\n"
|
||||
exit $STATE_WARNING
|
||||
#Critical
|
||||
else
|
||||
|
||||
printf "Q2 on port $PORT - CRITICAL\n"
|
||||
printf "${GAME} on port $PORT - CRITICAL\n"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user