monit-docker
Project description
monit-docker project
monit-docker is a free and open-source, we develop it to monitor container status or resources and execute some commands inside containers or manage containers with dockerd, for example:
- reload php-fpm if memory usage is too high
- restart container if status is not running
- remove all containers
Quickstart
Using monit-docker in Docker with crond
docker-compose up -d
See docker-compose.yml and MONIT_DOCKER_CRONS environment variable to configure commands.
Commands:
Simple commands
Restart containers with name starts with foo if memory percent > 60% or cpu percent > 90%:
monit-docker monit --name 'foo*' --cmd-if 'mem_percent > 60 ? restart' --cmd-if 'cpu_percent > 90 ? restart'
Stop containers with name starts with bar or foo and if cpu percent greather than 60% and less than 70%:
monit-docker monit --name 'bar*' --name 'foo*' --cmd-if '60 > cpu_percent < 70 ? stop'
Kill containers with name starts with bar and status equal to pause or running:
monit-docker monit --name 'bar*' --cmd-if 'status in (pause,running) ? kill'
Run command in container with image name contains /php-fpm/ and if memory usage > 100 MiB:
monit-docker --image '*/php-fpm/*' monit --cmd-if 'mem_usage > 100 MiB ? (kill -USR2 1)'
Advanced commands with configuration file or environment variable MONIT_DOCKER_CONFIG
Run commands with aliases declared in configuration file (e.g.: monit-docker.yml.example):
Restart container id 4c01db0b339c if condition alias @status_not_running is true:
monit-docker monit --id 4c01db0b339c --cmd-if '@status_not_running ? restart'
Execute commands alias @start_pause containers with name starts with foo if condition alias @status_not_running is true:
monit-docker monit --name 'foo*' --cmd-if '@status_not_running ? @start_pause'
Remove force container group php if status is equal to running:
monit-docker monit --ctn-group php --cmd-if 'status == running ? @remove_force'
Restart containers group nodejs if memory percent > 10% and cpu percent > 60%:
monit-docker monit --ctn-group nodejs --cmd-if '@mem_gt_10pct_and_cpu_gt_60pct ? restart'
Remove force all containers:
monit-docker monit --cmd '@remove_force'
Environment variables
Variable | Description | Default |
---|---|---|
MONIT_DOCKER_CONFIG |
Configuration file contents (e.g. export MONIT_DOCKER_CONFIG="$(cat monit-docker.yml)" ) |
|
MONIT_DOCKER_CONFFILE |
Configuration file path | /etc/monit-docker/monit-docker.yml |
MONIT_DOCKER_LOGFILE |
Log file path | /var/log/monit-docker/monit-docker.log |
monit-docker with M/Monit
We can also monitoring containers cpu_percent and mem_percent resources with M/Monit.
Configuration examples
check program docker.foo_php_fpm.cpu with path "/usr/bin/monit-docker --name foo_php_fpm monit --rsc cpu_percent"
group monit-docker
if status > 70 for 2 cycles then alert
if status > 80 for 4 cycles then exec "/usr/bin/monit-docker --name foo_php_fpm monit --cmd reload"
check program docker.foo_php_fpm.mem with path "/usr/bin/monit-docker --name foo_php_fpm monit --rsc mem_percent"
group monit-docker
if status > 70 for 2 cycles then alert
if status > 80 for 4 cycles then exec "/usr/bin/monit-docker --name foo_php_fpm monit --cmd '(kill -USR2 1)'"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for monit_docker-0.0.19-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00078037bd3575aa5c76612b25255a064f58f1000d0276b5a1ec2bbebee27784 |
|
MD5 | 76d595f448830e9b4d0235685342f11c |
|
BLAKE2b-256 | 9178aff4240f0ca94a64ba2ac3c8f90212eb86be9126e4296eba1a3a5780c6af |