UMGUM.COM (лучше) 

Syslog-NG ( Syslog Next Generation. )

23 марта 2010  (обновлено 21 октября 2018)

OS: Debian Lenny/Squeeze/Wheezy/Jessie.

Задача: установка и настройка сервера сбора сообщений системы журнала событий транслируемых ему активными сетевыми устройствами по сети.

Наш сервер будут работать на Debian Stable.
Применим сервер "Syslog Next Generation" (syslog-ng). Это проект, дополняющий обычный syslog новым функционалом.


Примем за данность то, что:

"подсеть", в которой мы будем экспериментировать - 10.10/16;
"подсеть", которую мы, наряду с вышеуказанной, будем поддерживать - 192.168/16;
IP адрес нашего сервера - 10.10.2.21/24;
доменное имя нашего сервера - log.local.

Служба syslog-ng будет слушать порт udp:514.Обеспечиваем видимость нашего сервера только со стороны локальных сетей по соответствующему порту.

В Debian Lenny уже используется не обычный syslog, а rsyslog - enhanced multi-threaded syslogd. Может быть нам и не было нужды его удалять и устанавливать syslog-ng, вполне возможно, что rsyslog обладает всей нужной нам функциональностью. Но, нам нужна унификация в пределах нескольких операционных систем и преемственность.

Инсталлируем syslog-ng для Debian.

# aptitude --without-recommends install syslog-ng
# cd /etc/syslog-ng
# cp ./syslog-ng.conf ./syslog-ng.conf.dist

Конфигурационный файл имеет имя "/etc/syslog-ng/syslog-ng.conf", мы сохранили его исходный вариант для спасения ситуации в случае тотального краха в процессе конфигурирования.


Прежде чем приступить к настройке конфигурационных файлов припомним себе то, что система журналирования будет обслуживать не только то, для чего мы её пере установили, а ещё и ряд других, очень важных функций операционной системы и прикладных программ. Потому вмешательство в конфигурационные файлы должно быть минимальным и носить только дополняющий а не удаляющий или излишне кардинальный корректирующий характер.
Нужно иметь в виду ещё и то, что правила в конфигурационном файле syslog-ng отрабатываются последовательно (во всяком случае я так думаю) и мы будем добавлять свои только после уже имеющихся, чтобы не перехватить ненароком чужие вызовы (иначе говоря - будем довольствоваться объедками всех других пред нами стоящих фильтрующих правил).

Создаем специальную директорию, что будет корнем для хранилища логов полученных от сетевых устройств:

# mkdir /var/log/net

Конфигурируем syslog-ng для приёма данных от активных сетевых устройств путём правки файла syslog-ng.conf.

Ключевые параметры блока глобальных настроек "options" (эти параметры не все, а лишь необходимые для нашей конфигурации):

options {
  sync(0);
  use_dns(no);
  create_dirs(yes);
};

Определяем источник поступающих данных:

source snet { udp(ip(0.0.0.0) port(514)); };

Определяем фильтр, который будет отбирать из входящих обращений узлы из наших подсетей:

filter fnet0 { host("192.168.*.*"); };
filter fnet1 { host("10.10.*.*"); };

Определяем месторасположение логов:

destination dnet { file("/var/log/net/$HOST/$YEAR/$MONTH/log"); };
Определяем комбинацию вышеописанных компонентов для запуска логирования:

log { source(snet); filter(fnet0); destination(dnet); };
log { source(snet); filter(fnet1); destination(dnet); };

Перезапускаем сервис:

# /etc/init.d/syslog-ng restart


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )