headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Переход с Windows на Linux: журналирование в Linux

Один из ключей к успеху в управлении любой системой — контроль за системными событиями. Linux предлагает необычный метод журналирования, а также позволяет конфигурировать составные части журналов.В Linux журналы представляют собой обычный текст, так что вы можете исследовать и читать их, не применяя специальных средств. Вы также можете написать скрипт для просмотра журналов и автоматического выполнения каких-либо функций на основе их содержимого.

Linux-журналы хранятся в каталоге /var/log. Здесь содержится несколько файлов, которые поддерживаются системой. Другие сервисы и программы также могут размещать здесь свои log-файлы. Большинство журналов доступны для чтения только суперпользователю root, но это можно легко изменить, скорректировав права доступа к файлам.

/var/log/messages

Журнал сообщений — основной системный log-файл. Он содержит сообщения о ходе загрузки системы, а также другие сообщения о статусе работающей системы. В этом файле накапливаются сообщения об ошибках ввода/вывода (IO), проблемах с сетью и другие сообщения о системных ошибках. Кроме того, здесь хранится и другая информация, например, о том, в какое время какой-нибудь пользователь стал root’ом. Если запущен какой-либо сервис, например, DHCP-сервер, в этом файле вы можете наблюдать за его деятельностью. С изучения файла /var/log/messages обычно начинают выявление и устранение неполадок.
/var/log/XFree86.0.log

Этот журнал содержит информацию о последнем запуске сервера Xwindow Xfree86. В случае возникновения проблем с запуском графической сессии в этом файле обычно можно найти причину неудачи.

Другие журналы

В каталоге /var/log могут быть и другие log-файлы в зависимости от того, какой дистрибутив Linux вы используете и какие сервисы и приложения запущены. Например, они могут быть связаны с запуском почтового сервера, распределением ресурсов, автоматическим выполнением задач и т.д.

Готовы? Rotate!

В каталоге /var/log вы можете видеть несколько файлов, имена которых оканчиваются цифрой. Это “rotated” архивы. Log-файлы могут быть довольно большими и громоздкими. В Linux имеется команда для ротации этих файлов, за счет чего текущая информация не смешивается с устаревшими, уже не нужными данными. Команда logrotate обычно запускается автоматически через определенные промежутки времени, но ее можно запустить и вручную. Команда logrotate берет текущую версию log-файла и добавляет в конец имени файла “.1″. Затем все предыдущие такие файлы нумеруются последовательно: “.2,” “.3,” и так далее. Чем больше число в конце имени файла, тем файл старше.

Вы можете сконфигурировать автоматический режим работы logrotate, отредаткировав файл /etc/logrotate.conf. Узнайте больше о команде logrotate при помощи man logrotate.

Средства работы с журналами

Для работы с log-файлами можно использовать любой инструмент работы с текстом. Здесь описаны некоторые наиболее полезные инструменты.

dmesg
Для беглого обзора журнала загрузки с целью просмотра сообщений о последней загрузке системы воспользуйтесь командой dmesg. Как правило, она выдает большое количество текста, так что вы скорее всего захотите воспользоваться конвейером (pipe).

dmesg | more

Команда, представленная выше, будет осуществлять постраничный вывод сообщений о ходе загрузки.

tail
У вас может возникнуть желание следить за log-файлом в ходе выполнения каких-то действий. Команда tail предназначена для просмотра последних нескольких строк текстового файла. Если добавить опцию -f, tail продолжит показывать новые строки файла по мере их формирования.

tail -f /var/log/messages

Команда, представленная выше, покажет последние десять строк файла /var/log/messages, затем продолжит следить за файлом и будет выдавать сообщения о новых действиях. Чтобы остановить команду tail -f, нажмите Ctrl + C для прерывания процесса.

more
Команда more работает так же, как и в DOS. Вы можете открыть с ее помощью файл или перенаправить на нее вывод для постраничного просмотра информации. Например, чтобы показать одну экранную страницу содержимого стартового log-файла Xfree86, введите такую команду:

more /var/log/XFree86.0.log

Закончив просмотр файла, нажмите “q” или [Ctrl]-C.

less
Другое средство для просмотра файлов — less. С его помощью можно просматривать содержимое файла и искать нужную информацию.

less /var/log/messages

Команда, представленная выше, покажет содержимое файла /var/log/messages. Для выхода нажмите “q”. Чтобы получить справку об использовании команды less, нажмите “h”.

logger
У вас может появиться желание поместить в системный журнал свои собственные сообщения. Вы можете просто добавить сообщение к нужному текстовому файлу, но вам необходимо будет продублировать стиль записи информации. Кроме того, вы должны изменить ваш код, если система журналирования была перенастроена. Команда logger позволяет посылать ваши собственные сообщения в службу журналирования. Используйте ее в скриптах для генерации сообщений о ходе выполнения процесса и об ошибках.

Настройка системы журналирования

Для управления журналированием существует два сервиса, или демона, klogd и syslogd. klogd имеет дело только с сообщениями ядра. syslogd имеет дело с другими системными сообщениями, например, касающимися приложений. Вы можете сконфигурировать оба эти сервиса, отредактировав файлы /etc/syslog.conf и /etc/sysconfig/syslog. Описание процедуры настройки системы журналирования выходит за рамки этой статьи. Подробную информацию вы можете найти в разделе Resources в конце этой статьи. Вы можете также обратиться к странице man для /etc/sylogd.conf.

В сущности, каждое сообщение, выдаваемое программным обеспечением, предоставляет некую информацию для определения, откуда оно поступило и в чем его суть. Файл /etc/syslog.conf позволяет установить, что нужно делать с сообщениями определенного типа. Вы можете помещать их в файл сообщений. Вы можете помещать их в файл настроек. Вы можете послать их на удаленный хост, где они будут обработаны в соответствии с конфигурацией его syslogd. Удаленное журналирование — замечательное средство обеспечения безопасности. Размещая журналы на удаленной системе, вы можете закрыть брешь в системе безопасности, заключающуюся в том, что злоумышленник может удалить следы своей деятельности в log-файлах.

Ниже приведены примеры настройки системы журналирования, взятые из man /etc/syslog.conf:
# Kernel messages are first, stored in the kernel
# file, critical messages and higher ones also go
# to another host and to the console
#
kern.* /var/adm/kernel
kern.crit @finlandia
kern.crit /dev/console
kern.info;kern.!err /var/adm/kernel-info

Первое правило направляет любое сообщение, имеющее отношение к ядру, в файл /var/adm/kernel.

Второе направляет все сообщения ядра с приоритетом crit и выше на удаленный хост finlandia. Это бывает полезно, поскольку если хост рушится и выдаются сообщения о непоправимых ошибках, вы не сможете прочитать накопленные сообщения. Если они хранятся на удаленном хосте, вы все же можете попытаться понять причину аварии.

Третье направляет эти сообщения на текущую консоль, так что человек, работающий на этом компьютере, тоже их получит.

Четвертая строка дает указание демону syslogd’ сохранить все сообщения ядра, которые приходят с приоритетами от info до warning в файл /var/adm/kernel-info. Все от err и выше исключается.

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

Конфигурирование журнала с помощью Webmin

Webmin имеет модуль для работы с log-файлами.
webminsyslogs2.jpg
Показаны все сконфигурированные log-файлы. Щелкните по log-файлу для редактирования его конфигурации.
webminsyslogslogedit2.jpg
Или нажмите View для просмотра содержимого log-файла.

Журналирование в вашей жизни

В Linux log-файлы крайне необходимы для выявления и устранения неисправностей и для поддержки системы. Журналирование происходит в текстовые файлы, поэтому для их просмотра не требуются проприетарные инструменты. Кроме того, текстовые файлы легко можно использовать при создании скриптов и программ.

Для предотвращения чрезмерного роста размеров log-файлов и отделения текущей информации от более старых данных предусмотрена ротация журналов. Имеется возможность конфигурирования процесса ротации.

Система журналирования легко конфигурируется. Журналы даже могут храниться на изолированной системе для обеспечения безопасности или с целью резервного копирования. Вы можете генерировать системные сообщения из ваших собственных скриптов или программ. Эти сообщения будут распознаны и обработаны демоном syslogd.

Оригинал на developerWorks IBM