Полное описание сетевой консоли находится в документации ядра. Для настройки достаточно добавить в modprobe.d/99-local.conf:
options netconsole netconsole=@/,514@192.168.10.7/00:0C:29:F3:92:97Здесь, 514 - номер UDP порта, 192.168.10.7 - IP удаленного хоста куда будет отсылаться информация, 00:0C:29:F3:92:97 - его MAC адрес, если его не указать явно то будет использоваться широковещательный адрес FF:FF:FF:FF:FF:FF, что может затруднить передачу информации в зависимости от настроек сетевого оборудования.
И загрузить модуль netconsole или, по желанию, поставить его на автозагрузку при старте системы.
После загрузки модуля netconsole, сетевая консоль начинает немедленно функционировать, а в системном журнале можно увидеть примерно следующее:
May 1 18:57:51 192.168.10.4 kernel: [162255.522603] netconsole: local port 6665 May 1 18:57:51 192.168.10.4 kernel: [162255.522673] netconsole: local IP 0.0.0.0 May 1 18:57:51 192.168.10.4 kernel: [162255.522710] netconsole: interface eth0 May 1 18:57:51 192.168.10.4 kernel: [162255.522746] netconsole: remote port 514 May 1 18:57:51 192.168.10.4 kernel: [162255.522784] netconsole: remote IP 192.168.10.7 May 1 18:57:51 192.168.10.4 kernel: [162255.522826] netconsole: remote ethernet address 00:0c:29:f3:92:97 May 1 18:57:51 192.168.10.4 kernel: [162255.522881] netconsole: local IP 192.168.10.4 May 1 18:57:51 192.168.10.4 kernel: [162255.523032] console [netcon0] enabled May 1 18:57:51 192.168.10.4 kernel: [162255.523349] netconsole: network logging started
Данные приходят в самом простом текстовом виде и их можно читать самым простым способом:
netcat -u -l 514Если у нас в наличии есть syslog-ng — можно использовать его следующим образом:
source s_remote_udp { network(transport("udp") ip(0.0.0.0) port(514)); }; filter f_remote_remhost { netmask(192.168.10.4); }; destination d_remote_remhost { file("/var/log/remote/remhost.log"); }; log { source(s_remote_udp); filter(f_remote_remhost); destination(d_remote_remhost); };
Проверить, что всё работает можно следующим образом:
echo '<7>Hello world!' > /dev/kmsg dmesg -n 8Сообщение должно появиться в журнале и быть передано по сети на удаленный хост.