莫尼特码头工人

monit-docker的Python项目详细描述


monit docker项目

monit docker是一个免费的开源程序,我们开发它来监视容器状态或资源 并在容器内执行一些命令或使用dockerd管理容器,例如:

  • 如果内存使用率过高,请重新加载php fpm
  • 如果状态不是running,则重新启动容器
  • 取出所有容器

快速启动

在docker中使用monit docker和crond

docker-compose up -d

请参阅docker-compose.yml和MONIT_DOCKER_CRONS环境变量以配置命令

环境变量

VariableDescriptionDefault
^{}Configuration file contents
(e.g. ^{})
^{}Configuration file path/etc/monit-docker/monit-docker.yml
^{}Log file path/var/log/monit-docker/monit-docker.log

监视子命令

简单命令

如果内存使用率为60%或cpu使用率为90%,则重新启动名称以foo开头的容器:

monit-docker monit --name 'foo*' --cmd-if 'mem_percent > 60 ? restart' --cmd-if 'cpu_percent > 90 ? restart'

停止名称以bar或foo开头且CPU使用率大于60%且小于70%的容器:

monit-docker monit --name 'bar*' --name 'foo*' --cmd-if '60 > cpu_percent < 70 ? stop'

终止名称以bar开头且状态等于pause或running的容器:

monit-docker monit --name 'bar*' --cmd-if 'status in (pause,running) ? kill'

您还可以使用状态参数,例如,重启具有状态暂停或退出状态的容器:

monit-docker -s paused -s exited monit --cmd 'restart'

在图像名为contains/php fpm/的容器中运行命令,如果内存使用量为>;100 mib:

monit-docker --image '*/php-fpm/*' monit --cmd-if 'mem_usage > 100 MiB ? (kill -USR2 1)'

带有配置文件或环境变量monit_docker_config的高级命令

使用配置文件中声明的别名运行命令(例如:monit-docker.yml.example):

如果条件alias@status\u not\u running为true,则重新启动容器id 4c01db0b339c:

monit-docker monit --id 4c01db0b339c --cmd-if '@status_not_running ? restart'

执行命令alias@start_如果condition alias@status_not_running为真,则名称以foo开头的暂停容器将以foo开头:

monit-docker monit --name 'foo*' --cmd-if '@status_not_running ? @start_pause'

如果状态等于running:

monit-docker --ctn-group php monit --cmd-if 'status == running ? @remove_force'

如果内存使用百分比>;10%和CPU使用百分比>;60%,则重新启动容器组nodejs:

monit-docker --ctn-group nodejs monit --cmd-if '@mem_gt_10pct_and_cpu_gt_60pct ? restart'

移除强制所有容器:

monit-docker monit --cmd '@remove_force'

H3>具有退出代码EH3>的集装箱信息

容器状态

运行命令以获得名为FuuHyPHPfFPM的容器的退出代码的状态:

monit-docker --name foo_php_fpm monit --rsc status

<>如果退出代码大于100,则会发生错误。

Exit codeDescription
0Running
10Created
20Paused
30Restarting
40Removing
50Exited
60Dead
114Not found

容器CPU使用率

运行命令,以容器的退出代码获取CPU使用百分比,称为FooHyPHPFFPM:

monit-docker --name foo_php_fpm monit --rsc cpu_percent

<>如果退出代码大于100,则会发生错误。

容器内存使用百分比

运行命令以获取名为FuuHyPHPfFPM的容器的退出代码的内存使用百分比:

monit-docker --name foo_php_fpm monit --rsc mem_percent

<>如果退出代码大于100,则会发生错误。

带M/monit

的monit docker

我们还可以使用M/Monit监视容器cpu%和mem%资源

配置示例
check program docker.foo_php_fpm.status with path "/usr/bin/monit-docker --name foo_php_fpm monit --rsc status"
    group monit-docker
    if status = 114 for 2 cycles then alert # container not found
    if status != 0 for 2 cycles then exec "/usr/bin/monit-docker --name foo_php_fpm monit --cmd restart" # container not running

check program docker.foo_php_fpm.cpu with path "/usr/bin/monit-docker -s running --name foo_php_fpm monit --rsc cpu_percent"
    group monit-docker
    if status > 100 for 2 cycles then alert
    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 -s running --name foo_php_fpm monit --rsc mem_percent"
    group monit-docker
    if status > 100 for 2 cycles then alert
    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)'"

stats子命令

简单命令

以json格式获取所有容器的所有资源统计信息:

monit-docker stats --output json

{"flamboyant_chaplygin":{"status":"running","mem_percent":0.03,"net_tx":"0.0 B","cpu_percent":0,"mem_usage":"2.52 MiB","io_read":"3.5 MB","io_write":"0.0 B","net_rx":"25.2 kB","mem_limit":"7.27 GiB"}}{"practical_proskuriakova":{"status":"running","mem_percent":0.04,"net_tx":"0.0 B","cpu_percent":0,"mem_usage":"2.61 MiB","io_read":"24.6 kB","io_write":"0.0 B","net_rx":"25.0 kB","mem_limit":"7.27 GiB"}}

以文本格式获取所有容器的所有资源统计信息:

monit-docker stats --output text

flamboyant_chaplygin|mem_usage:2.52 MiB|mem_limit:7.27 GiB|mem_percent:0.03|cpu_percent:0.0|io_read:3.5 MB|io_write:0.0 B|net_tx:0.0 B|net_rx:43.5 kB|status:running
practical_proskuriakova|mem_usage:2.61 MiB|mem_limit:7.27 GiB|mem_percent:0.04|cpu_percent:0.0|io_read:24.6 kB|io_write:0.0 B|net_tx:0.0 B|net_rx:43.3 kB|status:running

带有配置文件或环境变量monit_docker_config的高级命令

获取组nodejs的状态和内存使用情况:

monit-docker --ctn-group nodejs --rsc status --rsc mem_usage

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当使用RequestDispatcher时,servlets Java最终没有被调用   java生成对具有可变参数数的方法的调用   java如何使用select子句中的参数化列映射iBATIS的查询?   java无法创建类型为org的插件。阿帕奇。登录中。log4j。果心阿佩德。元素RollingFile的RollingFileAppender   java当子实体和父实体之间存在OneTONE JPA关系时,是否可以将其与父实体一起持久化?   Android上的java Facebook集成fbconnect断开链接   获取方法调用方的java机制   从列表创建Oracle阵列时出现java问题   添加和检索元素的ArrayList的java ArrayList   在java中从字符串中删除无效的XML字符   java如何构建完整生成的maven模块   java如何准确地改变播放所有分辨率midi文件的速度?   shell javac:无效标志:/src/中位_度。ubuntu中的java   java使用从其他类的方法检索到的信息