玩命加载中 . . .

CentOS7设置netconsole


Netconsole简述

将内核打印的日志信息通过UDP方式发送至另一台服务器。

本文概述的是基于CentOS7的配置设定,Ubuntu的设定会右差别,请参考之前的另外一篇博文。

配置内核日志发送端(Client端)

说明:

这里的client端,表明的是当前哪台机器要将kernel log上报到rsyslog server去。

写入/etc/rc.local中,开机自动设置

dmesg -n 7
modprobe configfs
modprobe netconsole

配置netconsole

Server端,配置远程接收ip地址、远程接收端口(默认514)、远程接收MAC(可选)、本地发送设备名、本地发送端口

vi /etc/sysconfig/netconsole

# 取消SYSLOGPORT、SYSLOGPORT、SYSLOGMACADDR注释并添加相关参数
#--------------------------------------------------------
#也可执行如下命令插入所需的ip、port、mac
#端口为接收端服务器rsyslog服务的接收端口
ip="192.168.1.161"
echo -e "SYSLOGADDR=$ip\nSYSLOGPORT=514\nSYSLOGMACADDR=$(ping -c 1 $ip>/dev/null&&arp|grep $ip|tr -s ' '|cut -f3 -d ' ')">>/etc/sysconfig/netconsole

配置/etc/sysconfig/netconsole 中DEV设备

vi /etc/sysconfig/netconsole

修改上述配置文件中的 DEV的值,如果配置了bond,需设置为bondX;否则设置为具体网口名称。

重启netconsole服务

systemctl restart netconsole

启用netconsole自启动

systemctl enable netconsole

配置内核日志接收端(Server端)

修改rsyslog配置文件接收来自UDP的日志

vi /etc/rsyslog.conf

#取消$ModLoad imudp和$UDPServerRun 514注释并修改514为需要监听接收udp的端口
#或者执行如下命令
sed -i 's/^#$Mod.*udp$/$ModLoad imudp/g;s/^#$UDP.*/$UDPServerRun 514/g' /etc/rsyslog.conf	#端口替换为自己所需要的

重启rsyslog服务

systemctl restart rsyslog

检查是否正常监听指定端口

lsof -i:514

如下所示即为正常监听中:

[root@centos-7 ~]# lsof -i:514
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 1735 root    3u  IPv4  43816      0t0  UDP *:syslog 
rsyslogd 1735 root    4u  IPv6  43817      0t0  UDP *:syslog 
[root@centos-7 ~]# 

查看来自远程服务器发送的内核日志

在Client端,尝试down与up某个网口,然后在Server端,执行

tail -f /var/log/messages

来跟踪日志,检查Client端的kernel log是否将kernel log 上报到当然rsyslog server的messages 文件中


文章作者: Gavin Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gavin Wang !
  目录