使用 Nagios 监控登录 Windows XP 的用户数量

使用 Nagios 监控登录 Windows XP 的用户数量

我有一个 POS 系统,除非登录到控制台会话,否则它无法工作。我在想,既然我已经有了 NSClient++,也许我可以通过 Nagios 监控计数器。

如果帐户未登录,是否有可以发出警报的计数器?是 '\Terminal Services\Total Sessions' 吗?现在显示我的 VM 有 2 个会话,这对我来说完全没有意义,除非我的远程桌面算作一个,而 VMWare 总是使用一个...

如果我可以使用 check_nt 来做到这一点,对我来说,这可能会超过更好方法的潜在警告,但我愿意接受各种想法。

答案1

XP 每次只允许 1 个“交互式”登录,无论是在计算机上还是通过 RDP 进行远程登录。至于“控制台”和远程登录,XP 并不关心您使用哪种方式,因为无论以哪种方式登录,应该运行的任何进程都会运行。

您正在尝试确定用户是否已登录,但更重要的是(我认为)您想要运行的进程是否正在运行。为什么不直接检查正在运行的进程,而是试图确定用户是否已登录?如果进程崩溃但用户仍处于登录状态怎么办?

对于 XP 来说,查看 winlogon.exe 进程毫无用处,因为无论用户是否实际登录,它都会运行。要查找的典型进程是用户名下运行的 explorer.exe(尽管它也可能会崩溃,甚至可能在未注销用户的情况下被终止)。

在 Windows 系统上,您可以使用 sysinternals 中的“psloggedon.exe”(http://technet.microsoft.com/en-us/sysinternals/default.aspx) 使用 -l 开关“psloggedon \computername -l”在计算机上查找本地登录。我认为您在检查计数时看到 2 个会话的原因是检查本身会建立一个会话来确定有多少个会话...

在 nagios 中使用 check_nt 的最佳选择似乎是 1) 检查您需要运行的特定进程(希望它一直运行)或 2) 检查 explorer.exe 是否正在运行,因为它仅在有人实际登录时运行,但就像我说的,这不是一种确定是否是这种情况的安全方法。

免责声明!-我自己不使用 nagios,只是检查了此处的网站:http://nagiosplugins.org/man/check_nt寻找可能满足你需求的插件

答案2

要计算已登录用户的数量,您可以查看有多少个 winlogon.exe 进程正在运行。(控制台会话始终会先运行)

答案3

我真的不知道,所以我只是在这里盲目猜测,而且我也不太明白你所说的“登录”是什么意思,因为你提到终端服务器,我假设你的意思是“附加会话”(或活动会话)。

以下是我在终端服务下的计数器,似乎是一个合理的起点:

\终端服务\总会话数 \终端服务\活动会话数 \终端服务\非活动会话数

通过谷歌快速搜索可以得出:活动会话是指处于活动状态的会话总数,不包括断开连接的会话。

总会话数 处于活动状态的会话总数,包括断开连接的会话。

因此在我看来您想要“活动会话”?

第二个反思是,上述工具可以轻松地从脚本中的 NSClient++ 中使用,但您必须使用 NRPE(check_nrpe)才能从 nagios 执行脚本,而不是 check_nt。

// 迈克尔·梅丁

相关内容