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