# monit runs as superuser
$ sudo su
# the -i option ignores the inherited environment
# this PATH is what monit supplies by default
$ env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/sh
# try running start/stop program here
$
start program = "/home/billitch/bin/monit-wrapper.sh my-real-start-script and args"
stop program = "/home/billitch/bin/monit-wrapper.sh my-real-stop-script and args"
[CEST Jun 4 21:10:42] info : Starting Monit 5.17.1 daemon with http interface at [*]:2812
[CEST Jun 4 21:10:42] info : Starting Monit HTTP server at [*]:2812
[CEST Jun 4 21:10:42] info : Monit HTTP server started
[CEST Jun 4 21:10:42] info : 'ocean' Monit 5.17.1 started
[CEST Jun 4 21:10:42] debug : Sending Monit instance changed notification to monit@example.io
[CEST Jun 4 21:10:42] debug : Trying to send mail via smtp.sendgrid.net:587
[CEST Jun 4 21:10:43] debug : Processing postponed events queue
[CEST Jun 4 21:10:43] debug : 'rootfs' succeeded getting filesystem statistics for '/'
[CEST Jun 4 21:10:43] debug : 'rootfs' filesytem flags has not changed
[CEST Jun 4 21:10:43] debug : 'rootfs' inode usage test succeeded [current inode usage=8.5%]
[CEST Jun 4 21:10:43] debug : 'rootfs' space usage test succeeded [current space usage=59.6%]
[CEST Jun 4 21:10:43] debug : 'ws.example.com' succeeded testing protocol [WEBSOCKET] at [ws.example.com]:80/faye [TCP/IP] [response time 114.070 ms]
[CEST Jun 4 21:10:43] debug : 'ws.example.com' connection succeeded to [ws.example.com]:80/faye [TCP/IP]
7条答案
按热度按时间zujrkrfu1#
我也遇到过同样的问题,使用monit的verbose命令行选项会有所帮助,但我发现最好的方法是创建一个尽可能类似于monit环境的环境,并从那里运行start/stop程序。
我发现最常见的问题是与环境变量相关的(尤其是
PATH
)或与权限相关的。另外,如果您在monit配置中使用
as uid myusername
,那么您应该在执行测试之前更改为用户myusername
。zaq34kh62#
在让monit处理所有事情之前,一定要仔细检查conf并手动监控进程。systat(1)、top(1)和ps(1)是计算资源使用和限制的好帮手。了解所监控的进程也是至关重要的。
关于启动和停止脚本,我使用一个 Package 器脚本来重定向输出,并检查环境和其他变量。
然后在monit:
您仍然需要弄清楚 Package 器中需要哪些信息,比如进程信息、id、系统资源限制等。
rbpvctlc3#
您可以通过将
MONIT_OPTS="-v"
添加到/etc/default/monit
来以详细/调试模式启动Monit(不要忘记重新启动;/etc/init.d/monit restart
)。然后可以使用
tail -f /var/log/monit.log
捕获输出zzoitvuj4#
第一个月
ecr0jaav5#
默认情况下,monit会记录系统消息日志,您可以查看那里发生了什么。
此外,根据您的配置,您可能会记录到不同的位置
http://mmonit.com/monit/documentation/monit.html#LOGGING
假设使用默认值(无论我使用的是哪个旧版本的monit),您可以如下跟踪日志:
中央操作系统:
乌班图:
苹果操作系统
Windows
这里是龙
但有一个neato项目,我发现,而如何做到这一点出于病态的好奇心:https://github.com/derFunk/monit-windows-agent
ehxuflar6#
是的,monit不太容易调试。
以下是一些最佳做法
shell :
这很有帮助。
我发现另一件有用的事情是使用'-v'运行monit,这会增加冗长性。
46scxncf7#
您也可以尝试在进程运行时运行monit validate,以尝试找出其中是否有问题(如果有问题,有时会获得比日志文件中更多的信息)。