Регистрация событий в журналах с помощью Syslogd и Klogd в Linux

{title}

Задачи администрирования в Linux сложны во многих ситуациях из-за количества процессов, сервисов и ролей, которые выполняются каждую секунду, и к этому мы должны добавить логины, установку приложений и не забыть все события, которые каждое приложение регистрирует в дистрибутиве. удалось. К счастью для администраторов и сотрудников по контролю или аудиту, у нас есть несколько команд, разработанных для облегчения управления и контроля системных событий, и поэтому Solvetic сосредоточится на двух наиболее важных командах для этой цели. Системный журнал и Клогд.

Журнал похож на журнал, где записываются события, ошибки, изменения и процессы, генерируемые приложениями или операционной системой, а затем читают этот журнал и определяют, какие события произошли, особенно в случае ошибок или уязвимостей. Файлы журналов в системе Linux находятся в каталоге / var / log. Системой журналов Linux управляют два демона:

SyslogD

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

Klogd

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

1. Что такое и как использовать Syslogd в логах Linux


Давайте посмотрим, что это такое и как использовать Syslogd

Что такое syslogd?

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

Команда Syslogd имеет стандартное поведение BSD, и новые версии Syslogd прозрачно взаимодействуют с версией syslog, доступной в стандартных библиотеках, поэтому, если двоичный файл, связанный со стандартными общими библиотеками, работает неправильно, Syslogd отобразит Поведение этого двоичного файла.

Шаг 1
Основной файл конфигурации - /etc/syslog.conf, а реестр обычно указывается с записями правил. Селектор (средство. Приоритет) и действие указываются в каждой строке. Следует помнить, что в современных дистрибутивах Linux команда Syslogd была заменена новыми реализациями Syslog, такими как rsyslog или syslog-ng, поэтому, если мы хотим использовать Syslogd, мы можем установить его с помощью следующей команды:

 apt установить inetutils-syslogd 

{title}

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

 nano /etc/syslog.conf 

{title}

Шаг 3
Там мы нашли все маршруты, которые Syslogd будет использовать для сбора информации. Синтаксис общего использования Syslogd выглядит следующим образом:

 syslogd [-a сокет] [-d] [-f файл конфигурации] [-h] [-l список хостов] [-m интервал] [-n] [-p сокет] [-r] [-s список] домен] [-S] [-v] [-x] 

Шаг 4
Среди доступных вариантов у нас есть:

Укажите дополнительные розетки

Этот аргумент позволяет нам указать дополнительные сокеты, которые Syslogd должен прослушивать, он используется в случае, если любой демон выполняется в среде chroot (). Можно будет использовать до 19 дополнительных розеток.

 -разъем 

Активировать режим отладки

Этот аргумент активирует режим отладки, который будет держать Syslog на переднем плане и таким образом записывать много отладочной информации в текущем tty.

 -d 

Файл конфигурации

Этот аргумент указывает альтернативный файл конфигурации вместо файла по умолчанию /etc/syslog.conf.

 -f конфигурационный файл 

Блокировать пересылку удаленных сообщений

Этот параметр предотвращает повторную отправку Syslogd сообщений, которые он получает от удаленных хостов.

 -h 

Определить имя сети

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

 -l список хостов 

Определить интервал времени

При использовании этого параметра мы можем указать интервал времени для использования, по умолчанию это значение составляет 20 минут.

 интервал 

Избегайте запуска Syslodg

Этот параметр запрещает запуск Syslogd в фоновом режиме.

 -n 

Установить доменный сокет

Это позволяет нам указать альтернативный сокет домена Unix вместо / dev / log

 -р гнездо 

Разрешить сетевые сообщения

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

 -r 

Определить доменное имя

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

 список доменов 

Включить регистрацию

Включить подробное ведение журнала,

 -S 

Включить текущую версию

Просмотр текущей версии Syslogd.

 -v 

{title}

Шаг 5
При выполнении любой из доступных опций мы можем видеть все задачи, которые выполняются внутри:

{title}

2. Сигналы в логах Syslogd Linux

Шаг 1
Syslogd может реагировать на набор сигналов, возможность отправить сигнал Syslogd, выполнив:

 kill -SIGNAL 'cat /var/run/syslogd.pid' 

Шаг 2
Когда этот сигнал выполняется, в игру вступают различные компоненты, такие как. Таким образом, Syslogd является практическим решением для анализа событий Linux.

SIGHUP

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

SIGTERM

Срок службы истекает.

SIGINT, SIGQUIT

Если отладка включена, они игнорируются, иначе Syslogd истечет.

SIGUSR1

Включить или отключить отладку.

SIGCHLD

Ждите новых сообщений.

3. Настройте файл Syslogd Linux


Syslogd использует несколько иной синтаксис в своем файле конфигурации, чем традиционный файл исходных BSD-источников. Конфигурация syslogd выполняется через файл /etc/syslogd.conf. Через этот файл вы указываете, куда следует направлять разные сообщения. Вы можете оставлять пустые строки или комментировать целые строки с помощью символа "#"

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

 SYSLOGD_OPTIONS = "- r -m 0" 
Обычно syslogd занимает порт 514, мы должны убедиться, что брандмауэр не блокирует его, чтобы проверить, на каком порту он работает, с терминала мы пишем следующий код
 grep syslog / etc / services 
В службах Log в этой строке мы видим, что журналы "mail, cron, info" идут в каталог сообщений
 * .info; mail.none; authpriv.none; cron.none / var / log / messages 
Мы постараемся отправить сообщение всем журналам с помощью следующей команды
 grep "Тестовое сообщение" / var / log / * 
В этом случае мы видим, что нескольким журналам запрещены разрешения, поэтому они не могут быть записаны.

$config[ads_text6] not found

{title}

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

Журналы сбоев, ошибок и предупреждений

 отладка, информация, уведомление, предупреждение, предупреждение, ошибка, крит, предупреждение, ошибка и паника 

Журналы сообщений типа

Несколько журналов сообщений типа

 auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, syslog, user, uucp 
Наиболее важными являются
  • var / log / messages: здесь мы найдем журналы, которые поступают с приоритетной информацией (информация), уведомлением (уведомление) или предупреждением (предупреждение).
  • /var/log/kern.log: здесь хранятся логи ядра, сгенерированные klogd.
  • /var/log/auth.log: в этом журнале регистрируются логины в системе, время выполнения и т. д. Неудачные попытки записываются в строках с информацией о недопустимом типе или неверном логине.
  • / var / log / dmesg : этот файл хранит информацию, сгенерированную ядром во время запуска системы.

$config[ads_text5] not found

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

Использование подстановочных знаков

Он используется в качестве подстановочного знака для всех предыдущих приоритетов и служб, в зависимости от его использования (если до или после символа разделения `. ').

 "*" (Звездочка) = 

Не отмечать приоритет

Указывает, что нет определенного приоритета для обслуживания выбранной линии.

 ««: (Белый, пробел, ноль) 

Выберите разные услуги

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

 ", " (Запятая) 

$config[ads_text5] not found

Контролировать разные сообщения

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

 «;» (Точка с запятой) 

Выберите приоритет сообщения

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

 «=» (То же самое) 

4. Что это такое и как использовать Klogd в логах Linux

Что такое Клогд?

Klogd (Kernel Log Daemon) - системный демон, разработанный для перехвата и регистрации сообщений из ядра Linux. Функция команды Klogd ориентирована на сбор нескольких экземпляров ядра, таких как происхождение, расстановка приоритетов и разрешение адресов ядра.

$config[ads_text6] not found

В средах Linux у нас есть два основных источника информации о реестре ядра, таких как:

  • Файловая система / proc
  • Интерфейс системного вызова (sys_syslog)
Команда Klogd была разработана для выбора наиболее удобного источника информации для отображения информации, для этого, во-первых, проверьте наличие файловой системы / proc, которая монтирует, если она существует, файл / proc / kmsg используется в качестве источника информации журнала ядра, в случае, если файловая система proc не смонтирована, Klogd будет использовать системный вызов для получения сообщений ядра. Если сообщения ядра перенаправляются с помощью демона syslogd, демон Klogd, начиная с версии 1.1, может устанавливать приоритеты для сообщений ядра, этот приоритет находится в диапазоне, поэтому приоритет сообщения Ядро закодировано как одна цифра внутри.

При получении сообщения ядра демон Klogd прочитает назначенный уровень приоритета и предоставит ему уровень приоритета на основе сообщения системного журнала. При использовании Klogd также будет возможно изменить представление сообщений ядра в системной консоли, в обычном ядре уровень журнала консоли по умолчанию установлен равным 7, таким образом, все сообщения с более низким уровнем приоритета до 7 (высший приоритет) появится на консоли. Сообщения уровня 7 приоритета считаются сообщениями «отладки» и поэтому не будут отображаться в консоли, чтобы не насыщать другие события ядра информацией.

Klogd имеет функцию, называемую Kernel Address Resolution, благодаря которой, если ядро ​​обнаруживает состояние внутренней ошибки, автоматически активируется протокол общей ошибки защиты. Это часть процедуры обработки GPF, в которой ядро ​​печатает отчет о состоянии, в котором указывается состояние процессора, когда генерируется сбой, в этом результате мы увидим такие детали, как содержимое регистров микропроцессора, содержимое стек ядра и мониторинг функций, которые выполнялись до ошибки.

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

Шаг 1
Как и Syslogd, в текущих дистрибутивах Klog был заменен более динамическими командами, поэтому для его установки мы выполним следующее. Там мы вводим букву S, чтобы подтвердить загрузку и установку.

 apt установить busybox-syslogd 

{title}

Шаг 2
Синтаксис Klogd выглядит следующим образом:

 klogd [-cn] [-d] [-f имя] [-iI] [-n] [-o] [-p] [-s] [-k имя] [-v] [-x] [-2 ] 

Шаг 3
Эти варианты:

Определить уровень записи

Этот параметр определяет уровень журнала консольных сообщений по умолчанию в n.

 -CN 

Режим отладки

Эта опция включает режим отладки.

 -d 

Журнал сообщений

Файл записывает сообщения с указанным именем файла вместо установки syslog.

 -f 

Определить демонов, бегущих

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

 -i -I 

Стоп Клогд в фоновом режиме

Запрещает запуск Klogd в фоновом режиме.

 -n 

$config[ads_text6] not found

Полное чтение в буферах сообщений

$config[ads_text5] not found

Эта опция позволяет Klogd читать и записывать все сообщения, найденные в буферах сообщений ядра.

 -или 

Системный вызов Force

Вынудите команду Klogd использовать системный интерфейс вызовов для буфера сообщений ядра.

 -s 

Посмотреть версию Klogd

Распечатать версию Klogd.

 -v 

{title}

Шаг 4
Если мы хотим прочитать все события после входа в систему, мы выполним следующее:

 klogd -o -f ./krnl.msg 

Шаг 5
После этого можно будет получить доступ к содержимому указанного файла:

{title}

$config[ads_text5] not found

5. Клогд сигналы в Linux


Команда Klogd может ответить на восемь (8) сигналов: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 и SIGCONT. Сигналы SIGINT, SIGKILL, SIGTERM и SIGHUP позволяют демону закрывать источники журнала ядра и корректно завершать процесс, в то время как сигналы SIGTSTP и SIGCONT используются для запуска и остановки журнала ядра.

Шаг 1
Например, если мы хотим размонтировать файловую систему / proc, мы должны выполнить следующие команды:

 # kill -TSTP pid # umount / proc # kill -CONT pid 

Шаг 2
Некоторые файлы для использования с Klogd:

  • / proc / kmsg: исходный файл для сообщений ядра klogd
  • /var/run/klogd.pid: файл, содержащий идентификатор процесса klogd
  • /boot/System.map, /System.map, /usr/src/linux/System.map: это расположение по умолчанию для системных карт ядра.

$config[ads_text6] not found

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