Мониторинг и сетевая безопасность
В продакшен среде важно не только запустить Blitz, но и обеспечить наблюдаемость, контроль сетевого доступа и безопасную публикацию наружу.
Данный раздел описывает основные настройки чарта, связанные с метриками, логами, Ingress, TLS и NetworkPolicy.
Логи
Blitz пишет логи приложения в stdout и stderr. Это соответствует стандартному подходу Kubernetes и позволяет подключить сбор через Fluent Bit, Promtail, OpenSearch, ELK или Loki.
Если нужнанеобходима более удобная машинная обработка, включите JSON-логи:
logger:
type: "json"
rootLevel: "INFO"
Если в инфраструктуре уже используется входящий trace header, его можно передавать в application-логи:
logger:
type: "json"
traceIdHeader: "X-Request-ID"
rootLevel: "INFO"
traceIdHeader указывает Blitz IDP, из какого HTTP-заголовка брать идентификатор трассировки для корреляции логов.
Дополнительно можно выставить собственные лейблы для подов:
podLabels:
log-collect: "true"
Метрики Prometheus
Чарт поддерживает два основных варианта интеграции:
ServiceMonitorPodMonitor
ServiceMonitor
Пример:
monitoring:
serviceMonitor:
enabled: true
interval: 30s
scrapeTimeout: 10s
PodMonitor
Пример:
monitoring:
podMonitor:
enabled: true
interval: 30s
scrapeTimeout: 10s
Используйте тот вариант, который соответствует вашей модели интеграции с Prometheus Operator.
Аннотации для scrape
Если в команде используется сбор по аннотациям, можно оставить включённой стандартную схему:
monitoring:
scrapeAnnotations:
enabled: true
target: app
scheme: http
Параметр target позволяет выбрать, к какой точке применять аннотации: к приложению или к JVM exporter.
JVM exporter
Чарт умеет подключать JMX exporter как javaagent для модулей:
idpconsoleregrecovery
Пример включения:
jvmExporter:
enabled: true
exporterPort: 9405
При включении чарта:
- создаётся
ConfigMapс конфигурацией exporter - в поды добавляется
initContainer, который копирует JAR агента - в
JAVA_TOOL_OPTIONSдобавляется параметр-javaagent
Это удобно, если в организации уже принят сбор JVM-метрик через Prometheus.
Ingress
Ingress управляет внешней публикацией Blitz.
Базовый пример:
ingress:
enabled: true
className: "traefik"
tls:
enabled: true
secretName: "blitz-idp-tls"
Если используется nginx, можно добавить аннотации контроллера:
ingress:
className: "nginx"
annotations:
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
TLS
Для production рекомендуется публиковать Blitz по HTTPS. Проверьте:
- существует ли TLS-секрет
- совпадает ли CN или SAN сертификата с доменом
- доступен ли корректный сертификат через ingress-контроллер
Trusted proxies
Параметр http.forwardedTrustedProxies определяет, каким прокси приложение доверяет при обработке forwarded-заголовков.
По умолчанию список может быть широким. В production лучше ограничить его CIDR-сетями ваших реальных ingress-прокси.
NetworkPolicy
Чарт может создавать NetworkPolicy для модулей Blitz.
Базовое включение:
networkPolicy:
enabled: true
mode: permissive
Режим permissive
Подходит для большинства стартовых внедрений. В этом режиме чарт:
- разрешает входящий трафик к опубликованным портам приложения
- не усложняет egress-политику без необходимости
Режим restricted
Подходит для более строгих платформ. В этом режиме нужно явно задавать разрешённые правила доступа:
networkPolicy:
enabled: true
mode: restricted
egress:
allowAll: false
Тогда команда внедрения должна заранее определить:
- какие источники могут обращаться к сервисам Blitz
- к каким внешним адресам Blitz должен ходить сам
- нужен ли доступ к PostgreSQL, Vault, DNS и другим корпоративным сервисам
Безопасные настройки по умолчанию
Чарт уже включает ряд полезных параметров безопасности:
readOnlyRootFilesystem=truerunAsNonRoot=trueseccompProfile.type=RuntimeDefault- TLS-проверка исходящих HTTP-клиентов включена по умолчанию
Эти настройки не стоит отключать без отдельного обоснования.
Практический минимум для production среды
- включить HTTPS на
Ingress - ограничить
forwardedTrustedProxies - включить
NetworkPolicy - подключить централизованный сбор логов
- включить
ServiceMonitor,PodMonitorили scrape-аннотации - оценить необходимость JVM exporter