Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Правильная настройка логов(системных журналов событий) один из важных моментов в системном администрировании. В логах находится все, что нужно сисадмину для поиска проблем в системе.


Новые статьи на сайте:

 

Hilik     Настроим все

 http://www.hilik.org.ua/

 

syslogd. Настраиваем логи.

Правильная настройка логов(системных журналов событий) один из важных моментов в системном администрировании. В логах находится все, что нужно сисадмину для поиска проблем в системе. В базовой системе FreeBSD есть syslogd, он занимается записью в логи сообщений от разных сервисов системы. За настройку логирования отвечает конфигурационный файл syslogd.conf.

В файле настроек определяется в какой файл будут писаться сообщения. Сообщения фильтруются по priority(приоритету), по facility(это по сути от кого поступают сообщения, к примеру от ядра они помечаются как LOG_KERN), а так же по имени программы отправляющей сообщение.
Исходя из этих особенностей мы можем фильтровать сообщения, т.е. писать сообщения каждого типа в свой файл.
Например запись сообщений от ядра(фасилити LOG_KERN) с приоритетом критической ошибки(LOG_CRIT) в файл /var/log/kern.crit должна в syslogd.conf настроена так:

kern.crit        /var/log/kern.crit

если есть необходимость любые сообщения с приоритетом LOG_ERR писать в файл, настраивается это так:

*.err         /var/log/msg.err

То же самое относится к фасилити. Например, что бы все сообщения, с любыми приоритетами от почтовой системы писались в файл /var/log/maillog, нужно внести такие настройки:

mail.*           /var/log/maillog

Следующая немаловажная возможность, это возможность писать в файл события попадающие под один из перечисленных фильтров. К примеру, если мы хотим писать в файл /var/log/error, события с приоритетом LOG_CRIT и LOG_ERR, то в syslogd.conf это запишется так:

*.crit;*.err    /var/log/error

И в заврешении разговора о фильтрах, пример как логировать все события в один файл.
Настраивается это так:

*.*           /var/log/all.log

Этот пример есть в файле syslog.conf

А теперь о другой, важной особенности syslogd. Все подсистемы работающие с syslogd отправляют сообщения только на локальную машину. Но, сам syslogd может перенаправлять эти сообщения на удаленную машину. И соответсвенно syslogd умеет принимать сообщения от удаленной системы. Только это все надо настроить.
К примеру перенаправим все сообщения почты на наш сервер логирования с адресом 192.168.1.1, в syslog.conf настройки будут такие:

mail.*        @192.168.1.1

Вместо файла в который нужно писать, мы вписали адрес лог сервера с @ вначале.
Но удаленный сервер не булет принимать сообщения от кого попало. Для начала нужно настроить syslogd на хосте 192.168.1.1, что бы он принимал сообытия от нашей локальной сети. Для этого в rc.conf нужно задать соответствующие флаги для syslogd.

syslogd_flags="-a 192.168.1.0/24:*"

Важно так же убрать флаг -s на принимающей стороне, иначе опция -a будет игнорироваться. На отсылающей сообщения стороне, если будет указан флаг -ss, то сообщения отправляться не будут. Если вы хотите казать несколько сетей от которых нужно принимать сообщения или же просто несколько хостов, то нужно добавлять флаг -a для каждой сети или хоста.

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

 

 Буду рад комментариям, постараюсь ответить на вопросы. Заходите на сайт http://www.hilik.org.ua/
 


В избранное