Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.5. 配置 netconsole

如果磁盘日志记录失败或使用串行控制台,您可能需要使用内核调试。netconsole 内核模块允许通过网络将内核消息记录到另一台计算机。
为了能够使用 netconsole,您需要具有一个在网络上正确配置的 rsyslog 服务器。

过程 1.1. 为 netconsole 配置 rsyslog 服务器

  1. rsyslogd 守护进程配置为侦听 514/udp 端口,并通过取消注释 /etc/rsyslog.conf 文件的 MODULES 部分中的以下行从网络接收信息:
    $ModLoad imudp
    $UDPServerRun 514
  2. 重启 rsyslogd 服务以使更改生效:
    ]# systemctl restart rsyslog
  3. 验证 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. 配置发送机器

  1. /etc/sysconfig/netconsole 文件中设置 SYSLOGADDR 变量的值,以匹配 syslogd 服务器的 IP 地址。例如:
    SYSLOGADDR=192.168.0.1
  2. 重启 netconsole 服务以使更改生效:
    ]# systemctl restart netconsole.service
  3. 在重启系统后启用 netconsole.service 运行:
    ]# systemctl enable netconsole.service
  4. /var/log/messages 文件中或 rsyslog.conf 中指定的文件中查看来自客户端的 netconsole 消息。
    ]# cat /var/log/messages
注意
默认情况下,rsyslogdnetconsole.service 使用端口 514。要使用不同的端口,请将 /etc/rsyslog.conf 中的以下行改为所需的端口号:
$UDPServerRun <PORT>
在发送机器上,取消注释并编辑 /etc/sysconfig/netconsole 文件中的以下行:
SYSLOGPORT=514
有关 netconsole 配置和故障排除提示的更多信息,请参阅 Netconsole 内核文档