IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux  >

Учебник для экзамена LPI 201: Поддержка системы

Администрирование, средний уровень (LPIC-2) тема 211

developerWorks
На предыдущую страницуСтраница 2 из 7 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Журналирование системных сообщений

О журналировании

Многие процессы и серверы под Linux записывают информацию, касающуюся изменения состояния, в так называемые "log файлы" (файлы системных журналов). Эти файлы системного журнала обычно находятся в каталоге /var/log/ и часто начинаются с фиксирования момента времени, указывающего, когда описанное событие произошел. Но как бы там ни было, нет ни условленной последовательности записи, ни определенного формата файлов системного журнала. Одна особенность, на которую вы в значительной степени все-таки можете рассчитывать -- то, что файлы системного журнала Linux являются простыми файлами ASCII, и в каждой строке файла содержится одно "событие". Часто (но не всегда) файлы системного журнала содержат относительно последовательный набор полей или разграниченных таблицей областей данных.

Некоторые процессы, особенно службы интернет, управляют файлом системного журнала, записываемого в пределах их собственного процесса. На самом деле, запись в файл системного журнала –- это, всего лишь, приобщение к открытому файлу дополнительных данных. Но многие программы (особенно демоны и процессы cron) используют стандарт syslog API, чтобы позволить управлять процессом журналирования демонам syslogd или klogd.



В начало


Анализ файлов системных журналов

Как именно вы будете анализировать то, что записано в log файле, зависит от формата, который используется. Для файлов системного журнала с форматом таблицы, вероятно, будут полезны инструменты типа cut, split, head и tail. grep -- самый мощный инструмент для обнаружения и фильтрации интересующего вас содержания для всех файлов системного журнала. Для более сложных задач обработки вы, вероятно, будете использовать sed, awk, perl или python.

Хорошим введением в область инструментов обработки текста, которые вы должны будете и, скорее всего, будете использовать для обработки и анализа файлов системного журнала, мог бы быть учебник IBM developerWorks Дэвида об утилитах обработки текста GNU. Существует также множество инструментов высокого уровня, чтобы обрабатывать файлы системного журнала, но эти инструменты обычно зависят от дистрибутива и/или не стандартизированы (но часто являются свободными).



В начало


Журналирование системных сообщений с помощью syslogd и klogd

Демон klogd перехватывает и журналирует сообщения ядра Linux. Как правило, klogd использует более общие способности syslogd, но в специальных случаях может записывать сообщения непосредственно в файл.

Общий демон syslogd обеспечивает протоколирование для многих программ. Каждое системное сообщение содержит, по крайней мере, поле для времени, поле для имени host’а и обычно поле для имени программы. Поведением syslogd управляет файл конфигурации /etc/syslog.conf. Сообщения от приложений (включая ядро) могут быть зарегистрированы в файлах, которые обычно находятся в /var/log/ или удаленно по сетевому сокету.



В начало


Конфигурирование /etc/syslog.conf

Файл /etc/syslog.conf содержит ряд правил, по одному в каждой строчке. Пустые строки и строки, начинающиеся с "*" игнорируются. Каждое правило состоит из двух полей, разделенных пробелом, поля отбора и поля действия. Поле отбора, в свою очередь, содержит одну или более разделенных точкой пар средство - приоритет. Средство - подсистема, которая хотела бы регистрировать свои сообщения и может иметь значения: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security, syslog, user, uucp и local0 через local7.

Приоритеты имеют определенный порядок, и данному приоритету соответствует значение "этот или выше", если в начале используется "=" (или "! ="). Приоритеты в порядке возрастания: debug, info, notice, warning или warn, err или error, crit, alert, emerg или panic (несколько имен имеют синонимы). none означает, что нет приоритета.

И средства и приоритеты могут принимать значение "*" (wildcard). Несколько средств могут быть разделены запятой, и разные селекторы могут быть разделены точкой с запятой. Например:

      # from /etc/syslog.conf
      # all kernel mesages
      kern.*                    -/var/log/kern.log
      # `catch-all' logfile
      *.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages
      # Emergencies are sent to everybody logged in
      *.emerg                   *



В начало


Конфигурирование удаленного журналирования системных сообщений

Чтобы сделать возможным удаленное журналирование сообщений syslogd (сообщения реальных приложений, но обработанные syslogd), вы должны сначала разрешить службе "syslog" прослушивание машин и пересылку. Для этого нужно добавить следующую строчку к каждому файлу конфигурации /etc/services:

      syslog    514/UDP

Чтобы настроить локальный syslogd для отправления сообщений удаленному хосту, вы определяете обычное средство и приоритет, но при обозначении действия начинаете с символа "@" для адреса хоста. Хост можно сконфигурировать обычным способом либо в файле /etc/hosts либо через DNS (имя хоста не обязательно должно быть разрешено через resolving, когда syslogd запускается впервые). Например:

      # from /etc/syslog.conf
      # log all critical messages to master.example.com
      *.crit                @master.example.com
      # log all mail messages except info level to mail.example.com
      mail.*;mail.!=info    @mail.example.com



В начало


Ротация файлов системных сообщений

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

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

      -rw-r-----  1 root adm 4135 2005-08-10 04:00 /var/log/syslog
      -rw-r-----  1 root adm 6022 2005-08-09 07:36 /var/log/syslog.0
      -rw-r-----  1 root adm  883 2005-08-08 07:35 /var/log/syslog.1.gz
      -rw-r-----  1 root adm  931 2005-08-07 07:35 /var/log/syslog.2.gz
      -rw-r-----  1 root adm  888 2005-08-06 07:35 /var/log/syslog.3.gz
      -rw-r-----  1 root adm 9494 2005-08-05 07:35 /var/log/syslog.4.gz
      -rw-r-----  1 root adm 8931 2005-08-04 07:35 /var/log/syslog.5.gz



В начало



На предыдущую страницуСтраница 2 из 7 На предыдущую страницу
    IBM в России Конфиденциальность Контакты