Запуск логирования netconsole и syslog на удаленный сервер
netconsole
Начиная с версии ПО 0.2.18-r5 была добавлена поддержка netconsole, но только после старта сети в rootfs.
Запуск зависит от переменных среды бутлоадера 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
Также можно передать эти параметры по DHCP:
option Infomir.syslog_srv code 32 = text; option Infomir.syslog_srv "192.168.1.xxx:2222";
При этом параметры из DHCP имеют более высокий приоритет. При включенном syslog в него попадает syslog плеера (если он включен из JS API), сообщения ядра (klogd) и весь вывод /test.sh включая stderror.
syslog, netconsole - использование и настройка сервера
После установки переменной среды изменения вступят в силу после перезапуска приставки.
Можно форсировать изменения с помощью вызовов:
gSTB.ServiceControl("netconsole","restart"); gSTB.ServiceControl("syslog","restart");
Для того, чтобы получить логи на сервере можно запустить netcat:
Внимание! В отличии от netconsole, лог от syslog будет показываться без перевода строки.
Пример использования 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, если используется.