# Пример конфига AD-exporter. # Положить как /etc/ad-exporter/config.yaml и сделать: chmod 600 (внутри токен). influx: url: http://localhost:8086 org: my-organization # InfluxDB v2 organization bucket: my-initial-bucket # bucket для записи token: my-super-secret-admin-token-string # API-токен (Authorization: Token ...) batch: size: 100 # сколько точек копить до записи flush_interval_secs: 5 # либо записать по таймеру, если батч не набрался files: # Файл аудита Samba DC. В одном файле могут лежать несколько типов событий # (Authentication, Authorization, KDC Authorization) — этот блок мапит только # события Authentication (вход в домен). Строки других типов не содержат # ключей Authentication.* и просто молча пропускаются. - path: /var/log/samba/dc1-auth_audit.json measurement: samba_auth timestamp: timestamp # верхнеуровневое поле времени # Теги индексируются — для группировок в Grafana. # status обязателен: NT_STATUS_OK / код ошибки аутентификации. tags: status: Authentication.status account: Authentication.becameAccount # разрешённый аккаунт (user-288, MACHINE6$) domain: Authentication.becameDomain service: Authentication.serviceDescription # напр. "Kerberos KDC" # Поля — сырые значения. Тип (int/float/string/bool) определяется по JSON. fields: remote: Authentication.remoteAddress # ipv4:192.168.33.16:45230 (высокая кардинальность — поле, не тег) auth_desc: Authentication.authDescription client_account: Authentication.clientAccount # сырой клиентский логин logon_type: Authentication.logonType # int duration: Authentication.duration # int, микросекунды # --- dsdb-аудит: изменения объектов каталога (dsdbChange) --- # Файл dsdb_json_audit. Внутри один тип событий — dsdbChange (Add/Modify/Delete/Rename). - path: /var/log/samba/dc1-dsdb_audit.json measurement: samba_dsdb timestamp: timestamp tags: status: dsdbChange.status # Success / код ошибки operation: dsdbChange.operation # Add / Modify / Delete / Rename user_sid: dsdbChange.userSid # SID инициатора (S-1-5-18 = система) as_system: dsdbChange.performedAsSystem # bool: изменение выполнено системой fields: dn: dsdbChange.dn # объект (высокая кардинальность — поле) status_code: dsdbChange.statusCode # int, 0 = успех tx_id: dsdbChange.transactionId # для связи с журналом транзакций session_id: dsdbChange.sessionId # ВНИМАНИЕ: dsdbChange.remoteAddress намеренно НЕ берём. У системных # изменений он null, а null трактуется как отсутствие ключа => строка была # бы молча отброшена целиком. Если remoteAddress нужен — заведи под клиентские # изменения отдельный поток/файл или мирись с потерей системных событий. # --- dsdb-аудит: транзакции каталога (dsdbTransaction) --- # Файл dsdb_transaction_json_audit. Главная метрика — длительность транзакции. - path: /var/log/samba/dc1-dsdb_transaction.json measurement: samba_dsdb_tx timestamp: timestamp tags: action: dsdbTransaction.action # begin / prepare commit / commit / rollback fields: duration: dsdbTransaction.duration # int, микросекунды tx_id: dsdbTransaction.transactionId # ВНИМАНИЕ: один файл = один блок (маппинг). Один и тот же path нельзя # указать дважды — выживет только последний блок. Чтобы собирать другой тип # событий (Authorization, KDC Authorization), направь его в Samba в отдельный # файл и опиши своим блоком ниже. Пример для Authorization: # # - path: /var/log/samba/dc1-authz_audit.json # measurement: samba_authz # timestamp: timestamp # tags: # account: Authorization.account # domain: Authorization.domain # service: Authorization.serviceDescription # напр. "LDAP" # fields: # remote: Authorization.remoteAddress # auth_type: Authorization.authType