Articles of monit

monit显示我的正常运行时间脚本中的假数字

我已经写了一个脚本获取真正的正常运行时间,并在monit显示。 但我认为它只显示退出错误状态。 我的正常运行时间脚本是: #!/bin/sh uptime=`uptime | awk -F " " '{print $3}'` echo $uptime exit $uptime 当我在terminal运行它的结果是真实的 For example: # uptime 08:39:01 up 421 days, 19:54, 1 user, load average: 0.06, 0.10, 0.06 # ./up_time.sh 421 脚本运作良好。 但是当monit开始通过up_time.conf文件运行这个脚本时, Program Status Last started Exit value days_up Status ok Thu, 01 Aug 2013 08:41:08 165 我在浏览器上看到 我猜这个Exit […]

使用监视来监视进程

我想弄清楚如何使用monit获得通知时,我的一个进程开始再次运行。 让我清楚 – 起初,这个过程正在运行,停下来运行,然后再次运行。 我希望在进程再次开始运行时得到通知,但我无法find一个方法来做到这一点monit。 (只是为了清楚,如果它停止运行,我不想重新启动它,但如果它开始运行,我希望得到通知)你能帮助我,告诉我如何使用监视我的目的? 如果monit不是我的问题的答案,你能告诉我什么是? 谢谢

我怎样才能find一个特定的PHP过程与pgrep(monit相关)

我在后台运行了一些php进程,monit作为他们的经理。 我目前的monitconfiguration如下所示: check process myprocess1 matching "process1.php" start program = "/usr/bin/php /path/to/process1.php > /var/log/process1.log" stop program = "/usr/bin/pkill /path/to/process1.php" (再一次记住,有几个这样的进程。)这对于启动进程是有效的,但是对于停止这些进程是非常有用的 – 停止尝试失败,monat“未能停止”消息。 我目前对这种情况的诊断是失败,因为pkill没有find进程:执行类似的pgrep /path/to/process1.php无法find任何东西。 ps ax显示,除其他外: 5307 ? S 0:00 /usr/bin/php /path/to/process1.php 同时, pgrep php成功find了所有php进程的pid,但是我只想要杀死其中的一个。 所以:有没有办法在这里得到我想要的? 我并不是想用pkill,但似乎是很好的想法。

Monit – 如果邮件服务器closures,发送警报

有没有办法通过邮件以外的其他方式进行监控: 有时邮件服务器已经closures。 我将如何得到关于它的消息? 我的想法是让monit将http请求传递给定义的服务,这可能吗? (例如,我的graylog服务器的gelf消息,甚至是自制的服务)

从一个监控网页监控多台机器

我有多台机器,每个机器上运行一个监控实例。 我希望其中一个实例是“主”实例,即其他机器将向其报告,我可以从母版页监控它们。 那可能吗?

对Apache的重压力testing

我们有一个运行Apache的生产服务器,有时因为负载过重而崩溃,我试图复制testing服务器上的情况以testingMonit。 所以我的目标是重载Apache以使服务崩溃,或者至less渲染一个网站不可用。 我正在尝试使用apache AB: ab -n 100000 -c 1000 http://webtest/但是似乎还不够,尽pipe/ server-status /显示所有工作者都处于活动状态…还有更多强大的替代scheme或更有效的方法来使用ab来使Apache跪下? 谢谢!

Debian:如何正确升级MONIT?

我做了sudo apt-get install monit但它只安装了5.9版本,当前版本是5.17.1。 所以我做了wget https://mmonit.com/monit/dist/binary/5.17.1/monit-5.17.1-linux-x64.tar.gz下载预编译的二进制文件,现在我有这些文件: monit-5.17.1/bin/monit monit-5.17.1/conf/monitrc monit-5.17.1/man/man1/monit.1 我用dpkg -S monit | sort检查了MONIT的安装位置 dpkg -S monit | sort : monit: /etc/default/monit monit: /etc/init.d/monit monit: /etc/logrotate.d/monit monit: /etc/monit monit: /etc/monit/conf.d monit: /etc/monit/monitrc monit: /etc/monit/monitrc.d monit: /etc/monit/monitrc.d/acpid monit: /etc/monit/monitrc.d/apache2 monit: /etc/monit/monitrc.d/at monit: /etc/monit/monitrc.d/cron monit: /etc/monit/monitrc.d/mdadm monit: /etc/monit/monitrc.d/memcached monit: /etc/monit/monitrc.d/mysql monit: /etc/monit/monitrc.d/nginx monit: /etc/monit/monitrc.d/openntpd monit: /etc/monit/monitrc.d/openssh-server monit: […]

通过Monit运行多个PHP脚本

我有两个PHP脚本作为RabbitMQ消费者,我希望他们通过监控启动和监控(+自动重新启动)。 我的/ etc / monitrc这两个进程如下所示: check process php-magento-category matching "openerp:category:consumer" start program = "/usr/bin/php /home/dev/magento/base/magento2/bin/magento openerp:category:consumer" as uid cehrig and gid cehrig check process php-magento-product matching "openerp:product:consumer" start program = "/usr/bin/php /home/dev/magento/base/magento2/bin/magento openerp:product:consumer" as uid cehrig and gid cehrig 实际上,monit只能启动这两个进程中的第一个,使ps传真看起来像这样: 4622 ? Sl 0:00 monit 5036 ? Ss 0:00 \_ /usr/bin/php /home/dev/magento/base/magento2/bin/magento openerp:category:consumer 第二个PHP过程从来没有产生。 Monit状态看起来像这样 […]

Monit和mysql,但不能在my.cnf中使用skip-networking

我试图找出解决办法。 基本上,我不希望服务器以外的任何人能够尝试连接到我们的数据库。 因此,我已经添加到my.conf中: skip-networking 这是我skip-networking没有启用时得到的: tcp6 0 0 :::3306 :::* LISTEN 6957/mysqld unix 2 [ ACC ] STREAM LISTENING 3911682 6957/mysqld /var/run/mysqld/mysqld.sock 但是当我添加它时,它将带走3306端口上的“聆听”: sudo netstat -lnp | grep mysql unix 2 [ ACC ] STREAM LISTENING 3909565 7356/mysqld /var/run/mysqld/mysqld.sock 我的monit脚本非常简单: check process mysqld with pidfile /var/run/mysqld/mysqld.pid group database group mysql start program = "/etc/init.d/mysql start" […]

通过Zabbix执行重复任务

首先简要说明一下: 使用Zabbix进行系统监控,我尝试了解是否/如何使用Zabbix来运行重要的计划任务,我需要报告的OK / PROBLEM值(即:通过电子邮件)。 我已经使用由cron调用的自定义脚本来报告程序执行的错误。 然而,这样一种方法是开放的快速重复,但失败,计划的任务“淹没”。 我真正想要的是在“边缘变化”上得到通知 – 即:从正常(OK)到失败(PROBLEM)执行,反之亦然。 从这里开始,我有了尝试Monit的想法,而且效果非常好。 但是,已经部署了Zabbix, 如果我能够使用现有的设置合理地完成我的目标,我想避免使用其他工具。 好的,回到主要问题: 从我的研究/testing中,基本的方法是将待执行的任务视为循环检查/数据查询。 存在两种可能性: configurationSSH检查以执行该命令; 用特定的命令扩展Zabbix代理来执行。 第一种方法需要login每个命令执行,这往往会“污染”日志不必要的条目,所以我倾向于第二种方法。 也就是说, 这两种方法都有一个严重的问题:只捕获命令的输出, 而不捕获命令的退出值 所以,我的问题是: 任何人都知道如何捕获命令的退出值? 注意:我想避免包装脚本。 有人使用类似的方法? 如果是这样,你有任何反馈? 我应该简单地“辞职”使用Monit吗?