有没有开源的简单的网络监控应用程序?

有没有开源的简单的网络监控应用程序?

我正在调试我们其中一个系统的问题。每周日,它都会停止与另一台服务器的通信。如果我们重新启动两台服务器,通信就会恢复。

我想知道是否有任何占用空间小的应用程序可以监控 TCP 端口可用性和网络连接,并可能记录任何停机时间。如果可能的话,我也希望它是开源的,但如果有另一种专有的解决方案,我也想听听。

答案1

我将逆势而行,为您提供一个脚本解决方案。

获取一份网猫对于 Windows,并使用 netcat 的路径修改脚本(或者只需将 nc.exe 转储到 %SystemRoot%\system32 目录中,然后将该行更改为程序运行)。另外,修改脚本以将其日志文件存储在您想要的任何位置。

@echo off

SET NETCAT=c:\path-to-netcat\nc.exe
SET MONITOR_HOST=server-to-monitor
SET MONITOR_PORT=port-number-to-monitor
SET LOGFILE=C:\whatever.log

rem Use netcat to check for host answering on TCP port xxx
%NETCAT% -z %MONITOR_HOST% %MONITOR_PORT%
if errorlevel 1 goto _host_down

echo %DATE% %TIME% %MONITOR_HOST% answered on TCP port %MONITOR_PORT%>>%LOGFILE%
goto end

:_host_down
echo %DATE% %TIME% %MONITOR_HOST% did not answer on TCP port %MONITOR_PORT%>>%LOGFILE%

rem Do something to remote host here...
rem shutdown -r -t 1 -f -m %MONTIOR_HOST%

:end

就这样。您可以将其作为“计划任务”运行。

这根本就不是什么花哨的东西,但它确实有用。如果你想让它更花哨,你可以使用日期或时间来更改日志文件名,这样你每天、每周等都会得到一个新日志。你可以删除旧日志,等等。用这样的简单脚本你可以做很多事情……呵呵……

附录:

这是更精致的“命令行参数”版本。它会记录到您指定的任何目录中,文件名为“MONTIOR_HOST_YYYY-MM-DD.log”。使用以下语法调用:

(filename) monitor_host monitor_port log-file-path
monitor.cmd test-srv01 80 "c:\monitor_logs\long filenames do work here\"

这适合从多个计划任务、脚本等调用,以监控多个服务器或多个端口。

@echo off
SET NETCAT=c:\path-to-netcat\nc.exe
SET MONITOR_HOST=%1
SET MONITOR_PORT=%2
SET LOGFILE="%~f3\%1_%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%.LOG"

if "%1"=="" goto _syntax
if "%2"=="" goto _syntax
if "%3"=="" goto _syntax

rem Use netcat to check for host answering on TCP port xxx
%NETCAT% -z %MONITOR_HOST% %MONITOR_PORT%
if errorlevel 1 goto _host_down

echo %DATE% %TIME% %MONITOR_HOST% answered on TCP port %MONITOR_PORT%>>%LOGFILE%
goto end

:_host_down
echo %DATE% %TIME% %MONITOR_HOST% did not answer on TCP port %MONITOR_PORT%>>%LOGFILE%

rem Do something to remote host here...
rem shutdown -r -t 1 -f -m %MONTIOR_HOST%
goto end

:_syntax
echo Syntax:
echo.
echo %0 monitor_host monitor_port log-file-path

:end

我写剧本太有趣了……

答案2

我推荐 Zenoss。它功能很全面,但设置简单,是免费软件,可以满足您的所有需求。

当然,您也可以编写几个 Perl/Shell 脚本,但为什么要重新发明轮子呢?

答案3

我目前最喜欢的是扎比克斯。还有纳吉奥斯可能还有其他一些。但如果只有一项服务,我可能会编写一个 perl 脚本来监控它并记录到 sqlite。

答案4

我很幸运黄金最新资讯过去。它易于配置,并且保留历史信息。不幸的是,它不是开源的。我很想看到一个具有相同功能的开源产品。

相关内容