#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2017, Florent Thiery ''' Criticality: Normal Checks that the streaming server (Wowza) is running correctly. ''' import re import subprocess import sys YELLOW = '\033[93m' GREEN = '\033[92m' RED = '\033[91m' DEF = '\033[0m' LATEST_VERSION = '4.7.7' def check_wowza(): # check if wowza is installed print('Getting installed Wowza packages...') cmd = "dpkg --get-selections 'wowza*'" print(cmd) out = subprocess.getoutput(cmd) out = re.sub(r'\s+', ' ', out) print(out) if ' install' not in out: print('Wowza is not installed, skipping test.') return 2 else: print('Wowza is installed.') # check wowza version version = None for line in out.split('\n'): if ' install' in line: if version: print('%sMultiple versions of Wowza are installed.%s' % (RED, DEF)) print('%sPlease remove unused versions.%s' % (RED, DEF)) return 1 version = '.'.join(re.findall(r'\d', line)) if not version: print('%sWowza version not found.%s' % (RED, DEF)) return 1 code = 0 if version != LATEST_VERSION: print('%sWowza is not using recommended version (current version: %s, recommended version: %s).%s' % (YELLOW, version, LATEST_VERSION, DEF)) code = 3 else: print('%sWowza is using the recommended version: %s.%s' % (GREEN, LATEST_VERSION, DEF)) # check wowza heap size print('Checking Wowza heap size...') p = subprocess.run("grep '<HeapSize>2000M</HeapSize>' /usr/local/WowzaStreamingEngine/conf/Tune.xml", shell=True) if p.returncode != 0: print('%sWowza is not using recommended heap size (2000M) in configuration file "/usr/local/WowzaStreamingEngine/conf/Tune.xml".%s' % (YELLOW, DEF)) code = 3 else: print('%sWowza is using recommended heap size (2000M).%s' % (GREEN, DEF)) # check that wowza is running print('Checking that Wowza is running...') out = subprocess.getoutput('systemctl status WowzaStreamingEngine') print(out) if 'Active: active (running)' not in out: print('%sWowza is not running.%s' % (RED, DEF)) code = 1 else: print('%sWowza is running.%s' % (GREEN, DEF)) return code if __name__ == '__main__': sys.exit(check_wowza())