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 | Сообщения, относящиеся к почтовой системе |
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 / |