Добавлен сбор телеметрии на ВМ2

This commit is contained in:
mi
2026-08-26 15:12:51 +03:00
parent 728b9826a3
commit f989097484
32 changed files with 2029 additions and 134 deletions
@@ -37,8 +37,12 @@ deployment-артефакты: `VM2_services/codebase/services/`. Локальн
7. `REDIS_SAFETY_ACL` — полный ACL-файл, а не просто пароль. Он должен
открывать неаутентифицированный `PING` только для health и
защищённого паролем пользователя `safety`, ограниченного необходимыми
ключами/командами `han:safety:*`.
(Пароль в `MESSAGE_SAFETY_REDIS_URL` должен совпадать. Используйте `redis/redis-safety.acl.template`, заменив `REPLACE_WITH_LONG_RANDOM_PASSWORD)
ключами/командами `han:safety:*`. Добавьте пользователя `exporter` только с
`PING`/`INFO`; его пароль в ACL должен в точности совпадать с отдельным
`REDIS_EXPORTER_PASSWORD`. Этот secret хранится в формате JSON password map:
`{"redis://redis-safety:6379":"<ТОТ_ЖЕ_ПАРОЛЬ>"}`, а не как голая строка.
Пароль `safety` в `MESSAGE_SAFETY_REDIS_URL` также должен совпадать с ACL. Используйте
`redis/redis-safety.acl.template`, заменив оба плейсхолдера.
8. Выделите отдельные учётные данные БД для runtime и миграций.
`MESSAGE_SAFETY_CONFIG_ADMIN_DATABASE_URL` может мигрировать/активировать
политику, а `MESSAGE_SAFETY_DATABASE_URL` — нет; `BITRIX_SYNC_MIGRATION_DATABASE_URL`
@@ -83,12 +87,14 @@ deployment-артефакты: `VM2_services/codebase/services/`. Локальн
[`arch-10-deployment.md`](../../../../architectory/arch-10-deployment.md) §6.
3. **Образы** — собрать и push `han-message-safety`, `han-bitrix-sync`;
получить immutable digest для всех `*_IMAGE` в `.env.example` (nginx, redis,
clamav, otel-collector).
clamav, otel-collector, Redis exporter, nginx exporter).
4. **Selectel Secrets Manager** — заполнить все remote names из
`deployment/secrets/config.example.json` (DSN, tokens, S3 read-only keys,
`REDIS_SAFETY_ACL`, internal TLS PEM для `8443`). Отдельный IAM principal
VM2 с read-only доступом только к этим именам.
`REDIS_SAFETY_ACL`, `REDIS_EXPORTER_PASSWORD`, internal TLS PEM для `8443`).
Отдельный IAM principal VM2 с read-only доступом только к этим именам.
5. **S3 quarantine bucket** и SigNoz OTLP endpoint — значения в `.env`.
Текущий self-hosted SigNoz принимает private plaintext OTLP без auth, поэтому
не создавайте фиктивный auth-secret или обязательный непустой header.
6. **Internal TLS** — сертификат внутренней CA с SAN = private DNS VM2;
PEM хранится в Secrets Manager, не в каталоге релиза.
@@ -301,6 +307,13 @@ DSN, token, password, access/secret key туда не записываются.
создайте отдельный VM2 IAM principal с read-only доступом только к remote names
из mapping.
Локальный Collector принимает traces, metrics и logs напрямую по OTLP; чтение
Docker JSON через `filelog` не используется. Prometheus receiver собирает только
метрики самого Collector, `redis-exporter` и `nginx-exporter`, а `hostmetrics`
метрики VM через read-only `/hostfs`. Exporter-контейнеры имеют только `expose`
во внутренних сетях и не публикуют host ports. В nginx endpoint
`/stub_status` слушает только внутренний `8081`.
Зашифруйте пароль Selectel service user через systemd credentials, не помещая
его в аргументы или history: