Articles of monit

在CentOS下监视configuration

我正在尝试执行以下操作: monit stop mysqld monit: Cannot connect to the monit daemon. Did you start it with http support? 它只有当我停止monit服务时才起作用。 你有什么build议吗?

如何将monit集成到Web应用程序部署过程中

我有: 通过mvn tomcat部署webapp的Tomcat:重新部署。 Monit,ping主机并在ping失败时重新启动服务器。 在重新部署过程中,ping会失败的一瞬间 – 事实上这是正常的。 那么问题是,教授监督考虑重新部署的事实,而不是将其与“真正”的黑色混淆相混淆的最好办法是什么? 这当然是优雅,易于实现和可伸缩性之间的平衡问题。 我能想到的最简单的解决scheme就是在部署之前closures监视器,然后再次启动它。 但是,如果我觉得这远非优雅。

无法使用Vagrant从主机端口通过HTTP访问monit守护进程

我想使用监控来监控我的Ubuntu VM上的服务(精确到32),但是我无法通过主机(本地)机器上的HTTP访问监控守护进程。 我在/ etc / monit / monitrc中启用了以下设置: set httpd port 2812 and use address localhost allow localhost allow vagrant:vagrant_pwd 并已将虚拟机中的端口2812转发给Vagrantfile中的宿主机器,如下所示: config.vm.forward_port 2812, 2812 我已经确认,在虚拟机上运行monit,通过ssh进入虚拟机并运行: sudo /etc/init.d/monit status 并且可以通过运行在VM中使用HTTP访问Monit守护进程 curl -u vagrant:vagrant localhost:2812 但是当我在主机浏览器(firefox)中inputlocalhost:2812时,我没有得到任何回应。 任何想法如何使这项工作?

允许用户运行特定的监视动作

我已经为root用户安装了许多应用程序的监视器。 其中一个应用程序以非root用户帐户启动。 不幸的是,当我更新我的应用程序时,我也需要重新启动它。 我的更新过程使用非root用户(我使用capistrano来更新我的应用程序) 由于Monit正在检查这个应用程序,更新过程是由非root用户完成的。 为了重新启动应用程序,非root用户杀死应用程序,monit重新启动它。 我想允许非root用户被允许只重新启动这个特定的应用程序。 不应该大声说出这个用户来运行其他相关的操作。 有没有办法允许用户运行特定的monit动作,即使他不是monitrc的所有者?

Monit不会启动/停止任何进程

我有一个Linux虚拟服务器,安装在一个自定义的位置monit运行 /home/user/bin/monit 因为这是根据networking主机提供商的唯一合适的位置。 当我安装了监视器,我用./configure –prefix = / home / user Monit本身运行,并向我发送活动的电子邮件,控制文件的语法是正确的。 但是,monit似乎无法启动或停止任何操作,甚至无法运行最简单的脚本。 例如。 使用'monit stop all',我尝试运行下面的停止命令 stop = "/bin/bash /home/user/simple_script.sh" 哪个失败(并在日志中这样说)。 我不知道为什么这是失败的,任何人都可以帮助这个?

Monit无法检测到MySQL,但我可以

Monit被configuration为在端口3306上的本地主机上观看MySQL。 check process mysqld with pidfile /var/lib/mysql/li175-241.pid start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed port 3306 protocol mysql then restart if 5 restarts within 5 cycles then timeout 我的应用程序被configuration为通过localhost:3306连接到MySQL,运行得很好,可以访问数据库。 我甚至可以使用MySQL查询浏览器通过端口3306远程连接到数据库。该端口是完全开放的,可以连接到。 因此,我相当确定它正在运行。 但是,运行monit -v显示Monit无法在该端口上检测到MySQL。 'mysqld' failed, cannot open a connection to INET[localhost:3306] via TCP 这一直发生,直到Monit决定不跟踪MySQL了,如configuration。 我该如何开始解决这个问题? sudo netstat -lnp | grep […]

Monit:自定义警报消息以包含命令输出

我想定制Monit的警报消息,以便每当我收到警报时,该电子邮件还包括一个类似top的命令的输出,以便我已经知道可能导致问题的更多细节。 有没有办法做到这一点? 文档不包括任何相关的内容,search也没有帮助。 谢谢您的帮助!

当页面包含特定文本时,如何在monit中重新启动MySQL?

如何检查网页是否包含“连接到数据库的错误”文本,如果页面中存在的文本重新启动数据库? 这是我到目前为止,但它不工作: check host website.com with address website.com group database start program = "/usr/bin/service mysql start" stop program = "/usr/bin/service mysql stop" if url http://website.com content == "Error connecting to database" then restart

Bash脚本匹配grep输出并发送消息

我正在开发一个用于监视状态的脚本,这样我就可以向NagiOS NSCA服务器发送OK状态消息(被动检查)。 我遇到的问题是我的bash脚本仍然发送消息,如果脚本grep函数不包括任何将触发消息发送。 脚本: variables rsysl='rsyslog' log='messages' variables中的命令 host=$(hostname) monstat=$(monit status|grep -C 1 '$rsysl') nsca_status=$(echo -e "$host\t$rsysl\t0\tOK" | /usr/sbin/send_nsca -H mon.lv.lan -c /etc/send_nsca.cfg) 监视状态命令 # Postfix check $monstat 消息发送function,你可以看到它只应发送消息时, 状态等于没有运行 , 不可访问 if [ "status" == "not running" ] && [ "status" == "not accessible" ]; then $nsca_status else : fi grep输出(在实际情况下,消息发送命令必须匹配运行和可访问 : # monit […]

monit with ssl(https)

我最近安装了monit(在debian上),一切正常。 现在我想启用ssl支持。 我做了我在文档中find的内容: set httpd port 2812 ssl enable pemfile /etc/ssl/certs/ssl-cert-snakeoil.pem 现在,我不但不能通过https://myserver.com:2812通过web访问服务器,而且monit守护进程和monit命令之间的通信也失败: $# monit status monit: Openssl read timeout error! monit: error connecting to the monit daemon