我想在服务器上设置monit
,该服务器将centralized server
来监控remote servers
上运行的进程。我检查了很多与setup monit相关的文档,但是找不到如何设置远程服务器进程。例如,centralized monit server
应监控nginx
上运行的A server
,mongod
上运行的B server
,依此类推。有任何建议怎么做?
答案 0 :(得分:0)
在文档中,Monit可以使用tcp或udp远程测试连接,你可以做的是提供一个小的状态文件,为你想要监控的每种技术刷新,让Monit点击状态文件通过http等,可以按如下方式使用:
check host nginxserver with address www.nginxserver.com
if failed port 80 protocol http
and request "/some_file"
then alert
由于您正在测试可通过上述方式轻松完成的Web服务器。作为注释,下面是关于Monit连接测试的部分:
连接测试Monit能够通过执行连接测试 网络端口或通过Unix套接字。连接测试可能只是 在检查过程中或在检查主机服务条目中使用 Monit控制文件。
如果服务侦听一个或多个套接字,Monit可以连接到 port(使用tcp或udp)并验证服务是否接受 一个连接,可以写入和读取 插座。如果未接受连接或者存在问题 套接字i / o,Monit将假设出现问题并执行a 指定的行动。如果Monit是用openssl编译的,那么基于ssl 网络服务也可以进行测试。
用于连接测试的语句的完整语法如下 如下(关键字在大写和可选语句中) 方括号[]),
如果FAILED [host] port [type] [protocol | {send / expect} +] [timeout] [重试] [[]循环]那么行动[如果成功[[]] 周期]然后行动]
或用于Unix套接字,
如果FAILED [unixsocket] [type] [protocol | {send / expect} +] [timeout] [重试] [[]循环]那么行动[如果成功[[]] 周期]然后行动]
host:HOST主机名。 (可选)指定要连接的主机。如果 如果未使用host,则假定使用localhost,则假定使用localhost 在进程条目中。如果在远程主机内使用此测试 然后输入条目的远程主机。虽然主持人是 用于在运行的HTTP服务器中测试基于名称的虚拟主机 在本地或远程主机上,它确实允许连接语句 用于测试在另一台机器上运行的服务器。这可能很有用; 例如,如果您使用Apache httpd作为前端和 应用程序服务器作为后端运行在另一台机器上,这个 语句可用于测试后端服务器是否正在运行 如果不发出警报。
端口:端口号。要连接的端口号
unixsocket:UNIXSOCKET PATH。指定Unix套接字的路径。 基于Unix套接字的服务器总是在本地机器上运行 不要使用端口。