Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/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())