“Monit”可以监控远程服务器上运行的进程吗?

时间:2015-12-08 10:03:14

标签: nginx monit

我想在服务器上设置monit,该服务器将centralized server来监控remote servers上运行的进程。我检查了很多与setup monit相关的文档,但是找不到如何设置远程服务器进程。例如,centralized monit server应监控nginx上运行的A servermongod上运行的B server,依此类推。有任何建议怎么做?

1 个答案:

答案 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套接字的服务器总是在本地机器上运行   不要使用端口。