LINUX.ORG.RU
ФорумAdmin

неверный facility у netutils-syslog

 , , ,


0

1

Коллеги, здравия вам. Столкнулся с такой траблой с syslog

Что имеется: Ubuntu 18.04.6, Asterisk, syslogd (GNU inetutils) 1.9.4

Вот такой конфиг у syslog

local6.notice                                        @1.2.3.4
local7.*                                            @1.2.3.4
local6.notice                                           /var/log/bla-bla-bla
local5.*                                           /var/log/bla-bla-bla

Тако конфиг у астера

[general]
 
[CDR]
loguserfield = yes
facility = local6
priority = notice
template = bla-bla-bla

Суть проблемы в том, что при отправке лога на удаленный хост, данные не помечаются как local6 notice, а почему-то помечаются как kernel emergency

Вот пакет из дампа

1.1.1.1.514 > 1.2.3.4.514: SYSLOG, length: 295
 Facility kernel (0), Severity emergency (0)

вот дебаг сислога

(logmsg): local6.notice (181), flags 0, from hostname, msg Oct  7 16:11:29 CDR bla-bla-bla
Logging to FILE /var/log/bla-bla-bla
Logging to FORW 1.2.3.4

т.е. в дебаге он вроде корректно определяет, что это local6, но при отправке события на удаленный хост, он меняет на kern. пару раз оно почему-то заработало, после пары рестартов всего сервака. Я потом решил убедится, что всё ок, попробовал рестартануть службу syslog и опять поломалося. Далее рестартовал и сервак и астер, больше не работало. Пробовал менять local, пробовал отключать все остальные логи, перелопатил все конфиги на поиск какой-нибудь ошибки - ненашел. В гугле тоже не нашел решения.

Проблему с asterisk я отмёл, т.к. с local5 и local7 таких проблем нет, а они тоже формируются астером. p.s. обновлять сам syslog не пробовал, да и проблематично это. rsyslog поставить не получится. мб кто сталкивалася с подобным.

Так гуглится такая ошибка, не знаю, она именно у вас или нет. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729666&trim=no&bori...

Можно было не мучать астерикс, есть консольная утилита logger, она позволяет отправить сообщение в syslog (локальный или по udp) с заданным facility.level. Можно с помощью неё тестить.

syslog, по идее, один бинарник, его можно скомпилить отдельно (в вируталке под этой версией ubuntu или статически) и скопировать на ваш сервер. Это на случай, если обновлений нет и не предвидется. То есть взять посвежее GNU inetutils, скомпилировать, make install не делать, просто после компиляции найти в каталоге с исходниками бинарник syslogd, запустить его и протестировать, что он работает как надо, потом скопировать на сервер с астериксом.

mky ★★★★★
()