1.5. 配置 netconsole
如果磁盘日志记录失败或使用串行控制台,您可能需要使用内核调试。
netconsole 内核模块允许通过网络将内核消息记录到另一台计算机。
为了能够使用
netconsole,您需要具有一个在网络上正确配置的 rsyslog 服务器。
过程 1.1. 为 netconsole 配置 rsyslog 服务器
- 将
rsyslogd守护进程配置为侦听 514/udp 端口,并通过取消注释/etc/rsyslog.conf文件的MODULES部分中的以下行从网络接收信息:$ModLoad imudp $UDPServerRun 514
$ModLoad imudp $UDPServerRun 514Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启
rsyslogd服务以使更改生效:systemctl restart rsyslog
]# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证
rsyslogd是否在侦听 514/udp 端口:netstat -l | grep syslog
]# netstat -l | grep syslog udp 0 0 0.0.0.0:syslog 0.0.0.0:* udp6 0 0 [::]:syslog [::]:*Copy to Clipboard Copied! Toggle word wrap Toggle overflow netstat -l 输出中的0.0.0.0:syslog和 [::]:syslog值表示rsyslogd正在侦听/etc/services文件中定义的默认netconsole端口:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Netconsole 使用 /etc/sysconfig/netconsole 文件进行配置,该文件是 initscripts 软件包的一部分。默认情况下会安装此软件包,它还提供 netconsole 服务。
如果要配置发送机器,请按照以下步骤操作:
过程 1.2. 配置发送机器
- 在
/etc/sysconfig/netconsole文件中设置SYSLOGADDR变量的值,以匹配syslogd服务器的 IP 地址。例如:SYSLOGADDR=192.168.0.1
SYSLOGADDR=192.168.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启
netconsole服务以使更改生效:systemctl restart netconsole.service
]# systemctl restart netconsole.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在重启系统后启用
netconsole.service运行:systemctl enable netconsole.service
]# systemctl enable netconsole.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在
/var/log/messages文件中或rsyslog.conf中指定的文件中查看来自客户端的netconsole消息。cat /var/log/messages
]# cat /var/log/messagesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
注意
默认情况下,rsyslogd 和 netconsole.service 使用端口 514。要使用不同的端口,请将 /etc/rsyslog.conf 中的以下行改为所需的端口号:
$UDPServerRun <PORT>
$UDPServerRun <PORT>
在发送机器上,取消注释并编辑
/etc/sysconfig/netconsole 文件中的以下行:
SYSLOGPORT=514
SYSLOGPORT=514
有关
netconsole 配置和故障排除提示的更多信息,请参阅 Netconsole 内核文档。