Сервис metrics_manager (пакет inno-samba)

Сервис metrics_manager в составе Эллес (пакет inno-samba) реализует подсистему мониторинга, обеспечивая формирование и предоставление следующих групп метрик:

  • метрики для мониторинга работоспособности основных процессов и служб Эллес;

  • метрики для мониторинга корректности настройки DNS;

  • метрики для мониторинга статуса процесса репликации;

  • метрики для мониторинга работы samba_dnsupdate;

  • метрики для мониторинга производительности основных процессов и служб Эллес;

  • метрики для мониторинга базы данных (LMDB);

  • метрики для мониторинга работы сервиса пересчета значения атрибута trustPosixOffset.

По умолчанию метрики доступны на порте 3070. На стандартном порте, используемом LDAP, они недоступны. См. подробнее в подразделе «Изменение порта для обслуживания запросов метрик мониторинга».

Формат метрик

Сервис metrics_manager формирует данные для мониторинга в формате счетчиков (количество операций, транзакций, ошибок), суммарных значений (общее время выполнения операций, транзакций в миллисекундах) и целых значений (статус процесса, код завершения), предоставляя их в виде атрибутов в LDAP.

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

Так как сервис metrics_manager предоставляет метрики только по протоколу LDAP, для их сбора и анализа в системах мониторинга, не поддерживающих LDAP в качестве источника данных, необходимо использовать адаптер/экспортер.

Настройка сбора метрик

Сервис metrics_manager доступен в Эллес начиная с версии 1.9.0.

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для формирования и получения значений метрик после обновления до версии 1.9.0 необходимо добавить на первое место в списке имя сервиса мониторинга — metrics_manager.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис metrics_manager доступен по умолчанию.

Управление доступностью подсистемы мониторинга

Для управления доступностью сервиса metrics_manager в процессе эксплуатации может использоваться конфигурационный параметр monitoring:disable. Параметр полностью отключает подсистему мониторинга, включая сбор метрик и их предоставление через LDAP.

Параметр задается в разделе [global] файла smb.conf:

  • чтобы отключить подсистему мониторинга, добавьте параметр в конфигурацию со следующим значением:

    [global]
        ...
        monitoring:disable = Yes
        ...
  • чтобы снова включить подсистему мониторинга, удалите параметр из конфигурации или измените его значение следующим образом:

    [global]
        ...
        monitoring:disable = No
        ...

По умолчанию параметр не задан: сервис metrics_manager работает, метрики доступны для получения через LDAP.

Управление периодичностью сбора метрик мониторинга

По умолчанию сбор метрик осуществляется с периодичностью 60 секунд. Для изменения интервала укажите требуемое значение в секундах с помощью параметра monitoring:periodic_interval в разделе [global] файла smb.conf.

Например:

[global]
    ...
    monitoring:periodic_interval = 30
    ...

Если значения метрик логируются, при изменении интервала сбора скорректируйте соответствующим образом значение параметра monitoring:metric_dump_periodic_interval.

Изменение порта для обслуживания запросов метрик мониторинга

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

По умолчанию используется порт 3070.

Чтобы изменить порт по умолчанию, добавьте в раздел [global] файла smb.conf параметр ldap_server:monitoring instance port с требуемым значением.

Например:

[global]
    ...
    ldap_server:monitoring instance port = 3071
    ...
На порте, выделенном для обслуживания запросов метрик мониторинга, недоступны данные по основным разделам каталога. Он может использоваться только для получения метрик.

Получение метрик

Метрики формируются в процессе работы Эллес в виде атрибутов объектов, соответствующих группам контролируемых показателей, в контейнере CN=Monitoring в дереве LDAP.

Для получения значений метрик используйте стандартные инструменты выполнения запросов по протоколу LDAP с указанием требуемого DN.

Пример запроса полного списка метрик с помощью ldbsearch при использовании DNS-сервера BIND 9:

Пример ответа на запрос
ldbsearch -H ldap://localhost:3070 -s one -b "CN=Monitoring"
# record 1
dn: CN=SAMDOM,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
TreeDepth: 3
BranchPages: 7
LeafPages: 250
OverflowPages: 597
DataEntries: 3279
PageSize: 4096
UsedPages: 856
MaxPages: 2097152
LastTransactionID: 300496
MaxReaders: 100000
UsedReaders: 7
MaxDbSize: 8589934592
UsedDbSize: 3506176

# record 2
dn: CN=DOMAINDNSZONES,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
TreeDepth: 2
BranchPages: 1
LeafPages: 23
OverflowPages: 60
DataEntries: 295
PageSize: 4096
UsedPages: 86
MaxPages: 2097152
LastTransactionID: 237364
MaxReaders: 100000
UsedReaders: 7
MaxDbSize: 8589934592
UsedDbSize: 352256

# record 3
dn: CN=CONFIGURATION,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
TreeDepth: 3
BranchPages: 25
LeafPages: 1287
OverflowPages: 648
DataEntries: 8108
PageSize: 4096
UsedPages: 1962
MaxPages: 2097152
LastTransactionID: 258315
MaxReaders: 100000
UsedReaders: 6
MaxDbSize: 8589934592
UsedDbSize: 8036352

# record 4
dn: CN=FORESTDNSZONES,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
TreeDepth: 2
BranchPages: 1
LeafPages: 10
OverflowPages: 30
DataEntries: 145
PageSize: 4096
UsedPages: 43
MaxPages: 2097152
LastTransactionID: 238657
MaxReaders: 100000
UsedReaders: 6
MaxDbSize: 8589934592
UsedDbSize: 176128

# record 5
dn: CN=SCHEMA,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
TreeDepth: 3
BranchPages: 14
LeafPages: 715
OverflowPages: 1820
DataEntries: 12407
PageSize: 4096
UsedPages: 2551
MaxPages: 2097152
LastTransactionID: 203266
MaxReaders: 100000
UsedReaders: 6
MaxDbSize: 8589934592
UsedDbSize: 10448896

# record 6
dn: CN=LDAPOperations,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Bind: 4
BindDuration: 227
BindError: 0
BindErrorDuration: 0
Search: 7
SearchDuration: 52
SearchError: 0
SearchErrorDuration: 0
Modify: 0
ModifyDuration: 0
ModifyError: 0
ModifyErrorDuration: 0

# record 7
dn: CN=DNSOperationsBind9,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Queries: 6
QueriesDuration: 432

# record 8
dn: CN=samba_dnsupdate,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
RunCount: 1
RunCountDuration: 26
LastRunDuration: 20.190445
LastRunExitCode: 0

# record 9
dn: CN=HealthCheck,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
smbd[1076]: 1
wrepl[1079]: 1
rpc(0)[1083]: 1
winbindd[1105]: 1
ntp_signd[1103]: 0
ldap(2)[1193]: 1
nbt[1077]: 1
smbd-notifyd[1128]: 1
rpc[1074]: 1
kdc(1)[1104]: 1
rpc(2)[1091]: 1
ldap[1082]: 0
lacheck[1195]: 1
kdc(3)[1113]: 1
disco[1078]: 1
ldap(0)[1188]: 1
rpc(1)[1087]: 1
wb[1131]: 1
samba[1067]: 1
wb[1132]: 0
kdc[1090]: 1
dnsupdate[1112]: 1
winbindd[1099]: 1
ldap(1)[1190]: 1
s3fs[1071]: 1
smbd-cleanupd[1129]: 1
ldap(3)[1196]: 1
kdc(2)[1109]: 1
kdc(0)[1098]: 1
drepl[1094]: 1
cldap[1086]: 1
tdo[1110]: 1
kcc[1108]: 1
rpc(3)[1095]: 1

# record 10
dn: CN=TDO,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Scheduled: 669
Executed: 668
Performed: 0
Errored: 0

# record 11
dn: CN=REPLOperations,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Replicate: 6
ReplicateDuration: 568

# record 12
dn: CN=KDCOperations,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
AS_REQ: 2
AS_REQDuration: 1000
TGS_REQ: 4
TGS_REQDuration: 2571
ProxyReq: 0
ProxyReqDuration: 0

# record 13
dn: CN=KCC,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
InboundSuccess: 10
InboundFailure: 0
OutboundSuccess: 10
OutboundFailure: 0

# record 14
dn: CN=DNS,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
ZoneCount: 3

# returned 14 records
# 14 entries
# 0 referrals

Фильтрация по атрибутам

При запросе метрик по протоколу LDAP поддерживается возможность фильтрации результатов по атрибутам.

В версии Эллес 1.15.1 при запросе метрики-счетчика в вывод также включается связанная метрика, суммирующая время выполнения учтенных в счетчике операций. Например, при фильтрации результатов запроса к контейнеру CN=LDAPOperations,CN=Monitoring по атрибуту Search также будет возвращен атрибут SearchDuration. При этом отсутствует возможность запросить суммирующий атрибут отдельно от атрибута-счетчика. Так, при попытке использования в качестве фильтра атрибута SearchDuration запрос вернет пустой результат.

Пример фильтрации вывода запроса метрик в контейнере "CN=LDAPOperations,CN=Monitoring" по атрибутам Search и SearchError:

ldbsearch -H ldap://localhost:3070 -b "CN=LDAPOperations,CN=Monitoring" Search SearchError
# record 1
dn: CN=LDAPOperations,CN=Monitoring
Search: 35
SearchError: 2

# returned 1 records
# 1 entries
# 0 referrals

Примеры дополнительной обработки вывода:

  • ограничение вывода атрибутами и их значениями:

    ldbsearch -H ldap://localhost:3070 -b "CN=LDAPOperations,CN=Monitoring" Search SearchError | awk '!/^dn:/ && /^[^#]/ && /:/ {print}'
    Search: 35
    SearchError: 2
  • ограничение вывода значением атрибута:

    ldbsearch -H ldap://localhost:3070 -b "CN=LDAPOperations,CN=Monitoring" Search | awk -F': ' '/^[^# ]+:/ && $1 != "dn" {print $2}'
    35

Логирование метрик

Эллес предоставляет класс отладки metrics для фиксации всех сообщений, формируемых сервисом metrics_manager в процессе работы, в соответствии с установленным уровнем логирования. В том числе он используется для сохранения значений метрик стандартными средствами логирования.

Для вывода текущих значений метрик в указанный файл добавьте класс metrics с уровнем логирования 3 или выше, а также укажите расположение и имя файла в значении параметра log level в разделе [global] конфигурационного файла /app/inno-samba/etc/smb.conf.

Например:

[global]
    ...
    log level = 1 metrics:3@/tmp/metrics.log
    ...
Пример записи при использовании DNS-сервера BIND 9
[2024/10/10 15:18:01.079930,  3] ../../source4/metrics_manager/metrics_manager_service.c:1201(metrics_manager_periodic_run)
  metrics_manager_periodic_run: Metrics dump:
  Section SAMDOM:
  	TreeDepth: 3
  	BranchPages: 7
  	LeafPages: 245
  	OverflowPages: 652
  	DataEntries: 3437
  	PageSize: 4096
  	UsedPages: 906
  	MaxPages: 2097152
  	LastTransactionID: 196224
  	MaxReaders: 100000
  	UsedReaders: 6
  	MaxDbSize: 8589934592
  	UsedDbSize: 3710976
  Section DOMAINDNSZONES:
  	TreeDepth: 2
  	BranchPages: 1
  	LeafPages: 23
  	OverflowPages: 64
  	DataEntries: 310
  	PageSize: 4096
  	UsedPages: 90
  	MaxPages: 2097152
  	LastTransactionID: 135802
  	MaxReaders: 100000
  	UsedReaders: 6
  	MaxDbSize: 8589934592
  	UsedDbSize: 368640
  Section CONFIGURATION:
  	TreeDepth: 3
  	BranchPages: 26
  	LeafPages: 1264
  	OverflowPages: 643
  	DataEntries: 8120
  	PageSize: 4096
  	UsedPages: 1935
  	MaxPages: 2097152
  	LastTransactionID: 166479
  	MaxReaders: 100000
  	UsedReaders: 5
  	MaxDbSize: 8589934592
  	UsedDbSize: 7925760
  Section samba_dnsupdate:
  	RunCount: 14
  	RunCountDuration: 276664
  	LastRunDuration: 9.458168
  	LastRunExitCode: 0
  Section FORESTDNSZONES:
  	TreeDepth: 2
  	BranchPages: 1
  	LeafPages: 11
  	OverflowPages: 31
  	DataEntries: 145
  	PageSize: 4096
  	UsedPages: 45
  	MaxPages: 2097152
  	LastTransactionID: 140874
  	MaxReaders: 100000
  	UsedReaders: 6
  	MaxDbSize: 8589934592
  	UsedDbSize: 184320
  Section SCHEMA:
  	TreeDepth: 3
  	BranchPages: 14
  	LeafPages: 715
  	OverflowPages: 1820
  	DataEntries: 12407
  	PageSize: 4096
  	UsedPages: 2551
  	MaxPages: 2097152
  	LastTransactionID: 53037
  	MaxReaders: 100000
  	UsedReaders: 5
  	MaxDbSize: 8589934592
  	UsedDbSize: 10448896
  Section DNSOperationsBind9:
  	Queries: 6
  	QueriesDuration: 549
  Section LDAPOperations:
  	Bind: 4
  	BindDuration: 658
  	BindError: 0
  	BindErrorDuration: 0
  	Search: 8
  	SearchDuration: 222
  	SearchError: 0
  	SearchErrorDuration: 0
  	Modify: 0
  	ModifyDuration: 0
  	ModifyError: 0
  	ModifyErrorDuration: 0
  Section HealthCheck:
  	kdc(1)[2252]: 1
  	smbd-notifyd[2267]: 1
  	nbt[2222]: 1
  	wrepl[2224]: 1
  	kdc(2)[2256]: 1
  	dnsupdate[2255]: 1
  	ntp_signd[2247]: 1
  	s3fs[2216]: 1
  	wb[2271]: 1
  	ldap(2)[2284]: 1
  	smbd-cleanupd[2268]: 1
  	rpc(2)[2236]: 1
  	cldap[2232]: 1
  	ldap[2228]: 1
  	kcc[2251]: 1
    disco[2234]: 1
  	ldap(3)[2286]: 1
  	wb[2269]: 1
  	rpc(3)[2240]: 1
  	smbd[2221]: 1
  	samba[2212]: 1
  	kdc(3)[2258]: 1
  	kdc[2235]: 1
  	rpc[2219]: 1
  	ldap(0)[2276]: 1
  	tdo[2270]: 1
  	winbindd[2250]: 1
  	kdc(0)[2245]: 1
  	winbindd[2242]: 1
  	ldap(1)[2278]: 1
    lacheck[2229]: 1
  	drepl[2239]: 1
  	rpc(0)[2227]: 1
  	rpc(1)[2231]: 1
  Section TDO:
  	Scheduled: 672
  	Executed: 671
  	Performed: 3
  	Errored: 0
  Section REPLOperations:
  	Replicate: 44
  	ReplicateDuration: 4104
  Section KCC:
  	InboundSuccess: 10
  	InboundFailure: 0
  	OutboundSuccess: 10
  	OutboundFailure: 0
  Section KDCOperations:
  	AS_REQ: 6
  	AS_REQDuration: 3239
  	TGS_REQ: 23
  	TGS_REQDuration: 13747
  	ProxyReq: 0
  	ProxyReqDuration: 0
  Section DNS:
  	ZoneCount: 3

По умолчанию значения метрик логируются с периодичностью 60 секунд. Для изменения интервала задайте требуемое значение в секундах с помощью параметра monitoring:metric_dump_periodic_interval в разделе [global] в файле smb.conf.

Например:

[global]
    ...
    monitoring:metric_dump_periodic_interval = 30
    ...

При изменении интервала логирования учитывайте значение параметра monitoring:periodic_interval, задающего периодичность сбора метрик.

Метрики для мониторинга работоспособности процессов и служб

Сервис metrics_manager предоставляет метрики для мониторинга состояния процессов и служб на контроллере домена Эллес.

Список метрик зависит от состава запущенных процессов. Он может меняться по мере развития продукта.

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

Периодичность обновления — 1 минута.

Формат метрики:

process_name(worker_number)[PID]: status

Описание формата имени метрики:

  • process_name — имя процесса;

  • worker_number — номер рабочего процесса (при работе в режиме prefork);

  • PID — PID процесса;

  • status — статус процесса:

    • 1 — рабочий процесс запущен и работает в штатном режиме;

    • 0 — процесс не запущен или неработоспособен.

В режиме prefork для поддерживающих его служб (KDC, LDAP, RPC) помимо метрики, отражающей состояние основного процесса, также формируются метрики для того количества рабочих процессов, которое задано в настройках Эллес (по умолчанию  prefork children = 4).

См. подробнее о режимах обработки клиентских соединений в разделе «Вывод списка процессов Эллес на контроллере домена».

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=HealthCheck,CN=Monitoring" | awk '/^hasSubordinates:/{flag=1; next} flag && !/^#/ && /./' | sort -f
cldap[1104]: 1
disco[1135]: 1
dnsupdate[1128]: 1
drepl[1112]: 1
kcc[1125]: 1
kdc(0)[20768]: 1
kdc[1108]: 1
kdc(1)[20770]: 1
kdc(2)[20772]: 1
kdc(3)[20766]: 1
lacheck[1132]: 0
ldap(0)[1248]: 1
ldap[1100]: 1
ldap(1)[1250]: 1
ldap(2)[1252]: 1
ldap(3)[1254]: 1
ldap(4)[1256]: 1
nbt[1095]: 1
ntp_signd[1120]: 1
rpc(0)[1101]: 1
rpc[1092]: 1
rpc(1)[1105]: 1
rpc(2)[1109]: 1
rpc(3)[1113]: 1
s3fs[1089]: 1
samba[1085]: 1
smbd[1094]: 1
smbd-cleanupd[1145]: 1
smbd-notifyd[1144]: 1
tdo[1151]: 1
wb[1146]: 1
wb[1147]: 1
winbindd[1115]: 1
winbindd[1122]: 1
wrepl[1097]: 1

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик в примере:

Метрика Тип Пример значения Описание

cldap

Integer

1

Рабочий процесс сервера CLDAP, отвечающего на запросы к каталогу по протоколу Connectionless LDAP (вариант LDAP без установки соединения на основе UDP)

disco

Integer

1

Рабочий процесс сервиса асинхронного обнаружения контроллеров домена с ролью сервера глобального каталога (GC)

dnsupdate

Integer

1

Рабочий процесс сервиса, отвечающего за обновление записей DNS

drepl

Integer

1

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

kcc

Integer

1

Рабочий процесс сервера KCC, отвечающего за построение топологии репликации

kdc, kdc(0…​N)

Integer

1

Рабочие процессы сервера KDC, выполняющего функции центра распространения ключей (Key Distribution Center) для аутентификации Kerberos. Процессы отвечают за выдачу клиентам сессионных билетов и последующую их валидацию при авторизации

lacheck

Integer

1

Рабочий процесс процедуры обработки связанных атрибутов

ldap, ldap(0…​N)

Integer

1

Рабочие процессы сервера LDAP, отвечающего на запросы к каталогу по протоколу LDAP

nbt

Integer

1

Рабочий процесс сервера NBT, предоставляющего сервисы NETBIOS over TCP

ntp_signd

Integer

1

Рабочий процесс сервиса, отвечающего за подписание пакетов NTP при синхронизации времени с клиентами на ОС Windows

rpc, rpc(0…​N)

Integer

1

Рабочие процессы сервера DCE/RPC, обеспечивающего общий транспорт для сетевых сервисов (например, LSA, SAMR, NETLOGON)

s3fs

Integer

1

Рабочий процесс файлового сервера s3fs

samba

Integer

1

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

smbd

Integer

1

Рабочий процесс файлового сервера, предоставляющего клиентам сервисы совместного доступа к файлам и печати по протоколу SMB

smbd-cleanupd

Integer

1

Рабочий процесс сервиса очистки, обслуживающего файловый сервер

smbd-notifyd

Integer

1

Рабочий процесс сервиса нотификации, обслуживающего файловый сервер

tdo

Integer

1

Рабочий процесс сервиса пересчета значения атрибута trustPosixOffset

wb, winbindd

Integer

1

Рабочие процессы сервера Winbind, предоставляющего ряд сервисов для диспетчера службы имен (Name Service Switch, NSS) для сопоставления пользователей каталога с локальными пользователями

wrepl

Integer

1

Рабочий процесс сервиса репликации

Метрики для мониторинга корректности настройки DNS

Сервис metrics_manager предоставляет метрики для контроля ряда настроек DNS на контролере домена Эллес.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=DNS,CN=Monitoring"
# record 1
dn: CN=DNS,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
ZoneCount: 3

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

ZoneCount

Counter

3

Количество зон DNS

Метрики для мониторинга репликации

Сервис metrics_manager предоставляет метрики для мониторинга статуса процесса репликации на контролере домена Эллес.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=KCC,CN=Monitoring"
# record 1
dn: CN=KCC,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
InboundSuccess: 10
InboundFailure: 0
OutboundSuccess: 10
OutboundFailure: 0

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

InboundSuccess

Counter

10

Количество успешных входящих репликаций

InboundFailure

Counter

0

Количество неуспешных входящих репликаций

OutboundSuccess

Counter

10

Количество успешных исходящих репликаций

OutboundFailure

Counter

0

Количество неуспешных исходящих репликаций

Метрики для мониторинга работы samba_dnsupdate

Сервис metrics_manager предоставляет метрики для мониторинга работы скрипта samba_dnsupdate на контроллере домена Эллес.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=samba_dnsupdate,CN=Monitoring"
# record 1
dn: CN=samba_dnsupdate,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
RunCount: 1
RunCountDuration: 26
LastRunDuration: 20.190445
LastRunExitCode: 0

# returned 1 records
# 1 entries
# 0 referrals
Метрика Тип Пример значения Описание

RunCount

Counter

4

Количество запусков скрипта samba_dnsupdate

RunCountDuration

Counter

Общее время работы скрипта samba_dnsupdate с момента запуска Эллес в секундах с округлением до целого числа

LastRunDuration

Floating

0

Продолжительно последнего запуска скрипта samba_dnsupdate в секундах с точностью до шести знаков после запятой

LastRunExitCode

Integer

0

Статус последнего запуска скрипта samba_dnsupdate

Возможные значения:

  • 0 — работа скрипта завершилась без ошибок;

  • 1 — работа скрипта завершилась ошибкой

Метрики для мониторинга производительности процессов и служб

Сервис metrics_manager предоставляет метрики для мониторинга производительности следующих процессов и служб на контроллере домена Эллес:

LDAP

Для мониторинга производительности сервера LDAP служит объект LDAPOperations в контейнере Monitoring (CN=LDAPOperations,CN=Monitoring) в дереве LDAP.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=LDAPOperations,CN=Monitoring"
# record 1
dn: CN=LDAPOperations,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Bind: 18
BindDuration: 1329
BindError: 0
BindErrorDuration: 0
Search: 35
SearchDuration: 20389
SearchError: 2
SearchErrorDuration: 20065
Modify: 0
ModifyDuration: 0
ModifyError: 0
ModifyErrorDuration: 0

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

Bind

Counter

18

Количество запросов соединения с сервером LDAP

BindDuration

Counter

1329

Общее время выполнения запросов соединения с сервером LDAP с момента запуска Эллес в миллисекундах

BindError

Counter

0

Количество запросов соединения с сервером LDAP, завершившихся ошибкой

BindErrorDuration

Counter

0

Общее время выполнения запросов соединения с сервером LDAP, завершившихся ошибкой, с момента запуска Эллес в миллисекундах

Search

Counter

35

Количество запросов поиска в БД LDAP

SearchDuration

Counter

20389

Общее время выполнения запросов поиска в БД LDAP в миллисекундах

SearchError

Counter

5

Количество запросов поиска в БД LDAP, завершившихся ошибкой

SearchErrorDuration

Counter

125

Общее время выполнения запросов поиска в БД LDAP, завершившихся ошибкой, с момента запуска Эллес в миллисекундах

Modify

Counter

32

Количество запросов на внесение изменений в БД LDAP

ModifyDuration

Counter

34359

Общее время выполнения запросов на внесение изменений в БД LDAP с момента запуска Эллес в миллисекундах

ModifyError

Counter

1

Количество запросов на внесение изменений в БД LDAP, завершившихся ошибкой

ModifyErrorDuration

Counter

23

Общее время выполнения запросов на внесение изменений в БД LDAP, завершившихся ошибкой, с момента запуска Эллес в миллисекундах

DNS

Для мониторинга производительности DNS служит:

  • при использовании DNS-сервера BIND 9 (в случае указания опции --dns-backend=BIND9_DLZ при развертывании домена или вводе в существующий домен) — объект DNSOperationsBind9 в контейнере Monitoring (CN=DNSOperationsBind9,CN=Monitoring) в дереве LDAP;

  • при использовании внутреннего DNS-сервера (по умолчанию или в случае указания опции --dns-backend=SAMBA_INTERNAL при развертывании домена или вводе в существующий домен) — объект DNSOperations в контейнере Monitoring (CN=DNSOperations,CN=Monitoring) в дереве LDAP.

Метрики являются взаимоисключающими: при использовании BIND 9 доступна только метрика DNSOperationsBind9, а метрика DNSOperations недоступна; при использовании внутреннего DNS-сервера доступна только метрика DNSOperations, а метрика DNSOperationsBind9 — недоступна.

Назначение метрик различается:

  • DNSOperationsBind9 отражает общее количество и время выполнения запросов DNS-сервера BIND 9 к базе данных Эллес через функции API, реализованные в плагине BIND9_DLZ;

  • DNSOperations отражает общее количество и время выполнения DNS-запросов.

Как работают счетчики запросов BIND 9 к базе данных Эллес

При получении запроса записи DNS сервер BIND 9 может обращаться за данными к Эллес. Для этой цели он использует функции API, предоставляемые плагином BIND9_DLZ (библиотека dlz_bind9_16.so). Данный плагин реализует интерфейс для взаимодействия между сервером BIND 9 и базой данных Эллес.

В частности, следующие функции API обращаются к базе данных Эллес:

  • dlz_findzonedb — функция проверяет, существует ли запрошенная зона DNS в базе данных Эллес, и возвращает соответствующий статус;

  • dlz_lookup — функция выполняет поиск записей DNS в базе данных Эллес по имени и типу и возвращает найденные записи;

  • dlz_allnodes — функция возвращает все записи DNS, относящиеся к указанной в запросе зоне;

  • dlz_newversion — функция инициирует новую транзакцию для внесения изменений в данные зоны DNS;

  • dlz_closeversion — функция завершает ранее начатую транзакцию;

  • dlz_ssumatch — функция проверяет, имеет ли указанный клиент право вносить изменения в указанную зону DNS;

  • dlz_addrdataset — функция добавляет новый набор ресурсных записей (RR) в базу данных DNS;

  • dlz_subrdataset — функция удаляет указанный набор ресурсных записей (RR) из базы данных DNS;

  • dlz_delrdataset — функция удаляет из базы данных Эллес все ресурсные записи для указанного имени.

Счетчик количества запросов (Queries) увеличивается на 1 при каждом обращении к любой из перечисленных выше функций.

Счетчик времени выполнения (QueriesDuration) увеличивается на время выполнения вызванной функции.

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

В качестве примера рассмотрим домен (samdom.example.com) из двух контроллеров:

  • SMBDC — контроллер домена (RWDC) на базе Эллес с работающим DNS-сервером BIND 9;

  • WINDC — контроллер домена на базе Windows AD DS.

Запрос существующей SRV-записи

Запрос:

nslookup -type=SRV _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.SAMDOM.EXAMPLE.COM

Результат запроса:

_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.SAMDOM.EXAMPLE.COM	service = 0 100 389 windc.samdom.example.com.
_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.SAMDOM.EXAMPLE.COM	service = 0 100 389 smbdc.SAMDOM.EXAMPLE.COM.

В соответствии с количеством вызовов функций счетчик Queries увеличивается на 21.

Вызовы функций в рамках запроса:

  • dlz_findzonedb (с параметром _ldap._tcp.default-first-site-name._sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром _tcp.default-first-site-name._sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром default-first-site-name._sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром _sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром dc._msdcs.samdom.example.com);

  • dlz_lookup (с параметром @);

  • dlz_lookup (с параметром dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром _sites.dc);

  • dlz_lookup (с параметром *.dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром default-first-site-name._sites.dc);

  • dlz_lookup (с параметром *._sites.dc);

  • dlz_lookup (с параметром *.dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром _tcp.default-first-site-name._sites.dc);

  • dlz_lookup (с параметром *.Default-First-Site-Name._sites.dc);

  • dlz_lookup (с параметром *._sites.dc);

  • dlz_lookup (с параметром *.dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром _ldap._tcp.default-first-site-name._sites.dc).

Повторный запрос существующей SRV-записи

Запрос:

nslookup -type=SRV _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.SAMDOM.EXAMPLE.COM

Результат:

_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.SAMDOM.EXAMPLE.COM	service = 0 100 389 windc.samdom.example.com.
_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.SAMDOM.EXAMPLE.COM	service = 0 100 389 smbdc.SAMDOM.EXAMPLE.COM.

В соответствии с количеством вызовов функций счетчик Queries увеличивается на 21.

Вызовы функций в рамках запроса:

  • dlz_findzonedb (с параметром _ldap._tcp.default-first-site-name._sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром _tcp.default-first-site-name._sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром default-first-site-name._sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром _sites.dc._msdcs.samdom.example.com);

  • dlz_findzonedb (с параметром dc._msdcs.samdom.example.com);

  • dlz_lookup (с параметром @);

  • dlz_lookup (с параметром dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром _sites.dc);

  • dlz_lookup (с параметром *.dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром default-first-site-name._sites.dc);

  • dlz_lookup (с параметром *._sites.dc);

  • dlz_lookup (с параметром *.dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром _tcp.default-first-site-name._sites.dc);

  • dlz_lookup (с параметром *.Default-First-Site-Name._sites.dc);

  • dlz_lookup (с параметром *._sites.dc);

  • dlz_lookup (с параметром *.dc);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром _ldap._tcp.default-first-site-name._sites.dc).

Запрос существующей A-записи

Запрос:

nslookup -type=A SMBDC.SAMDOM.EXAMPLE.COM

Результат:

Name:	SMBDC.SAMDOM.EXAMPLE.COM
Address: 10.56.0.76

В соответствии с количеством вызовов функций счетчик Queries увеличивается на 3.

Вызовы функций в рамках запроса:

  • dlz_findzonedb (с параметром smbdc.samdom.example.com);

  • dlz_lookup (с параметром @);

  • dlz_lookup (с параметром smbdc).

Запрос несуществующей A-записи

Запрос:

nslookup -type=A SMBDC10.SAMDOM.EXAMPLE.COM

Результат:

** server can't find SMBDC10.SAMDOM.EXAMPLE.COM: NXDOMAIN

В соответствии с количеством вызовов функций счетчик Queries увеличивается на 5.

Вызовы функций в рамках запроса:

  • dlz_findzonedb (с параметром smbdc10.samdom.example.com);

  • dlz_lookup (с параметром @);

  • dlz_lookup (с параметром smbdc10);

  • dlz_lookup (с параметром *);

  • dlz_lookup (с параметром @).

Пример запроса метрик

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

  • при использовании BIND 9:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=DNSOperationsBind9,CN=Monitoring"
    # record 1
    dn: CN=DNSOperationsBind9,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    Queries: 14663
    QueriesDuration: 934828
    
    # returned 1 records
    # 1 entries
    # 0 referrals
  • при использовании внутреннего DNS-сервера:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=DNSOperations,CN=Monitoring"
    # record 1
    dn: CN=DNSOperations,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    Queries: 28651
    QueriesDuration: 1590702
    
    # returned 1 records
    # 1 entries
    # 0 referrals

Описание метрик

При использовании BIND 9:

Метрика Тип Пример значения Описание

Queries

Counter

14663

Количество запросов BIND 9 к базе данных Эллес посредством функций API, реализуемых плагином BIND9_DLZ

QueriesDuration

Counter

934828

Общее время выполнения запросов BIND 9 к базе данных Эллес посредством функций API, реализуемых плагином BIND9_DLZ, в миллисекундах

При использовании внутреннего DNS-сервера:

Метрика Тип Пример значения Описание

Queries

Counter

28651

Количество запросов к серверу DNS

QueriesDuration

Counter

1590702

Общее время выполнения запросов к серверу DNS с момента запуска Эллес в миллисекундах

drepl

Для мониторинга нагрузки на сервис репликации служит объект REPLOperations в контейнере Monitoring (CN=REPLOperations,CN=Monitoring) в дереве LDAP.

Метрики отражают нагрузку на процесс репликации доменной партиции.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=REPLOperations,CN=Monitoring"
# record 1
dn: CN=REPLOperations,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Replicate: 17
ReplicateDuration: 3172

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

Replicate

Counter

17

Количество репликационных транзакций доменной партиции

ReplicateDuration

Counter

3172

Общее время выполнения репликационных транзакций доменной партиции с момента запуска Эллес в миллисекундах

KDC

Для мониторинга нагрузки на сервер распространения ключей Kerberos (KDC) служит объект KDCOperations в контейнере Monitoring (CN=KDCOperations,CN=Monitoring) в дереве LDAP.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=KDCOperations,CN=Monitoring"
# record 1
dn: CN=KDCOperations,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
AS_REQ: 18
AS_REQDuration: 5342
TGS_REQ: 18
TGS_REQDuration: 7690
ProxyReq: 0
ProxyReqDuration: 0

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

AS_REQ

Counter

18

Количество запросов к сервису аутентификации Kerberos

AS_REQDuration

Counter

5342

Общее время выполнения запросов к сервису аутентификации Kerberos с момента запуска Эллес в миллисекундах

TGS_REQ

Counter

18

Количество запросов к серверу выдачи билетов Kerberos для доступа к сервисам

TGS_REQDuration

Counter

7690

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

ProxyReq

Counter

15

Количество запросов, проксированных контроллером RODC к серверу KDC контроллера RWDC

ProxyReqDuration

Counter

4598

Общее время определения контроллером RODC необходимости проксирования запросов к серверу KDC контроллера RWDC с момента запуска Эллес в миллисекундах

Метрики для мониторинга базы данных (LMDB)

При использовании в качестве базы данных каталога LMDB сервис metrics_manager предоставляет метрики для мониторинга ключевых показателей ее работы.

Доступны метрики для следующих разделов каталогов:

  • раздел Domain;

    Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=SAMDOM,CN=Monitoring"
    # record 1
    dn: CN=SAMDOM,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    TreeDepth: 3
    BranchPages: 7
    LeafPages: 250
    OverflowPages: 587
    DataEntries: 3251
    PageSize: 4096
    UsedPages: 846
    MaxPages: 2097152
    LastTransactionID: 226946
    MaxReaders: 100000
    UsedReaders: 6
    MaxDbSize: 8589934592
    UsedDbSize: 3465216
    
    # returned 1 records
    # 1 entries
    # 0 referrals
  • раздел Schema;

    Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=SCHEMA,CN=Monitoring"
    # record 1
    dn: CN=SCHEMA,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    TreeDepth: 3
    BranchPages: 14
    LeafPages: 715
    OverflowPages: 1820
    DataEntries: 12407
    PageSize: 4096
    UsedPages: 2551
    MaxPages: 2097152
    LastTransactionID: 2
    MaxReaders: 100000
    UsedReaders: 1
    MaxDbSize: 8589934592
    UsedDbSize: 10448896
    
    # returned 1 records
    # 1 entries
    # 0 referrals
  • раздел Configuration;

    Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=CONFIGURATION,CN=Monitoring"
    # record 1
    dn: CN=CONFIGURATION,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    TreeDepth: 3
    BranchPages: 22
    LeafPages: 1223
    OverflowPages: 557
    DataEntries: 7595
    PageSize: 4096
    UsedPages: 1804
    MaxPages: 2097152
    LastTransactionID: 2
    MaxReaders: 100000
    UsedReaders: 1
    MaxDbSize: 8589934592
    UsedDbSize: 7389184
    
    # returned 1 records
    # 1 entries
    # 0 referrals
  • раздел ForestDnsZones;

    Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=FORESTDNSZONES,CN=Monitoring"
    # record 1
    dn: CN=FORESTDNSZONES,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    TreeDepth: 2
    BranchPages: 1
    LeafPages: 10
    OverflowPages: 30
    DataEntries: 145
    PageSize: 4096
    UsedPages: 43
    MaxPages: 2097152
    LastTransactionID: 164305
    MaxReaders: 100000
    UsedReaders: 8
    MaxDbSize: 8589934592
    UsedDbSize: 176128
  • раздел DomainDnsZones;

    Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

    ldbsearch -H ldap://localhost:3070 -s one -b "CN=DOMAINDNSZONES,CN=Monitoring"
    # record 1
    dn: CN=DOMAINDNSZONES,CN=Monitoring
    description: Samba monitoring metrics
    hasSubordinates: FALSE
    TreeDepth: 2
    BranchPages: 1
    LeafPages: 23
    OverflowPages: 59
    DataEntries: 290
    PageSize: 4096
    UsedPages: 85
    MaxPages: 2097152
    LastTransactionID: 163212
    MaxReaders: 100000
    UsedReaders: 8
    MaxDbSize: 8589934592
    UsedDbSize: 348160
    
    # returned 1 records
    # 1 entries
    # 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

TreeDepth

Integer

3

Высота дерева B-tree

BranchPages

Integer

14

Количество внутренних страниц (узловые страницы, non-leaf)

LeafPages

Integer

715

Количество страниц-листьев (страницы с данными, leaf)

OverflowPages

Integer

1820

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

DataEntries

Integer

12407

Количество пар ключ-значение

PageSize

Integer

4096

Размер одной страницы

UsedPages

Integer

2551

Количество используемых страниц, вычисляемое по формуле:

BranchPages + LeafPages + OverflowPages + MetaPages

В формуле MetaPages — количество контрольных страниц в начале файла БД (обычно — 2)

MaxPages

Integer

2097152

Максимально возможное количество страниц в БД

LastTransactionID

Integer

130106

Идентификатор последней транзакции (может использоваться для оценки значения TPS)

MaxReaders

Integer

100000

Максимальное количество потоков чтения LMDB

UsedReaders

Integer

6

Текущее количество потоков чтения LMDB

MaxDbSize

Integer

8589934592

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

MaxPages * PageSize

UsedDbSize

Integer

10448896

Используемый размер базы данных, вычисляемый по формуле:

UsedPages * PageSize

Метрики для мониторинга работы сервиса пересчета значения атрибута trustPosixOffset

Для мониторинга работы сервиса tdo, обеспечивающего пересчет значения атрибута trustPosixOffset, служит объект TDO в контейнере Monitoring (CN=TDO,CN=Monitoring) в дереве LDAP.

Пример запроса текущих значений метрик на контроллере домена Эллес по протоколу LDAP:

ldbsearch -H ldap://localhost:3070 -s one -b "CN=TDO,CN=Monitoring"
# record 1
dn: CN=TDO,CN=Monitoring
description: Samba monitoring metrics
hasSubordinates: FALSE
Scheduled: 672
Executed: 671
Performed: 3
Errored: 0

# returned 1 records
# 1 entries
# 0 referrals

Описание метрик:

Метрика Тип Пример значения Описание

Scheduled

Counter

672

Количество запланированных запусков сервиса tdo

Executed

Counter

671

Количество выполненных запусков сервиса tdo

Performed

Counter

3

Количество успешно завершившихся пересчетов значения атрибута trustPosixOffset

Errored

Counter

0

Количество пересчетов значения атрибута trustPosixOffset, завершившихся ошибкой