Merge branch 'master' of gitlab.com:Sheppy_/monitoring-tools

This commit is contained in:
Yannik Schmidt
2020-06-11 00:09:12 +02:00
2 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
object CheckCommand "source-server" {
command = [ "/etc/icinga2/monitoring-tools/source-server.py" ]
arguments = {
"-H" = "$host$"
"-p" = "$port$"
}
}

35
teamspeak.py Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/python3
import ts3.query
import argparse
import sys
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Monitor Source Server',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--host', '-H', default="127.0.0.1", help='Target Teamspeak 3 Server')
parser.add_argument('--port', '-p', type=int, default=10011, help='Target Port')
parser.add_argument('--user', '-u', help='User to connect as')
parser.add_argument('--password', '-P', help='Password for user')
parser.add_argument('--use-ssh', action='store_const', default="telnet", const="ssh",
help='Use SSH instead of telnet')
args = parser.parse_args()
userPassString = ""
if args.user:
if args.password:
userPassString = "{}:{}@".format(args.user, args.password)
else:
userPassString = "{}@".format(args.user)
connectionString = "{protocol}://{userPassString}@{server}:{port}".format(protocol=args.use_ssh,
userPassString=userPassString,
server=args.host,
port=args.port)
print(connectionString)
try:
with ts3.query.TS3ServerConnection(connectionString) as ts3conn:
ts3conn.exec_("use", sid=1)
clients = ts3conn.query("clientlist", "away", "uid").all()
except ts3.query.TS3QueryError:
print("error id 2568: insufficient client permissions", file=sys.stderr)
sys.exit(1)