daemon.=debug;daemon.!=info -/var/log/daemons
# Критические сообщения - всем тревога
*.emerg *
# Сохранять ошибки почты и новостей в отдельном файле
uucp,news.crit -/var/log/spooler
# Загрузочные сообщения
lоса17.* -/var/log/boot.log
9.3.2. Сетевое протоколирование
Протоколы — это история жизни системы; они необходимы администратору для выявления и устранения неполадок, но они необходимы и злоумышленнику — для поиска уязвимости или для того, чтобы скрыть следы своего вторжения. Поэтому иногда бывает полезно вести журнал на другом, более безопасном, компьютере.
Протоколирование в сети — это перенаправление сообщений демону syslogd, запущенному на другой машине локальной сети, где они будут записаны в локальный файл. Таким образом, один демон syslogd, передающий сообщения, выступает в роли клиента, а другой такой же, но принимающий и сохраняющий их, — в роли сервера.
Сообщения передаются по протоколу UDP. Он не обеспечивает ни гарантированной доставки пакетов, ни секретности, но работает несколько быстрее, чем TCP. Следующая строка должна присутствовать (в незакомментированном виде!) в файлах /etc/services
обоих компьютеров:
syslog 514/udp
Затем необходимо внести некоторые коррективы в файл конфигурации. На клиентской машине определите объекты протоколирования (селекторы), как и раньше, а в качестве действия укажите @имя_узла, где имя_узла — имя компьютера, на который будут перенаправлены сообщения. Это имя желательно указать в файле /etc/hosts
, так как демон syslogdможет быть запущен до сервера доменных имен или сервер DNS окажется недоступным.
На сервере протоколирования может быть необходимо перезапустить syslogdс другим набором ключей. В Red Hat-совместимых системах syslogdпо умолчанию игнорирует сообщения из сети; для того, чтобы он начал их принимать, он должен быть запущен с ключом -r (это верно для пакета sysklogdверсии 1.3 и новее. Ранние версии вели себя в точности наоборот).
Каждое сообщение в журнальном файле маркируется полным именем узла, с которого оно поступило (с указанием домена). Чтобы syslogdна сервере записывал только краткие имена узлов, нужно запустить его с ключом -l <���список_узлов>или -s <���список_доменов>. Узлы и домены в списках нужно разделять двоеточиями.
9.3.3. Протоколирование ядра. Демон klogd и команда dmesg
Демон klogdпредназначен для перехвата и протоколирования сообщений ядра Linux. Ядро, в отличие от пользовательского процесса, не может выводить сообщения, пользуясь стандартной функцией syslog(): библиотека, содержащая эту функцию, доступна только обычным приложениям. В ядре есть свои средства вывода сообщений, приложениям недоступные. Обработку этих сообщений и организует демон klogd. Обычно эта обработка состоит в пересылке сообщений демону syslogd, хотя klogdможет работать и самостоятельно.
Демон syslogdнаправляет сообщения ядра вперемешку с сообщениями от других источников в общий журнальный файл (обычно /var/log/messages
, смотри /etc/syslog.conf
), но ядро поддерживает и собственный кольцевой буфер сообщений. Для просмотра текущего состояния этого буфера предназначена команда dmesg. Ее вывод рекомендуется пропускать через фильтр moreили less.
Анализ сообщений ядра может потребоваться для того, чтобы узнать, поддерживает ли ваше ядро то или иное устройство или функцию. Например, чтобы узнать, включена ли поддержка квотирования (п.7.2.3), выполните команду
$ dmesg | grep -i quot
Сообщения, которые ядро генерирует и сохраняет в буфере во время загрузки системы, направляются также в файл /var/log/dmesg
(в не Red Hat-совместимых системах этот файл может называться /var/log/boot.msg
). По окончании загрузки этот файл закрывается и его содержимое становится доступно для просмотра и анализа.
9.3.4. Что делать с протоколами дальше? Утилита logrotate
Журнальные файлы разрастаются быстро, и рано или поздно с ними приходится что-то делать: сжимать, архивировать или просто удалять. В дистрибутивах линии Red Hat и Debian для управления журналами — не только системы syslog, но и любых прикладных программ, — предназначена утилита logrotate. Она устанавливается из пакета logrotate вместе с примерным конфигурационным файлом и сценарием, обеспечивающим ее периодический запуск (п.9.4). В результате установки этого пакета сценарий logrotate попадает в каталог /etc/cron.daily
.
Читать дальше
Конец ознакомительного отрывка
Купить книгу