无需 ssh 登录的系统正常运行时间

无需 ssh 登录的系统正常运行时间

我有很多linux服务器我想检查正常运行时间但我必须登录每一个。是否可以检查linux服务器的运行时间无需ssh登录到它?

附言。我的发行版是 RHEL 7/8 和 OL 8。

答案1

如果您的服务器位于受信任的安全网络中,全部位于一个或几个网段中,那么安装旧rwhod服务及其客户端(rwhoruptime)也可能符合要求。在 Debian 中,这些服务仍然可以通过安装两个软件包(rwhodrwho)来打包和安装,因此如果您的发行版提供了它并且它符合您的要求,那么它可能是最简单的解决方案。

RHEL 7(可能还有与之相关的发行版)将服务和客户端打包为一个rwho包; RHEL 8 及更高版本似乎不再包含该软件包。

rwhod每分钟发送一次广播数据包,列出登录用户和当前正常运行时间,并监听其他类似的广播;rwho和命令将获取过去 11 分钟内广播的所有主机ruptime收集的报告并输出报告。根据最后收到的报告列出登录每个广播主机的用户;列出每个报告主机的正常运行时间。rwhodrwhoruptime

答案2

只需创建一个“xinetd”服务,如下所示:

# cat /etc/xinetd.d/uptime
service uptime
{
    port        = 10200
        disable         = no
        socket_type     = stream
        protocol        = tcp
        log_on_success += USERID 
        log_on_failure += USERID
        server          = /usr/bin/uptime
        user            = root
        instances       = UNLIMITED
        wait            = no
        log_type        = SYSLOG daemon debug
}

# service xinetd restart

# netstat -ant | grep 10200
tcp6       0      0 :::10200                :::*                    LISTEN  

# telnet localhost 10200
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
 08:59:39 up 23 days, 16:36,  1 user,  load average: 0.00, 0.01, 0.05

答案3

如果您有很多服务器,并且我假设您不仅仅对正常运行时间感兴趣,那么正确的工具将在每个设备上加载 SNMP,并为它们的 snmptrap 响应设置一个监控站。这是主要玩家使用的。显示的所有方法都不会显示丢失的启动,但 SNMP 会显示。

答案4

聚会已经很晚了,但是(假设正常运行时间不是对您庞大的服务器群健康状况唯一感兴趣的事情)我建议使用适当的工具来完成这项工作。

考虑使用普罗米修斯,每隔 5 分钟从您的设备中抓取各种指标,包括正常运行时间等指标。

出色地。要查询机器的正常运行时间node_time() - node_boot_time()(即以秒为单位的正常运行时间,请随意对不同的时间单位进行数学计算),但这本质上就是您所要求的。

相关内容