План перехода с Windows на Linux: Часть 5. Журналирование в Linux

Работа с журналами

e-business архитектор IBM Крис Волден (Chris Walden) -- ваш гид в изучении состоящей из девяти частей серии пособий от developerWorks по применению ваших навыков эксплуатации Windows® в Linux®-окружении. Он осветит темы от процедуры входа в систему до работы в сети и от приемов использования командной строки до доступа к справочным системам -- вплоть до компиляции пакетов из доступных исходных кодов. В этой части мы узнаем, как с целью обеспечения безопасности и получения необходимой информации просматривать журналы, использовать содержащуюся в них информацию, а также узнаем, как осуществляется ротация log-файлов.

Крис Волден, e-business архитектор, IBM

Крис Волден (Chris Walden) -- e-business архитектор в IBM Developer Relations Technical Consulting, Остин, штат Техас, он занимается образовательской деятельностью, внедрением и консультированием среди бизнес-партнеров IBM. Он -- официальный местный фанатик Linux и распространяет хорошие новости среди тех, кто их слушает. Помимо исполнения обязанностей архитектора он управляет всеми Linux-серверами инфраструктуры, которые содержат файловые сервисы, сервисы печати и другие прикладные сервисы в кроссплатформенном пользовательском окружении. Имеет десятилетний опыт работы в компьютерной отрасли от осуществления поддержки до разработки Web-приложений и консалтинга.



04.04.2007

Один из ключей к успеху в управлении любой системой -- контроль за системными событиями. 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-файлами.

Рисунок 1. Просмотр системных журналов с помощью Webmin
исунок 1. Просмотр системных журналов с помощью Webmin

Показаны все сконфигурированные log-файлы. Щелкните по log-файлу для редактирования его конфигурации.

Рисунок 2. Экран редактирования журнала в Webmin
Рисунок 2. Экран редактирования журнала в Webmin

Или нажмите View для просмотра содержимого log-файла.

Просмотр log-файлов в консоли

Поскольку log-файлы в Linux представляют собой простой текст, для их просмотра не требуется специальных средств. В Linux любой инструмент для просмотра текстовых файлов может отобразить содержимое log-файла. Браузер, например, Mozilla, может не только показать содержимое log-файла, но и предоставляет возможность поиска. В Linux имеются также и консольные средства просмотра текстовых файлов. Команда more, способная отображать содержимое файла постранично, такая же, как в MS DOS. Команда less может отображать файл в режиме только для чтения и предоставляет возможность прокрутки и вперед, и назад, а также возможность поиска. Попробуйте ввести в командной строке less /var/log/messages.

Модуль Webmin взаимодействует с файлом /etc/syslog.conf, поэтому все, что вы делаете в одном из них, появляется в другом.


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

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

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

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

Ресурсы

Научиться

Получить продукты и технологии

  • Постройте ваш следующий проект разработки для Linux с использованием IBM trial software, загрузив его непосредственно с developerWorks.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=206989
ArticleTitle=План перехода с Windows на Linux: Часть 5. Журналирование в Linux
publish-date=04042007