Учебники

Unix / Linux — ведение журнала системы

В этой главе мы подробно обсудим ведение журнала в Unix.

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

Многие версии Unix предоставляют универсальное средство ведения журналов, называемое syslog . Отдельные программы, для которых требуется регистрация информации, отправляют информацию в системный журнал.

Unix syslog — это настраиваемая хостом единая система ведения журнала. Система использует централизованный системный процесс регистрации, который запускает программу / etc / syslogd или / etc / syslog .

Работа системного регистратора довольно проста. Программы отправляют свои записи журнала в syslogd , который обращается к файлу конфигурации /etc/syslogd.conf или / etc / syslog и, когда совпадение найдено, записывает сообщение в нужный файл журнала.

Есть четыре основных термина системного журнала, которые вы должны понимать:

Sr.No. Срок и описание
1

объект

Идентификатор, используемый для описания приложения или процесса, который отправил сообщение журнала. Например, mail, kernel и ftp.

2

приоритет

Показатель важности сообщения. Уровни в системном журнале определяются как руководящие указания, от отладочной информации до критических событий.

3

селектор

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

4

действие

Что происходит с входящим сообщением, которое соответствует селектору. Действия могут записывать сообщение в файл журнала, выводить сообщение на консоль или другое устройство, записывать сообщение вошедшему в систему пользователю или отправлять сообщение на другой сервер системного журнала.

объект

Идентификатор, используемый для описания приложения или процесса, который отправил сообщение журнала. Например, mail, kernel и ftp.

приоритет

Показатель важности сообщения. Уровни в системном журнале определяются как руководящие указания, от отладочной информации до критических событий.

селектор

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

действие

Что происходит с входящим сообщением, которое соответствует селектору. Действия могут записывать сообщение в файл журнала, выводить сообщение на консоль или другое устройство, записывать сообщение вошедшему в систему пользователю или отправлять сообщение на другой сервер системного журнала.

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

Теперь мы разберемся с возможностями системного журнала. Вот доступные возможности для селектора. Не все средства присутствуют во всех версиях Unix.

объект Описание
1

авт

Деятельность, связанная с запросом имени и пароля (getty, su, login)

2

AuthPriv

То же, что и auth, но записано в файл, который могут быть прочитаны только выбранными пользователями

3

приставка

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

4

хрон

Сообщения от системного планировщика cron

5

демон

Системный демон всеобъемлющий

6

FTP

Сообщения, относящиеся к демону ftp

7

деревенщина

Сообщения ядра

8

local0.local7

Местные объекты, определенные для сайта

9

LPR

Сообщения из системы строчной печати

10

почта

Сообщения, относящиеся к почтовой системе

11

отметка

Псевдо-событие, используемое для генерации меток времени в файлах журнала

12

Новости

Сообщения, относящиеся к сетевому протоколу новостей (nntp)

13

нтп

Сообщения, относящиеся к протоколу сетевого времени

14

пользователь

Обычные пользовательские процессы

15

UUCP

Подсистема UUCP

авт

Деятельность, связанная с запросом имени и пароля (getty, su, login)

AuthPriv

То же, что и auth, но записано в файл, который могут быть прочитаны только выбранными пользователями

приставка

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

хрон

Сообщения от системного планировщика cron

демон

Системный демон всеобъемлющий

FTP

Сообщения, относящиеся к демону ftp

деревенщина

Сообщения ядра

local0.local7

Местные объекты, определенные для сайта

LPR

Сообщения из системы строчной печати

почта

Сообщения, относящиеся к почтовой системе

отметка

Псевдо-событие, используемое для генерации меток времени в файлах журнала

Новости

Сообщения, относящиеся к сетевому протоколу новостей (nntp)

нтп

Сообщения, относящиеся к протоколу сетевого времени

пользователь

Обычные пользовательские процессы

UUCP

Подсистема UUCP

Приоритеты системного журнала

Приоритеты системного журнала приведены в следующей таблице:

Sr.No. Приоритет и описание
1

АВАРИЙНАЯ

Чрезвычайные ситуации, такие как неизбежный сбой системы, обычно передаются всем пользователям.

2

бдительный

Условие, которое следует немедленно исправить, например, поврежденная системная база данных

3

критика

Критическое состояние, например, ошибка оборудования

4

заблуждаться

Обычная ошибка

5

Предупреждение

Предупреждение

6

уведомление

Условие, которое не является ошибкой, но, возможно, должно быть обработано особым образом

7

Информация

Информационное сообщение

8

отлаживать

Сообщения, которые используются при отладке программ

9

никто

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

АВАРИЙНАЯ

Чрезвычайные ситуации, такие как неизбежный сбой системы, обычно передаются всем пользователям.

бдительный

Условие, которое следует немедленно исправить, например, поврежденная системная база данных

критика

Критическое состояние, например, ошибка оборудования

заблуждаться

Обычная ошибка

Предупреждение

Предупреждение

уведомление

Условие, которое не является ошибкой, но, возможно, должно быть обработано особым образом

Информация

Информационное сообщение

отлаживать

Сообщения, которые используются при отладке программ

никто

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

Комбинация средств и уровней позволяет вам различать, что регистрируется и куда идет эта информация.

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

Когда вы указываете уровень, система будет отслеживать все на этом уровне и выше.

Файл /etc/syslog.conf

Файл /etc/syslog.conf контролирует, куда записываются сообщения. Типичный файл syslog.conf может выглядеть так:

*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                       @prep.ai.mit.edu
auth.*                       root,amrood
netinfo.err                  /var/log/netinfo.log
install.*                    /var/log/install.log
*.emerg                      *
*.alert                      |program_name
mark.*                       /dev/console

Каждая строка файла содержит две части —

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

  • Поле действия, которое говорит, что должно быть сделано с сообщением. Например, поместите его в файл или отправьте сообщение на терминал пользователя.

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

Поле действия, которое говорит, что должно быть сделано с сообщением. Например, поместите его в файл или отправьте сообщение на терминал пользователя.

Ниже приведены заметные моменты для вышеуказанной конфигурации —

  • Селекторы сообщений состоят из двух частей: объекта и приоритета . Например, kern.debug выбирает все сообщения отладки (приоритет), сгенерированные ядром (средство).

  • Селектор сообщений kern.debug выбирает все приоритеты, которые больше, чем отладка.

  • Звездочка вместо объекта или приоритета указывает «все». Например, * .debug означает все сообщения отладки, а kern. * Означает все сообщения, сгенерированные ядром.

  • Вы также можете использовать запятые для указания нескольких объектов. Два или более селектора могут быть сгруппированы с помощью точки с запятой.

Селекторы сообщений состоят из двух частей: объекта и приоритета . Например, kern.debug выбирает все сообщения отладки (приоритет), сгенерированные ядром (средство).

Селектор сообщений kern.debug выбирает все приоритеты, которые больше, чем отладка.

Звездочка вместо объекта или приоритета указывает «все». Например, * .debug означает все сообщения отладки, а kern. * Означает все сообщения, сгенерированные ядром.

Вы также можете использовать запятые для указания нескольких объектов. Два или более селектора могут быть сгруппированы с помощью точки с запятой.

Логирование действий

Поле действия указывает одно из пяти действий —

  • Записать сообщение в файл или на устройство. Например, /var/log/lpr.log или / dev / console .

  • Отправить сообщение пользователю. Вы можете указать несколько имен пользователей, разделяя их запятыми; например, root, amrood.

  • Отправить сообщение всем пользователям. В этом случае поле действия состоит из звездочки; например, *.

  • Передайте сообщение в программу. В этом случае программа указывается после символа канала Unix (|).

  • Отправьте сообщение в системный журнал на другом хосте. В этом случае поле действия состоит из имени хоста, которому предшествует знак at; например, @ tutorialspoint.com.

Записать сообщение в файл или на устройство. Например, /var/log/lpr.log или / dev / console .

Отправить сообщение пользователю. Вы можете указать несколько имен пользователей, разделяя их запятыми; например, root, amrood.

Отправить сообщение всем пользователям. В этом случае поле действия состоит из звездочки; например, *.

Передайте сообщение в программу. В этом случае программа указывается после символа канала Unix (|).

Отправьте сообщение в системный журнал на другом хосте. В этом случае поле действия состоит из имени хоста, которому предшествует знак at; например, @ tutorialspoint.com.

Команда регистратора

Unix предоставляет команду logger , которая является чрезвычайно полезной командой для ведения системного журнала. Команда logger отправляет сообщения регистрации демону syslogd и, следовательно, вызывает системное ведение журнала.

Это означает, что мы можем в любой момент проверить из командной строки демон syslogd и его конфигурацию. Команда logger предоставляет метод для добавления однострочных записей в файл системного журнала из командной строки.

Формат команды —

logger [-i] [-f file] [-p priority] [-t tag] [message]...

Вот детали параметров —

Sr.No. Вариант и описание
1

-f имя файла

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

2

Регистрирует идентификатор процесса процесса регистрации в каждой строке.

3

приоритет

Вводит сообщение с указанным приоритетом (указывается селекторная запись); приоритет сообщения может быть задан численно или в виде пары unit.priority. Приоритет по умолчанию — user.notice.

4

-t тег

Помечает каждую строку, добавленную в журнал, указанным тегом.

5

сообщение

Строковые аргументы, содержимое которых объединено в указанном порядке, разделены пробелом.

-f имя файла

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

Регистрирует идентификатор процесса процесса регистрации в каждой строке.

приоритет

Вводит сообщение с указанным приоритетом (указывается селекторная запись); приоритет сообщения может быть задан численно или в виде пары unit.priority. Приоритет по умолчанию — user.notice.

-t тег

Помечает каждую строку, добавленную в журнал, указанным тегом.

сообщение

Строковые аргументы, содержимое которых объединено в указанном порядке, разделены пробелом.

Вы можете использовать справку Manpage, чтобы проверить полный синтаксис этой команды.

Вращение журнала

Файлы журналов имеют тенденцию к очень быстрому росту и занимают много места на диске. Чтобы включить ротацию журналов, в большинстве дистрибутивов используются такие инструменты, как newsyslog или logrotate .

Эти инструменты должны вызываться с частым интервалом времени с помощью демона cron . Проверьте man-страницы для newsyslog или logrotate для более подробной информации.

Важные местоположения журнала

Все системные приложения создают свои файлы журналов в / var / log и его подкаталогах. Вот несколько важных приложений и соответствующих им каталогов журналов —