Як я можу отримувати журнали syslog від мережевої системи?


23

Я хотів би налаштувати Ubuntu для отримання журналів від маршрутизатора DD-WRT. Екран налаштування маршрутизатора містить такий розділ:

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

і його документація на реєстрацію зазначає:

Якщо ви хочете відправити журнали до віддаленої системи, введіть IP-адресу цієї машини, на якій також працює утиліта syslog (для розгляду маршрутизаторів, що надсилаються, потрібен відкритий мережевий сокет.

Я ніколи (свідомо) раніше не використовував syslog. Що мені потрібно зробити в Ubuntu, щоб дозволити йому отримувати ці журнали?


Моя Motorola Surfboard Extreme SBG901, схоже, має подібні налаштування для вашого DD-WRT. Я просто подумав, що я додам це ключове слово для інших googling для цього запитання.
варильні панелі

Відповіді:


23

Хосту, що приймає журнали, потрібно буде запустити деякий демон системного журналу, який налаштований для прослуховування віддалених журналів. У Ubuntu є кілька реалізацій syslog, але, rsyslogяк правило, рекомендується, і їх слід встановити за замовчуванням. Я не можу сказати з документації у вашому посиланні, якщо DD-WRT надсилає журнали через TCP або UDP, тому може знадобитися певний експеримент, щоб точно знайти правильні налаштування, якщо ви турбуєтесь про зменшення кількості доступних до мережі порти вашого хоста.

Є два способи ввімкнути це: перший простіший, але може потребувати повторної інтеграції, коли оновлено систему. Друга є дещо складнішою і може спричинити заплутані результати, якщо в частині оновлення відбудуться значні зміни в конфігурації syslog. Я вибрав би другий, але ваші уподобання можуть відрізнятися.

Перший - відредагувати /etc/rsyslogd.confта видалити початковий #із наступних рядків:

# $ ModLoad imudp
# $ UDPServerRun 514

або

# $ ModLoad imtcp
# $ InputTCPServerRun 514

Друга - створити новий файл, можливо, названий local-enable-tcp.confв ньому /etc/rsyslog.d/із наступним вмістом:

# включити прийом системного протоколу TCP
$ ModLoad imtcp
$ InputTCPServerRun 514

Якщо ви хочете використовувати окремий підхід до файлів і вам потрібен UDP, змініть вміст, щоб він відповідав строфіці UDP вище. Конкретне ім'я файлу не важливо, але рекомендується починати його з "local-", оскільки це простір імен зарезервовано для локальної конфігурації адміністратора, і він повинен закінчуватися ".conf", оскільки лише файли, що закінчуються таким чином, автоматично включаються в конфігурація rsyslog.

Якщо ви хочете скористатися іншою реалізацією syslog, перевірте конфігурацію та документацію для цієї реалізації: цілком ймовірно, що демон syslog налаштований не для прослуховування в мережі за замовчуванням, але приклад конфігурації для включення цього поширеного випадку повинен бути чітко задокументований.


1
Починати ім'я файлу слід двозначним числом, встановити порядок відносно інших існуючих .conf-файлів.
enzotib

Хе, добре, що може бути складним. Немає причини, що ім'я пакета не може починатися з двозначного числа, і .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

Після його встановлення у нас є конф-файл у /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);  };

Легко, як бачите. Піклуватися!


-2

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

Підручник- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/


5
Уникайте публікувати адресу старого довідника, навіть не перевіряючи, чи їх інструкції все ще дійсні. Файли, названі в посібнику, вже не існують. Ubuntu використовує rsyslog.
enzotib

@enzotib - Хоча я погоджуюся, що йому не вистачає якості і що посилань слід уникати, але виявляється, що ця відповідь дала саме те, що мені потрібно для досягнення тієї ж задачі на сервері Ubuntu 8.04. Тут є три відповіді, всі на три різні варіанти системного журналу , які все ще використовуються у виробничих системах . Ця відповідь була корисною. Це отримує +1 від мене.
ghoti

Це правда, але це в основному лише відповідь на посилання.
Дункан X Сімпсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.