Перейти к содержимому


Фотография

Параметры запуска Syslogd на Dune


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 27

#1 БУДКА ГЛАСНОСТИ

БУДКА ГЛАСНОСТИ

    Комментатор-активист

  • Пользователи
  • PipPipPipPip
  • 171 сообщений

Отправлено 22 November 2012 - 15:31

Как же хорошо, что на свете существуют люди умнее меня:)

К таковым и обращаюсь.

Хочу собирать дома все логи в одно место, для чего уже поднят syslog server на NAS Synology. В его сетевых настройках, помимо локальных параметров, стоит пункт слушать 514 UDP порт в подсети 192.168.1.0/24. Конечно же от дюны на него ничего не приходит - дюнин syslogd не обучен что-то куда-то отсылать.

Встроенный в дюну syslogd кастрирован и не умеет читать из /etc/syslog.conf, к сожалению. Да и самого файла такового нет. Зато может запускаться с параметрами. По умолчанию в дюне он запущен с параметрами -n и -m 0, т.е. - не уходить в фоновый режим и не ставить в лог временные метки, как я понимаю. Я подсмотрел это через команду top.

Если ввести в командную строку syslogd -? то вываливается некий список опций, который я оттрактовал как полный список опций, доступный данной реализации syslogd. Как ни странно, там нет опции -m, зато есть полезная опция -R HOST[:PORT] с припиской, что значением по умолчанию является UDP514, т.е. - посылать логи на внешний сервер. Это ж нам и надо!

Ввожу:
killall syslogd
syslogd -R 192.168.1.1
Смотрю список процессов через top и вижу почему-то два параллельно работающих процесса:
/sbin/syslogd -n -m 0

и

syslogd -R 192.168.1.1
В /var/log/messages появляются 2 новые строки:
Nov 22 11:00:47 tangox syslog.info syslogd exiting
Nov 22 11:00:47 tangox syslog.info syslogd started: BusyBox v1.15.3
Но сервер как ничего не принимал, так и не принимает. Также смущает, что обе записи имеют одинаковое время. Впечатление такое, что сразу после убийства сислога он сразу же автоматом перестартует с теми же параметрами...

Также экспериментирую с syslog-ng, установленном на роутере asus - если в его конфигурационном файле явно указать, что он должен принимать логи с адреса дюны по UDP порту 514, syslog-ng не запускается, выдает ошибку, что по данному адресу он не нашел ничего способного передавать ему логи и отваливается.

Я пытаюсь сделать невозможное, или просто что-то делаю не так?

З.Ы. В данный момент на дюне стоит LTU. Понимаю, что если пройти по полному пути установки Optware, то потом, видимо, можно будет доставить либо полноценный syslogd, либо syslog-ng и сделать все, что надо... но LTU устраивает абсолютно всем, в том числе и простотой установки и конфигурирования, так что без особой нужды уходить от него не собираюсь...

Перезапуск syslogd с новыми параметрами планирую решить простейшим скриптиком, положенным в /config/boot.

И еще вопрос вдогонку - в лог пишется время по гринвичу, что неудобно, при этом в настройках системы выставлено +4 часа. Как научить железку логироваться с правильной таймзоной?

Спасибо!

Upd - только сейчас еще проверил - действительно, как только убиваешь процесс syslogd методом kill pid - на его месте тут же возникает его копия с другим pid. Т.е. - заложена определенная защита от дурака :)

#2 БУДКА ГЛАСНОСТИ

БУДКА ГЛАСНОСТИ

    Комментатор-активист

  • Пользователи
  • PipPipPipPip
  • 171 сообщений

Отправлено 29 November 2012 - 09:51

Тихо сам с собою... Продолжил эксперимент. Поднял syslog сервер на NAS Synology, настроил на прием сообщений по сети от всех, кто в него что-то кинет. Запустил 2-ю копию syslogd на дюне с сетевыми параметрами - никакой реакции. Как только убиваю первый syslogd на дюне методом kill pid, NAS тут же принимает по сети две строки, датированные одной и той же секундой - об остановке syslogd и о его старте. Судя по всему это посылает запущенная мной вручную копия syslogd. И все. Больше ничего в сеть не летит - автостартовавшая копия syslogd каким-то образом блокирует запущенную мной. Что делать-то?? Натолкните на мысль, куда дальше идти. Что может заставлять syslogd автостартовать???

#3 MG

MG

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1797 сообщений
  • Gender:Male
  • Location:Киев

Отправлено 29 November 2012 - 12:16

Натолкните на мысль, куда дальше идти. Что может заставлять syslogd автостартовать???

Не факт, но может помочь (по кр. мере в плане понимания) ковыряние в файле /bin/busybox (вблизи включений термина "syslogd" - их там есть...)

#4 БУДКА ГЛАСНОСТИ

БУДКА ГЛАСНОСТИ

    Комментатор-активист

  • Пользователи
  • PipPipPipPip
  • 171 сообщений

Отправлено 29 November 2012 - 15:37

Не факт, но может помочь (по кр. мере в плане понимания) ковыряние в файле /bin/busybox (вблизи включений термина "syslogd" - их там есть...)


Моей квалификации хватило только на то, чтобы понять, что бизибокс - это, грубо говоря, готовая скомпилированная под данный девайс операционная система и syslogd является ее составной частью. Изменить в ней что-либо не имея исходников, как я понимаю, нереально...

Но этих самых составных частей там много, да взять хотя бы vi. Он тоже есть. Только он не запускается сам при старте системы, а будучи запущенным вручную спокойно закрывается и убивается. Значит автозапуск syslogd где-то прописан особо. Видимо там же, где и механизм самозащиты...

Не понимаю другого - я запускаю второй процесс syslogd. После этого убиваю первый. Он умирает, я проверял:) Новый процесс, стартующий вместо него, имеет уже совсем другой pid. Теоретически, срабатывающая самозащита должна увидеть, что процесс с таким именем уже есть и успокоиться на этом... так нет же - она тупо запускает еще один...

Как это может происходить???

#5 MG

MG

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1797 сообщений
  • Gender:Male
  • Location:Киев

Отправлено 29 November 2012 - 19:31

Как это может происходить???

Я никогда не пытался вдаваться в такие детали - не было надобности.
Возможно получится отследить различия, сравнивая "начинку" каталогов процессов (автозапускаемого и ручного) в /proc...
Либо взять исходники бизибокса и поковыряться там.

#6 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 25 May 2019 - 04:33

Знаю, что некропостинг, но новую тему заводить не хочу ибо напоролся на те же грабли. Кому-нибудь удалось выявить сервис (ака watchdog) отвечающий за рестарт процессов на дюне ?

Хочется получить удалённую отладку без привлечения дополнительных средств, но авторестарт syslogd сводит на нет данную затею.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#7 slondon

slondon

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 531 сообщений
  • Gender:Male

Отправлено 25 May 2019 - 13:37

Таким watchdog'ом является процесс init, чей конфиг /etc/inittab лежит в корневом разделе, но это ram-disk, который при перезагрузке потеряет все внесенные изменения. Можно каждый раз при загрузке исправлять конфиг (чтобы init его перечитал, нужно выполнить kill -HUP 1).
Только непонятно, зачем вам логфайл /tmp/messages, там же нет ничего интересного? Все самое интересное там в файле /tmp/run/shell.log и в логфайлах отдельных плагинов, а они пишутся мимо сислога.

Dune HD Neo 4K Plus, 230929_0206_r21
Dune HD Max 4K, 230929_0206_r21


#8 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 25 May 2019 - 14:35

Можно каждый раз при загрузке исправлять конфиг (чтобы init его перечитал, нужно выполнить kill -HUP 1).

А можно и так :) Намедни в доках вычитал.

Можно каждый раз при загрузке исправлять конфиг (чтобы init его перечитал, нужно выполнить kill -HUP 1).

Тоже об этом думал, но увы это не тот случай. В help'e syslogd есть такая пометка

System logging utility.
Note that this version of syslogd ignores /etc/syslog.conf.

Только непонятно, зачем вам логфайл /tmp/messages, там же нет ничего интересного?

Мне нужна отладка железной части, в частности логгирование подключений по usb, а это как раз там. Плюс когда syslog начинает мне гадить в kiwi сразу становится ясно, что с девайсом что-то не так.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#9 slondon

slondon

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 531 сообщений
  • Gender:Male

Отправлено 25 May 2019 - 14:41

Если вы пилите кастомную прошивку, то ваша квалификация должна исключать подобные вопросы. :)

Не путайте конфиги сислога и инита.

Dune HD Neo 4K Plus, 230929_0206_r21
Dune HD Max 4K, 230929_0206_r21


#10 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 25 May 2019 - 14:50

Если вы пилите кастомную прошивку, то ваша квалификация должна исключать подобные вопросы. :)

Пардон, вот этот линк. Не думал, что так оперативно ответите и не успел поправить ))) И да - не пилю. Я обычный юзер, но доки изучать умею ))) Если не лень )))

Не путайте конфиги сислога и инита.

Т.е. надо менять конфиг Init'a и делать HUP ? Ну тогда это не проблема. Даже официальные дюновские dsf-ки для ftp/smb пихают в boot sh-скрипты, которые рестартуют или грохают процессы после старта.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#11 slondon

slondon

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 531 сообщений
  • Gender:Male

Отправлено 25 May 2019 - 15:10

Пардон, вот этот линк. Не думал, что так оперативно ответите и не успел поправить ))) И да - не пилю. Я обычный юзер, но доки изучать умею ))) Если не лень )))

tango - это раздел, который выполняет более поздние процессы загрузки и отвечает за более высокоуровневые процессы. Процесс init - главный процесс в линуксе, его стартует ядро, и это происходит на гораздо более низком системном уровне. Короче говоря, конфиг инита не хранится в танго-образе.

Т.е. надо менять конфиг Init'a и делать HUP ? Ну тогда это не проблема. Даже официальные дюновские dsf-ки для ftp/smb пихают в boot sh-скрипты, которые рестартуют или грохают процессы после старта.

Скорее всего проблем не будет, но теоретически можно представить себе коллизию, когда кто-нибудь еще полезет в inittab исправлять там же еще что-нибудь в таком же автоматическом режиме (т.е. с помощью sed или типа того).

Dune HD Neo 4K Plus, 230929_0206_r21
Dune HD Max 4K, 230929_0206_r21


#12 slondon

slondon

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 531 сообщений
  • Gender:Male

Отправлено 24 June 2019 - 12:22

LordGenom, ну как, удалось перенаправить логи на удаленный сервер?

Dune HD Neo 4K Plus, 230929_0206_r21
Dune HD Max 4K, 230929_0206_r21


#13 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 24 June 2019 - 16:35

LordGenom, ну как, удалось перенаправить логи на удаленный сервер?

Руки пока не дошли. Как будет время - займусь ;) О результатах отпишусь ;)
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#14 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 04 July 2019 - 17:21

Вручную без проблем удалось отменить рестарт syslogd. В /etc/inittab вытираем строки
null::respawn:/sbin/syslogd -n -m 0
null::respawn:/sbin/klogd -n
даём команду
killall -HUP init
после чего стартуем syslogd и klogd в штатном режиме
syslogd -R 192.168.1.111
klogd
Как вариант, в /etc/inittab можно подрихтовать исходную команду, дабы респавн процесса шёл с логгированием на удалённый адрес вместо локалхоста по умолчанию.

Осталось оформить это дело в автозапуск и можно снимать данные без заморочек. Чуть позже займусь этим вопросом.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#15 slondon

slondon

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 531 сообщений
  • Gender:Male

Отправлено 04 July 2019 - 22:24

Ну и отлично.

Dune HD Neo 4K Plus, 230929_0206_r21
Dune HD Max 4K, 230929_0206_r21


#16 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 06 July 2019 - 17:04

Собственно вот :
#!/bin/sh
cat /config/boot/inittab > /etc/inittab
killall -HUP init
Копируем исходный inittab в /config/boot/, правим его под свои нужды и там же создаём загрузочный скрипт, приложенный выше (можно было бы включить inittab в тело скрипта, но мне было лень, плюс на разных прошивках он может отличаться). В inittab я скорректировал строку
null::respawn:/sbin/syslogd -n -m 0
на
null::respawn:/sbin/syslogd -n -m 0 -R 192.168.1.111 -O /var/log/messages
что позволяет сохранить локальное логгирование и обеспечивает удалённую отправку лога syslog-клиенту :)
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#17 denik79

denik79

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 4739 сообщений
  • Gender:Not Telling

Отправлено 07 July 2019 - 08:41

Собственно вот :

#!/bin/sh
cat /config/boot/inittab > /etc/inittab
killall -HUP init
Копируем исходный inittab в /config/boot/, правим его под свои нужды и там же создаём загрузочный скрипт, приложенный выше (можно было бы включить inittab в тело скрипта, но мне было лень, плюс на разных прошивках он может отличаться). В inittab я скорректировал строку
null::respawn:/sbin/syslogd -n -m 0
на
null::respawn:/sbin/syslogd -n -m 0 -R 192.168.1.111 -O /var/log/messages
что позволяет сохранить локальное логгирование и обеспечивает удалённую отправку лога syslog-клиенту :)
Все это конечно интересно,но какой практический смысл во всем этом?
Ну собрали логи и...?

#18 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2322 сообщений
  • Gender:Male

Отправлено 07 July 2019 - 09:32

Все это конечно интересно,но какой практический смысл во всем этом?
Ну собрали логи и...?

Да я как-бе написал, зачем

Мне нужна отладка железной части, в частности логгирование подключений по usb, а это как раз там. Плюс когда syslog начинает мне гадить в kiwi сразу становится ясно, что с девайсом что-то не так.

Помимо этого в syslog валится немало иной полезной инфы, включая ссылки и команды переданные через IP-контроль, что для меня упрощает работу с оным, учитывая, что дюна с ТВ и комп расположены в разных комнатах.

Если содержимое /var/log/messages вам видится абракадаброй, то эта тема не для вас :lol:

***

Позднее поиграюсь над передачей логов плагинов. Есть пара задумок на тему tail и nc
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#19 slondon

slondon

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 531 сообщений
  • Gender:Male

Отправлено 07 July 2019 - 13:20

Как точечное решение для конкретного плеера на конкретной прошивке в конкретном окружении вполне годится.

Dune HD Neo 4K Plus, 230929_0206_r21
Dune HD Max 4K, 230929_0206_r21


#20 denik79

denik79

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 4739 сообщений
  • Gender:Not Telling

Отправлено 07 July 2019 - 15:52

Да я как-бе написал, зачем Помимо этого в syslog валится немало иной полезной инфы, включая ссылки и команды переданные через IP-контроль, что для меня упрощает работу с оным, учитывая, что дюна с ТВ и комп расположены в разных комнатах.

Если содержимое /var/log/messages вам видится абракадаброй, то эта тема не для вас :lol:

***

Позднее поиграюсь над передачей логов плагинов. Есть пара задумок на тему tail и nc

Ок

Теперь можно Qradar подключить и в SoC сразу логи дюны слать :D

Шутка