Unix / Linux - Системный журнал

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

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

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

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

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

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

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

Facility

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

2

Priority

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

3

Selector

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

4

Action

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

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

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

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

auth

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

2

authpriv

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

3

console

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

4

cron

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

5

daemon

Системный демон

6

ftp

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

7

kern

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

8

local0.local7

Локальные объекты определены для каждого сайта

9

lpr

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

10

mail

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

11

mark

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

12

news

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

13

ntp

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

14

user

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

15

uucp

Подсистема UUCP

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

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

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

emerg

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

2

alert

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

3

crit

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

4

err

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

5

Warning

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

6

notice

Состояние, которое не является ошибкой, но, возможно, требует особой обработки.

7

info

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

8

debug

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

9

none

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

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

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

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

Файл /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

Каждая строка файла состоит из двух частей -

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

  • An action fieldэто говорит, что нужно делать с сообщением. Например, поместите его в файл или отправьте сообщение на терминал пользователя.

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

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

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

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

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

Регистрация действий

В поле действия указано одно из пяти действий -

  • Записывать сообщение в файл или на устройство. Например,/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 filename

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

2

-i

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

3

-p priority

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

4

-t tag

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

5

message

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

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

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

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

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

Расположение важных журналов

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

заявка Каталог
httpd / вар / журнал / httpd
самба / вар / журнал / самба
cron / var / log /
почта / var / log /
mysql / var / log /