123 lines
9.5 KiB
XML
123 lines
9.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||
|
||
<chapter id="admin-basics--syslog--chapter">
|
||
|
||
<title id="admin-basics--syslog--chapter.title">Что происходит в системе</title>
|
||
|
||
<para>
|
||
Человеку, отвечающему за работоспособность системы, очень важно всегда
|
||
отчётливо представлять происходящие в ней события. Теоретически, никакое
|
||
происшествие не должно ускользнуть от его внимания. Однако компьютерные системы
|
||
настолько сложны, что отслеживать <emphasis>все</emphasis> события в них — выше
|
||
человеческих возможностей. Для того чтобы довести поток служебной информации до
|
||
разумного объёма, её надо <emphasis>просеять</emphasis> (выкинуть незначащие
|
||
данные), <emphasis>классифицировать</emphasis> (разделить на несколько групп
|
||
сообразно тематике) и <emphasis>журнализировать</emphasis> (сохранить в
|
||
доступном виде для дальнейшего анализа).
|
||
</para>
|
||
|
||
<para>
|
||
В Linux эта задача решается с помощью механизма <emphasis>централизованной
|
||
журнализации</emphasis>, который реализован системной службой
|
||
<application>syslogd</application>. Все части системы (включая ядро и системные
|
||
службы) рапортуют syslogd о происходящих в них событиях. В этот рапорт
|
||
включается имя службы, <emphasis>категория</emphasis> (facility) и
|
||
<emphasis>важность</emphasis> (priority) произошедшего события. Служба,
|
||
сообразно настройкам, классифицирует все эти рапорты в несколько выходных
|
||
потоков. Классификация и отсев данных всякого выходного потока происходит так:
|
||
для каждой категории событий определяется <emphasis>наименьшая</emphasis>
|
||
важность, которой событие должно обладать, чтобы попасть в этот выходной поток.
|
||
Например, легко определить поток «ошибки», в который будут попадать только
|
||
<emphasis>важные</emphasis> рапорты любых категорий или поток «безопасность», в
|
||
который будут попадать <emphasis>все</emphasis> рапорты категории
|
||
«безопасность» и те рапорты других категорий, важность которых заставляет
|
||
подозревать угрозу безопасности системы (например, рапорт категории «daemon» об
|
||
аварийном завершении работы системной службы).
|
||
</para>
|
||
|
||
<para>
|
||
<emphasis>Главное</emphasis> место хранения уже классифицированного syslogd
|
||
потока событий — <emphasis>системный журнал</emphasis> (т.н. log-файл).
|
||
Системный журнал — <emphasis>текстовый файл</emphasis>, содержащий рапорты
|
||
<emphasis>одного</emphasis> потока. Обычно <application>syslogd</application>
|
||
хранит системные журналы в каталоге <filename
|
||
class='directory'>/var/log/</filename> и его подкаталогах. Именно в системные
|
||
журналы, прежде всего в <filename>/var/log/messages</filename>,
|
||
<filename>/var/log/maillog</filename> и <filename>/var/log/dmesg</filename>,
|
||
необходимо заглядывать администратору, который хочет знать, что происходит в
|
||
системе. Поток рапортов о важных событиях <application>syslogd</application>
|
||
направляет и на <emphasis>системную консоль</emphasis> — выделенное
|
||
терминальное устройство. В ALT Linux роль системной консоли выполняет 12-я
|
||
<emphasis>виртуальная консоль</emphasis>, доступная по сочетанию клавиш
|
||
|
||
<keycombo>
|
||
<keycap>Alt</keycap>
|
||
<keycap>F12</keycap>
|
||
</keycombo>
|
||
или
|
||
<keycombo>
|
||
<keycap>Alt</keycap>
|
||
<keycap>Ctrl</keycap>
|
||
<keycap>F12</keycap>
|
||
</keycombo>.
|
||
|
||
Стоит заметить, что некоторые службы (например, <acronym>WWW</acronym>-сервер
|
||
<application>apache</application>) <emphasis>самостоятельно</emphasis>, в обход
|
||
<application>syslogd</application>, ведут журнализацию своих событий, поэтому
|
||
информацию о количестве и местоположении их журналов можно почерпнуть из их
|
||
файлов настроек (обычно, журналы хранятся в <filename
|
||
class='directory'>/var/log/</filename>).
|
||
</para>
|
||
|
||
<para>
|
||
Новые рапорты, поступающие в системный журнал, наиболее актуальны, а
|
||
предыдущие, по мере их устаревания, эту актуальность утрачивают. Если самые
|
||
старые данные в журнале не удалять, файловая система рано или поздно окажется
|
||
переполненной. В Linux организован механизм <emphasis>устаревания
|
||
журналов</emphasis>, которым занимается служба
|
||
<application>logrotate</application>. Запускаясь раз в день, logrotate
|
||
проверяет, какие из файлов следует признать устаревшими. Файл объявляется
|
||
устаревшим один раз в определённый промежуток времени (например, раз в неделю)
|
||
или при достижении им определённого размера.
|
||
</para>
|
||
|
||
<para>
|
||
Процедура устаревания такова. Для каждого журнала, как, например, для
|
||
<filename>/var/log/syslog/alert</filename>,
|
||
<application>logrotate</application> держит в том же каталоге
|
||
<emphasis>очередь устаревших копий</emphasis> — файлы с именами от
|
||
<filename>alert.1.bz2</filename> (предыдущая копия) до
|
||
<filename>alert.5.bz2</filename> (самая старая копия). Очередь
|
||
<emphasis>alert</emphasis> в нашем примере состоит из пяти упакованных с
|
||
помощью <command>bzip2</command> файлов. В момент устаревания
|
||
<filename>alert.4.bz2</filename> переименовывается в
|
||
<filename>alert.5.bz2</filename> (старые данные теряются), копия с номером 3
|
||
превращается в четвёртую, вторая — в третью, первая во вторую. Наконец, сам
|
||
журнал упаковывается и переименовывается в <filename>alert.1.bz2</filename>, а
|
||
на его месте заводится новый — пустой. Таким образом, администратор всегда
|
||
имеет доступ к <emphasis>свежему</emphasis> журналу и к нескольким его копиям
|
||
за определённое время.
|
||
</para>
|
||
|
||
<para>
|
||
Некоторые файлы в <filename class='directory'>/var/log/</filename> — не
|
||
текстовые, они являются неполноценными журналами и представляют собой «свалку
|
||
событий» для служб авторизации и учёта. Текстовую информацию о входе
|
||
пользователей в систему и выходе оттуда можно получить по команде
|
||
<command>last</command>, а узнать о тех, кто в данный момент пользуется
|
||
системой помогут команды <command>w</command> и <command>who</command>.
|
||
</para>
|
||
|
||
<para>
|
||
Множество важной информации может дать анализ
|
||
<emphasis>загруженности</emphasis> системы — сведения о процессорном времени и
|
||
потреблении оперативной памяти (<command>ps</command>, <command>top</command>,
|
||
<command>vmstat</command>), сведения об использовании дискового пространства
|
||
(<command>du</command>, <command>df</command>, <command>lsof</command>) и
|
||
сведения о работе сетевых устройств (<command>netstat</command>).
|
||
</para>
|
||
|
||
</chapter>
|