我有一个 xen hvm vps,带有一个可使用 VNC 访问的控制台。我想知道是否有任何方法可以记录发送到控制台的任何内容/所有内容?我试图记录控制台,因为我的 vps 每天都会因某种奇怪的原因崩溃。
答案1
控制台日志记录的典型解决方案是使用虚拟串行控制台配置您的 VM。 这个文件似乎正好解决了您的情况;它讨论了如何在 Xen 下启用串行控制台输出。
如果您使用由其他人管理的 VPS,您可能无法进行必要的更改以实施此配置(尽管询问您的服务提供商也无妨)。
答案2
尝试使用苏多什或者ttyrec. 首先尝试 ttyrec ,因为它很容易使用。
答案3
另一种方法是使用rsyslog并让其将内核事件记录到另一台服务器。显然,如果网络堆栈是导致崩溃的原因,这将无济于事,但它将为您提供所有其他内核事件的远程日志。
您可以使用旧的 sysklogd 进行远程日志记录,但它的设置和保护比较困难,并且只能通过 udp 运行。rsyslog 可以通过 udp 或 tcp 进行远程日志记录。
我使用 rsyslog 来设置中央日志服务器(如果你有很多机器需要监控的话,这个功能就很好用了),还设置了两个或三个服务器,每个服务器都使用如下规则来互相记录日志:
如果 $fromhost-ip == '127.0.0.1' 且 $syslogfacility-text == 'kern' 那么 @otherserver.hostname
附言:根据我的经验,崩溃的最可能原因是 RAM 不足。或者一些编写错误的 CGI 或 php 脚本占用了所有可用 RAM,导致内核 OOM 杀手崩溃。