Запуск логирования netconsole и syslog на удалённый сервер.

Начиная с версии ПО 0.2.18-r5 была добавлена поддержка netconsole, но только после старта сети в rootfs.

netconsole

Запуск зависит от переменных среды бутлоадера nc_ip - обязательна для запуска. nc_port - необязательна для запуска. Также можно передать эти параметры по DHCP:

option Infomir.nc_ip code 30 = ip-address;
option Infomir.nc_port code 31 = integer 16;

option Infomir.nc_ip 192.168.1.xxx;
option Infomir.nc_port 3333;

При этом параметры из DHCP имеют более высокий приоритет

syslog

Также добавлена поддержка syslog. Управляется переменной среды бутлоадера syslog_srv которая может принимать значение host:port или просто host, порт по умолчанию 514

syslog_srv=192.168.1.1:2222

Также можно передать эти параметры по DHCP:

option Infomir.syslog_srv code 32 = text;
option Infomir.syslog_srv "192.168.1.1:2222";

При этом параметры из DHCP имеют более высокий приоритет. При включенном syslog в него попадает syslog плеера (если он включен из JS API), сообщения ядра(klogd) и весь вывод /test.sh включая stderror.

syslog, netconsole, использование, настройка сервера

После установки переменной среды изменения вступят в силу после перезапуска приставки.

Можно форсировать изменения с помощью вызовов:

gSTB.ServiceControl("netconsole","restart");
gSTB.ServiceControl("syslog","restart");

Для того, чтобы получить логи на сервере можно запустить netcat: nc -l -u 2222

Внимание! В отличии от netconsole, лог от syslog будет показываться без перевода строки.

Для более удобного чтения syslog обычно на сервере запускают syslogd со следующими параметрами: syslogd -r -m 0

При этом подразумевается, что на приставке либо не указывается порт для syslog, либо используется стандартный порт 514.

Пример использования rsyslog для получения syslog с STB на сервере под управление Ubuntu Server 12.04

Ссылки по теме:

Установка rsyslog:

aptitude install rsyslog

В конфигурационном файле снять коментарии со строк:

$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514

Перезапуск rsyslog:

/etc/init.d/rsyslog restart

Просмотрт лога. Для уобства можно отфильтровать.

tail -f /var/log/syslog | grep -i 'ip_или_имя_хоста_остылающего_syslog'

Внимание! не забудьте открыть указанные порты в firewall, если используется