Как я могу получить журналы системного журнала из сетевой системы?

23

Я хотел бы настроить Ubuntu для получения журналов от маршрутизатора DD-WRT. Экран конфигурации маршрутизатора содержит следующий раздел:

DD-WRT Системный журнал

и его журнальная документация гласит:

Если вы хотите отправить журналы в удаленную систему, введите IP-адрес того компьютера, на котором также запущена утилита системного журнала (для приема журналов, отправляемых маршрутизатором, требуется открытый сетевой сокет).

Я никогда (сознательно) не использовал системный журнал раньше. Что мне нужно сделать в Ubuntu, чтобы он мог получать эти журналы?

ændrük
источник
Моя Motorola Surfboard Extreme SBG901, похоже, имеет настройки, аналогичные вашим DD-WRT. Просто подумал, что добавлю это ключевое слово для других, прибегающих к помощи в этом вопросе.
варенье

Ответы:

23

На хосте, получающем журналы, должен быть запущен какой-нибудь демон системного журнала, настроенный на прослушивание удаленных журналов. В Ubuntu есть несколько реализаций системного журнала, но rsyslogобычно это рекомендуется и должно быть установлено по умолчанию. Я не могу сказать из документации в ссылке, которую вы разместили, отправляет ли DD-WRT логи по TCP или UDP, поэтому может потребоваться некоторый эксперимент, чтобы найти точно правильные настройки, если вы беспокоитесь об уменьшении количества доступных по сети порты на вашем хосте.

Есть два способа сделать это: первый проще, но может потребовать повторной интеграции при обновлении системы. Второй вариант немного сложнее и может привести к сбивающим с толку результатам, если в процессе обновления произошли значительные изменения в конфигурации системного журнала. Я бы выбрал второе, но ваши предпочтения могут отличаться.

Первый - отредактировать /etc/rsyslogd.confи удалить начальные #строки из следующих строк:

# $ ModLoad imudp
# $ UDPServerRun 514

или

# $ ModLoad imtcp
# $ InputTCPServerRun 514

Второй - создать новый файл, возможно , с именем local-enable-tcp.confв /etc/rsyslog.d/, со следующим содержимым:

# включить TCP прием syslog
$ ModLoad imtcp
$ InputTCPServerRun 514

Если вы хотите использовать отдельный файловый подход и вам нужен UDP, измените содержимое, чтобы оно соответствовало разделу UDP выше. Конкретное имя файла не важно, но рекомендуется начинать его с «local-», так как это пространство имен зарезервировано для конфигурации локального администратора, и оно должно заканчиваться на «.conf», так как только файлы, заканчивающиеся таким образом, автоматически включаются в Конфигурация rsyslog.

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

Эммет Хикори
источник
1
Рекомендуется начинать имя файла с двухзначного номера, чтобы установить порядок относительно других существующих файлов .conf.
энзотиб
Хех, ну, это может быть сложно. Нет причин, по которым имя пакета не может начинаться с двухзначного числа, и .d / $ {package} - .conf все зарезервированы для пакетов (хотя вряд ли у него будет конфликт, например, для 72-local-myconf.conf ). Во-вторых, важно попытаться записать файлы конфигурации так, чтобы порядок не критичен. Например, файл конфигурации, предоставленный 0access.conf из гипотетического пакета «0access», будет применен перед большинством файлов конфигурации, начинающихся с двухзначного числа.
Эммет Хикори
1
Также может потребоваться изменить владельца вашего файла журнала: sudo chown syslog:adm /var/log/syslogили как вы назвали свой файл журнала.
конфе
6

Другой вариант - использовать syslog-ng, он прост в использовании и готов к работе!

sudo apt-get install syslog-ng

После его установки у нас есть файл conf в /etc/syslog-ng/syslog-ng.conf. Итак, просто отредактируйте этот .conf с нашими параметрами, но перед этим сделайте резервную копию файла конфигурации по умолчанию, который может пригодиться позже, если Вы хотите настроить некоторые параметры

sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak

Теперь создайте новый файл конфигурации и отредактируйте его!

sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf

Итак, просто вставьте эту базовую конфигурацию, чтобы начать работать:

# Listening to incoming UDP Syslog connections
source mysource { udp(); };

#Add the syslog targets:

destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message

#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:

log { source(mysource); filter(myfilter); destination(dest);  };

Легко, как вы можете видеть. Береги себя!

Alvarova
источник
-2

По сути, вы запускаете демон (называемый syslogd) на своем сервере для маршрутизатора dd-wrt для публикации журналов.

Учебное пособие - http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/

user606723
источник
5
Избегайте публикации адреса старого руководства, даже не проверяя, все ли его инструкции действительны. Файлы, указанные в руководстве, больше не существуют. Ubuntu использует rsyslog.
энзотиб
@enzotib - Хотя я согласен с тем, что ему не хватает качества и что следует избегать ссылок, оказалось, что этот ответ предоставил именно то, что мне нужно для достижения той же задачи на сервере Ubuntu 8.04. Здесь есть три ответа, все для трех различных вариантов системного журнала , которые все еще используются в производственных системах . Этот ответ был полезен. Это получает +1 от меня.
Готи
Это правда, но это в основном только ссылка.
Дункан Х Симпсон