Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.1001510152-01 02 (очередное обновление 14.67)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 101 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.1001510265-01 (очередное обновление 8.1.5)
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12
  • )
  • Astra Linux Common Edition 2.12


Службы управления журналами

  • syslog-ng - служба управления журналами syslog-ng по умолчанию используется в Astra Linux Special Edition x.7, доступна в репозиториях более ранних очередных обновлений;

  • rsyslog - служба управления журналами rsyslog по умолчанию используется в Astra Linux Common Edition и Astra Linux Special Edition ранее очередного обновления x.7, доступна в основном репозитории Astra Linux Special Edition x.7;

  • syslog (sysklogd) - в настоящее время не используется.

Основные возможности служб:

  • Получение и передача сообщение по сетевым протоколам TCP/UDP/... с возможностью настройки IP-портов и IP-адресов;
  • Загрузка внешних модулей;
  • Фильтрация и перенаправление сообщений по имени программы, источнику, номеру процесса и т.д.;
  • Удаление ненужных сообщений;

Конфигурация syslog-ng

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

  • основной файл: /etc/syslog-ng/syslog-ng.conf;
  • дополнительные файлы .conf в каталоге /etc/syslog-ng/conf.d.

Базовые принципы функционирования

Служба syslog-ng получает системные сообщения и перенаправляет их в указанные приемники. Сообщения могут приниматься из файлов, удаленных хостов и других источников. Сообщения поступают через один из определенных в конфигурации источников, и пересылаются в один или несколько приемников. Источники и приемники являются независимыми объектами, соединяемые путями передачи (далее - путь). Путь состоит из одного или нескольких источников одного или нескольких приемников. Дополнительно определение пути может содержать:

  • фильтры - правила, применяемые для селекции сообщений;
  • анализаторы (parsers) - правила для анализа и разбора сообщений;
  • модификаторы (rewriting rules) - правила для модификации сообщений.

Базовые принципы конфигурации

Конфигурационный файл состоит из определений объектов. Базовый синтаксис определения объекта:

Блок кода
<тип_объекта> <идентификатор_объекта> { <параметр>(<опция> ...), ...) ...; ... };

где:

  • тип объекта - один из типов:
    • source - источник;
    • destination - приемник;
    • log - путь;
    • filter - фильтр;
    • parser - анализатор;
    • rewrite rule - модификатор;
    • template - шаблон;
  • Идентификатор объекта - уникальное имя, определяющее объект. Имена регистр-зависимые. Имена, совпадающие с зарезервированными словами должны заключаться в кавычки. Рекомендуется использовать имена с префиксами, указывающими на тип объекта, например, префикс s_ для источников, префикс d_ для приемников и т.д. Повторное определение объектов не допускается если не задан параметр @define allow-config-dups 1;
  • Параметр - список параметров объекта, заключенный в фигурные скобки. Опции разделяются символом "точка с запятой".
  • Опция - модификаторы параметров;
  • Определение объекта завершается символом "точка с запятой".

Пример: определение объекта типа источник и именем s_internal:

Блок кода
source s_internal { internal(); };

Пример: определение объекта типа приемник:

Блок кода
destination d_net { tcp("127.0.0.1" port(1000) log_fifo_size(1000)); };
Для приемника определен параметр tcp c тремя опциями - IP-адрес, IP-порт и размер буфера.

Далее на определенные объекты можно ссылаться по его идентификатору, например в определении объекта "путь":

Блок кода
log { source(s_internal); destination(d_net); };

Параметры объектов могут иметь обязательные и необязательные опции. Обязательные опции являются позиционными и должны быть указаны в заданном порядке. Необязательные опции имеют формат
<имя>(<значение>) и могут указываться в любом порядке.

Пример: Источник s_demo_stream имеет один параметр - драйвер источника unix-stream(), который имеет одну обязательную опцию - имя сокета, и необязательные опции - max_connection и group:

Блок кода
source s_demo_stream1 { unix-stream("<path-to-socket>" max-connections(10) group(log)); };
  • Объекты могут использоваться до их определения;
  • Объекты могут определяться при их использовании (inline), что полезно при однократном применении, например, фильтров;
  • Строки, начинающиеся с символа "#" считаются комментариями и игнорируются;

Синтаксис определения пути:

Блок кода
log {
 source(s1); source(s2); ...
 optional_element(filter1|parser1|rewrite1);
 optional_element(filter2|parser2|rewrite2);
 ...
 destination(d1); destination(d2); ...
 flags(flag1[, flag2...]);
};

Пример простого пути:

Блок кода
source s_localhost { network(ip(127.0.0.1) port(1999)); };
destination d_tcp { network("10.1.2.3" port(1999) localport(999)); };
log { source(s_localhost); destination(d_tcp); };

В конфигурации syslog-ng поддерживаются глобальные опции для управления использование DNS, форматами временных отметок и других общих параметров. Синтаксис определения опций:

Блок кода
options { option1(params); option2(params); ... };

Пример применения глобальных опций:

Отключения разрешения имен через DNS:

Блок кода
options { use-dns(no); };

Перечень основных источников, приемников и фильтров:

Таблица 1. Драйверы источников

НазваниеОписаниеКомментарий
file()Получение сообщений из указанного файла.
internal()Сообщения, генерируемые службой syslog-ng.      
network()

Прием сообщений от удаленного хоста по протоколу BSD-syslog в сетях IPv4 и IPv6. Поддерживает сетевые протоколы TCP, UDP и TLS..


pipe()Чтение сообщений из указанного именованного потока.
program()Запуск указанного приложения и чтение сообщений из его стандартного вывода.
sun-stream()
sun-streams()
Чтение указанного устройства STREAMS (только в системах Solaris).
syslog()Прием сообщений по протоколу IETF-syslog.
system()Автоматическое определение платформы и сбор стандартных для этой платформы журналов.
systemd-journal()Прямое получение сообщений от служб журналов на платформах, использующих systemd.
systemd-syslog()Получение сообщений через сокет от служб журналов на платформах, использующих systemd.
unix-dgram()Получение сообщений через указанный сокет SOCK_DGRAM.
unix-stream()Получение сообщений через указанный сокет SOCK_STREAM.

Таблица 2. Драйверы приемников

НазваниеОписаниеКомментарий
elasticsearch
elasticsearch2

Отправка сообщений на сервер Elasticsearch. Вариант драйвера elasticsearch2 поддерживает Elasticsearch версия 2 и новее.


file() Запись сообщений в указанный файл.
hdfs()Запись сообщений в указанный файл на узле Hadoop Distributed File System (HDFS).
kafka()Публикация сообщений подписчикам через шину Apache Kafka.
loggly()Отправка сообщения провайдеру Loggly (https://www.loggly.com/).
logmatic()Отправка сообщения провайдеру Logmatic.io (https://logmatic.io/).
mongodb()Сохранение сообщений в СУБД MongoDB.
network()Отправка сообщений на удаленный хост по протоколу BSD через сети IPv4 IPv6. Поддерживает сетевые протоколы TCP, UDP и TLS.
pipe()Запись сообщений в указанный именованный поток.
program()Запуск указанной программы и отправка сообщений на ее стандартный ввод.
sql()Сохранение сообщений в СУБД SQL. Требует установки и настройки СУБД.
syslog()Отправка сообщений на удаленный хост по протоколу IETF-syslog protocol. Поддерживает сетевые протоколы TCP, UDP и TLS.
unix-dgram()Отправка сообщений в формате BSD через указанный сокет SOCK_DGRAM.
unix-stream()Отправка сообщений в формате Linux через указанный сокет SOCK_STREAM.
usertty()Отправка сообщений на терминал указанного пользователя если сессия пользователя активна.

Таблица 3. Доступные фильтры.

НазваниеОписаниеКомментарий
facility() Фильтрация сообщений по указанному объекту (facility).
filter()Вызов другого фильтра.
host()Фильтрация сообщений по имени хоста-отправителя.
inlist()Фильтрация сообщений по черным и белым спискам в файлах.
level()
priority()
Фильтрация сообщений по приоритету.
match()Фильтрация по регулярным выражениям, применяемым к заголовку и содержимому сообщения.
message() Фильтрация по регулярным выражениям, применяемым к содержимому сообщения.
netmask()Фильтрация сообщений по IP-адресу хоста-отправителя.
program()Фильтрация сообщений по названию приложения.
source()Фильтрация сообщений по указанному источнику.
tags()Фильтрация сообщений по наличию указанных тегов.

Конфигурация rsyslog

Параметры конфигурации:

  • основной файл /etc/rsyslog.conf/;
  • дополнительные файлы .conf etc/rsyslog.conf;

См. man rsyslog.conf

Инструмент astra-create-debug-logs

В состав дистрибутивов ОС Astra Linux входит инструмент командной строки astra-create-debug-logs, предназначенный для автоматического сбора архива журналов системных служб.
Для создания архива журналов инструмент должен быть запущен от имени суперпользователя:

Command
sudo astra-create-debug-logs

Файл с архивом журналов создаётся в каталоге /tmp/.

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

Для справки в таблице ниже приведено расположение файлов журналов некоторых наиболее часто используемых служб:

СлужбаПуть к файлу журнала
WEB-сервер Apache2/var/log/apache2/
Система управления печатью Cups/var/log/cups/
Почтовый сервер IMAP/Pop3 Dovecot

Необходимо включить запись в журнал в конфигурационном файле /etc/dovecot/conf.d/10-logging.conf в параметре log_path.
Например, указать: /var/log/dovecot.log

Почтовый агент Exim4/var/log/exim4/
Системный журнал Syslog/var/log/syslog*
Samba/var/log/samba/
X server/var/log/Xorg.*.log

СУБД PostgreSQL

/var/lib/postgres/версия/кластер/pg_log
Журнал сообщений ядра/var/log/kern.log
Журнал доменной службы ALD/var/log/ald/
Двоичные файлы parsec аудита/var/log/parsec/
Система контроля целостности файлов afick/var/log/afick/
Сервер FTP Vsftpd/var/log/vsftpd.log.*