Add checks to the management interface to report memory usage
This commit is contained in:
parent
04960d0b98
commit
e103a1f892
|
@ -11,6 +11,7 @@ import sys, os, os.path, re, subprocess, datetime, multiprocessing.pool
|
||||||
import dns.reversename, dns.resolver
|
import dns.reversename, dns.resolver
|
||||||
import dateutil.parser, dateutil.tz
|
import dateutil.parser, dateutil.tz
|
||||||
import idna
|
import idna
|
||||||
|
import psutil
|
||||||
|
|
||||||
from dns_update import get_dns_zones, build_tlsa_record, get_custom_dns_config, get_secondary_dns, get_custom_dns_record
|
from dns_update import get_dns_zones, build_tlsa_record, get_custom_dns_config, get_secondary_dns, get_custom_dns_record
|
||||||
from web_update import get_web_domains, get_default_www_redirects, get_ssl_certificates, get_domain_ssl_files, get_domains_with_a_records
|
from web_update import get_web_domains, get_default_www_redirects, get_ssl_certificates, get_domain_ssl_files, get_domains_with_a_records
|
||||||
|
@ -152,6 +153,7 @@ def run_system_checks(rounded_values, env, output):
|
||||||
check_miab_version(env, output)
|
check_miab_version(env, output)
|
||||||
check_system_aliases(env, output)
|
check_system_aliases(env, output)
|
||||||
check_free_disk_space(rounded_values, env, output)
|
check_free_disk_space(rounded_values, env, output)
|
||||||
|
check_free_memory(rounded_values, env, output)
|
||||||
|
|
||||||
def check_ssh_password(env, output):
|
def check_ssh_password(env, output):
|
||||||
# Check that SSH login with password is disabled. The openssh-server
|
# Check that SSH login with password is disabled. The openssh-server
|
||||||
|
@ -202,6 +204,27 @@ def check_free_disk_space(rounded_values, env, output):
|
||||||
else:
|
else:
|
||||||
output.print_error(disk_msg)
|
output.print_error(disk_msg)
|
||||||
|
|
||||||
|
def check_free_memory(rounded_values, env, output):
|
||||||
|
# Check free memory.
|
||||||
|
percent_used = psutil.virtual_memory().percent
|
||||||
|
percent_left = 100 - percent_used
|
||||||
|
if not rounded_values:
|
||||||
|
memory_msg = "The system has allocated %s%% of the memory." % str(round(percent_used))
|
||||||
|
if percent_left > 20:
|
||||||
|
output.print_ok(memory_msg)
|
||||||
|
elif percent_left > 15:
|
||||||
|
output.print_warning(memory_msg)
|
||||||
|
else:
|
||||||
|
output.print_error(memory_msg)
|
||||||
|
else:
|
||||||
|
memory_msg = "The system has less than %s%% memory left." % str(round(percent_left))
|
||||||
|
if percent_left > 20:
|
||||||
|
output.print_ok("The system has more than 20% memory left")
|
||||||
|
elif percent_left > 15:
|
||||||
|
output.print_warning("The system has less than 20% memory left but more than 15%")
|
||||||
|
else:
|
||||||
|
output.print_error("The system has less than 15% memory left")
|
||||||
|
|
||||||
def run_network_checks(env, output):
|
def run_network_checks(env, output):
|
||||||
# Also see setup/network-checks.sh.
|
# Also see setup/network-checks.sh.
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ echo "Installing Mail-in-a-Box system management daemon..."
|
||||||
# build-essential libssl-dev libffi-dev python3-dev: Required to pip install cryptography.
|
# build-essential libssl-dev libffi-dev python3-dev: Required to pip install cryptography.
|
||||||
apt_install python3-flask links duplicity libyaml-dev python3-dnspython python3-dateutil \
|
apt_install python3-flask links duplicity libyaml-dev python3-dnspython python3-dateutil \
|
||||||
build-essential libssl-dev libffi-dev python3-dev python-pip
|
build-essential libssl-dev libffi-dev python3-dev python-pip
|
||||||
hide_output pip3 install --upgrade rtyaml email_validator>=1.0.0 idna>=2.0.0 cryptography>=1.0.2 boto
|
hide_output pip3 install --upgrade rtyaml email_validator>=1.0.0 idna>=2.0.0 cryptography>=1.0.2 boto psutil
|
||||||
|
|
||||||
# duplicity uses python 2 so we need to use the python 2 package of boto
|
# duplicity uses python 2 so we need to use the python 2 package of boto
|
||||||
hide_output pip install --upgrade boto
|
hide_output pip install --upgrade boto
|
||||||
|
|
Loading…
Reference in New Issue