Трассировка Эллес
Для поддержки трассировки в Эллес используется механизм коррелируемого логирования.
Общие сведения
Механизм трассировки в Эллес обеспечивает установление корреляции между лог-записями, формируемыми как при обработке входящих запросов внешних клиентов, так и при выполнении внутренних операций. Корреляция позволяет объединять связанные события и управлять уровнем их детализации в соответствии с заданными правилами.
| В текущей версии Эллес корреляция поддерживается только для запросов по протоколу LDAP. |
Система логирования поддерживает включение в лог-записи уникального идентификатора в формате GUID (traceid). Этот идентификатор формируется при инициировании операции, сопровождающейся генерацией логов, и используется для связи всех записей, относящихся к одному запросу.
Добавление traceid определяется набором конфигурируемых правил. Эти правила задают перечень атрибутов входящего сообщения, анализируемых при установлении корреляции, а также определяют объем логируемой информации (стандартный или расширенный) для соответствующего набора событий. Имя примененного правила также включается в запись в логе.
Для коррелированных событий может быть настроен отдельный уровень логирования (см.
«Настройка уровня логирования»).
Соответствующие записи могут направляться в отдельный лог-файл с использованием выделенного класса логирования — trace.
Для обеспечения единообразия и удобства последующей обработки может использоваться однострочный формат вывода логов, аналогичный формату записей в syslog. Он включается установкой значения конфигурационного параметра debug syslog format = always в разделе global файла smb.conf (см. описание параметра в разделе
«Конфигурационные параметры»).
|
Параметры корреляции
Параметры корреляции соответствуют атрибутам входящего сообщения и определяют условия включения идентификатора трассировки (traceid) в лог-записи, а также объем логируемой информации.
Поддерживаются параметры:
-
client ip— список IP-адресов клиентов, к запросам от которых применяется правило;Пример значения:
192.168.0.1, 192.168.0.2. -
client sid— список SID учетных записей, к запросам от которых применяется правило;Пример значения:
S-1-5-21-3289515827-3284480267-3537100884-500, S-1-5-21-1290136491-5654321763-3616140445-500. -
ldap filter pattern— подстрока, которая должна содержаться в фильтре LDAP-запроса, чтобы к нему применилось правило;Пример значения:
(memberOf=someGroup). -
ldap base— базовый контекст (base DN), который должен использоваться в LDAP-запросе, чтобы к нему применилось правило;Пример значения:
dc=elles,dc=inno,dc=tech. -
start time,end time— время начала и конца периода действия правила в формате ISO 8601;Пример значения:
2025-10-29T21:00:00. -
protocol— список протоколов, к которым применяется правило;Пример значения:
LDAP.В текущей версии Эллес корреляция поддерживается только для запросов по протоколу LDAP. -
type— результат применения правила:-
LOG(по умолчанию) — при логировании запросов, подпадающих под заданные параметрами критерии, используются существующие классы логирования и заданные в конфигурации или стандартные настройки уровня логирования; -
DEBUG— при логировании запросов, подпадающих под заданные параметрами критерии, используются отдельный класс логированияtraceи заданный для него в конфигурации уровень логирования.
-
Правила корреляции
В систему логирования Эллес параметры загружаются в виде правил, включаемых в конфигурацию контроллера домена Эллес (/app/inno-samba/etc/smb.conf) в формате:
[rule:<уникальное имя правила>] client ip = <значение1>, <значение2> client sid=<значение1>, <значение2> ldap filter pattern=<значение1> ldap base=<значение> start time=<значение> end time=<значение> protocol=<значение1>, <значение2> type=LOG|DEBUG
Если параметр в правиле не определен, он не учитывается. Правило применяется, если атрибуты входящего запроса соответствуют всем заданным в нем параметрам. Правилу без параметров удовлетворяют все входящие запросы.
Правила могут определяться как непосредственно в разделе global в smb.conf, так и в отдельном файле, который должен быть добавлен в конфигурацию с помощью директивы include. Например:
[global] ... include = /app/inno-samba/etc/tracing-rules.conf ...
Правила должны следовать друг за другом.
Для каждого из них в квадратных скобках должно быть указано уникальное имя после префикса rule.
На Рис. 1 представлены возможные варианты логирования входящего запроса в зависимости от заданных правил.
На схеме:
-
Атрибуты поступившего запроса соответствуют параметрам в одном или нескольких правилах типа
DEBUG(имеет приоритет над правилами типаLOG):-
в каждую лог-запись добавляются
traceidи имя правила; -
если в конфигурации настроен класс логирования
trace, логирование ведется в указанный файл с указанным уровнем; -
если отдельная настройка для класса
traceв конфигурации отсутствует, логи направляются в стандартный канал с данным классом.
-
-
Атрибуты поступившего запроса соответствуют параметрам в одном или нескольких правилах типа
LOGи не подпадают под критерии ни одного правила типаDEBUG:-
в каждую лог-запись добавляются
traceidи имя правила; -
логирование ведется в соответствии с заданными в конфигурации или стандартными настройками.
-
-
Атрибуты поступившего запроса не соответствуют параметрам ни в одном правиле — логирование ведется в соответствии с заданными в конфигурации или стандартными настройками.
Включение корреляции записей в логах
Конфигурирование выполняется от имени пользователя, имеющего необходимые права для работы с файлами в соответствующих каталогах на сервере контроллера домена.
Общая последовательность настройки коррелируемого логирования на контроллере домена Эллес:
-
Определите правила в файле /app/inno-samba/etc/tracing-rules.conf.
Например:[rule:LDAPLoggingRule] client sid=S-1-5-21-3289515827-3284480267-3537100884-500, S-1-5-21-1290136491-5654321763-3616140445-500 type=LOG
-
Включите файл tracing-rules.conf в конфигурацию контроллера домена (/app/inno-samba/etc/smb.conf) с помощью
include.
Например:[global] netbios name = ELLES-DC1 realm = ELLES.INNO.TECH server role = active directory domain controller server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, lacheck, disco, mt, core_manager workgroup = ELLES include = /app/inno-samba/etc/tracing-rules.conf [sysvol] path = /app/inno-samba/var/locks/sysvol read only = No [netlogon] path = /app/inno-samba/var/locks/sysvol/elles.inno.tech/scripts read only = No -
При необходимости настройте класс логирования
trace.
Например:[global] ... log level = 5 trace:10@/var/log/trace.log ...
Внесенные в конфигурацию изменения применяются автоматически через 5 секунд после сохранения файла smb.conf.
Результат применения правила LDAPLoggingRule из примера выше к лог-записям (используется однострочный формат вывода):
2025-11-27T16:22:32.422703+03:00 elles-dc1 samba[25448]: traceid_ex=44e6790e-18c5-41f6-9642-b9c3fa0cb36b [LDAPLoggingRule], ldapsrv_SearchRequest: ldb_request ONE dn=CN=Users,DC=ELLES,DC=INNO,DC=TECH filter=(objectClass=user) 2025-11-27T16:22:32.423794+03:00 elles-dc1 samba[25448]: traceid_ex=44e6790e-18c5-41f6-9642-b9c3fa0cb36b [LDAPLoggingRule], ldapsrv_SearchRequest: LDAP Query: Duration was 0.00s, SearchRequest by S-1-5-21-3289515827-3284480267-3537100884-500 from ipv4:10.32.54.27:58414 filter: [(objectClass=user)] basedn: [CN=Users,DC=ELLES,DC=INNO,DC=TECH] scope: [ONE] result: Success