[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-mikroservisy-kak-organizovat-tsentralizovannoe-logirovanie":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},903,"kak-organizovat-tsentralizovannoe-logirovanie",23,"mikroservisy","Микросервисы","🔗","Как организовать централизованное логирование?","Централизованное логирование — это сбор логов со всех микросервисов в одном месте для удобного поиска и анализа. Основные стеки: ELK (Elasticsearch + Logstash + Kibana) и Grafana Loki.\n\n```\nМикросервисы → Logstash (или Filebeat) → Elasticsearch → Kibana\n```\n\n\u003Cdetails>\u003Csummary>Настройка структурированного логирования (Logback + JSON)\u003C\u002Fsummary>\n\n```xml\n\u003C!-- logback-spring.xml -->\n\u003Cconfiguration>\n    \u003Cappender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n        \u003Cencoder class=\"net.logstash.logback.encoder.LogstashEncoder\">\n            \u003CincludeMdcKeyName>traceId\u003C\u002FincludeMdcKeyName>\n            \u003CincludeMdcKeyName>spanId\u003C\u002FincludeMdcKeyName>\n            \u003CcustomFields>\n                {\"service\":\"payment-service\",\"environment\":\"${ENV}\"}\n            \u003C\u002FcustomFields>\n        \u003C\u002Fencoder>\n    \u003C\u002Fappender>\n\n    \u003Croot level=\"INFO\">\n        \u003Cappender-ref ref=\"STDOUT\" \u002F>\n    \u003C\u002Froot>\n\u003C\u002Fconfiguration>\n```\n\nРезультат — структурированный JSON-лог:\n```json\n{\n  \"@timestamp\": \"2026-04-18T10:30:00.123Z\",\n  \"level\": \"INFO\",\n  \"service\": \"payment-service\",\n  \"traceId\": \"abc123def456\",\n  \"spanId\": \"span789012\",\n  \"message\": \"Платёж обработан успешно\",\n  \"paymentId\": \"PAY-001\",\n  \"amount\": 50000,\n  \"environment\": \"production\"\n}\n```\n\n\u003C\u002Fdetails>\n\n### Grafana Loki -- альтернатива ELK\n\nLoki не индексирует содержимое логов, а только метки (labels), что делает его значительно дешевле и проще в эксплуатации.\n\n### Рекомендации по логированию в микросервисах\n\n- Всегда включайте traceId — для связывания логов одного запроса.\n- Используйте структурированные логи (JSON) — для удобного поиска и фильтрации.\n- Логируйте бизнес-события — не только ошибки, но и важные бизнес-действия.\n- Не логируйте чувствительные данные — номера карт, пароли, персональные данные (PCI DSS!).\n- Используйте уровни логирования правильно: ERROR — сбои, WARN — нештатные ситуации, INFO — бизнес-события, DEBUG — для отладки (отключено в prod).\n\n\u003Cdetails>\u003Csummary>Пример правильного логирования\u003C\u002Fsummary>\n\n```java\n@Slf4j\n@Service\npublic class PaymentService {\n\n    public void processPayment(PaymentRequest request) {\n        log.info(\"Начало обработки платежа: paymentId={}, amount={}, currency={}\",\n            request.getPaymentId(), request.getAmount(), request.getCurrency());\n        try {\n            \u002F\u002F ... бизнес-логика\n            log.info(\"Платёж успешно обработан: paymentId={}\", request.getPaymentId());\n        } catch (InsufficientFundsException e) {\n            log.warn(\"Недостаточно средств: paymentId={}, accountId={}\",\n                request.getPaymentId(), request.getAccountId());\n            throw e;\n        } catch (Exception e) {\n            log.error(\"Ошибка обработки платежа: paymentId={}\",\n                request.getPaymentId(), e);\n            throw e;\n        }\n    }\n}\n```\n\n\u003C\u002Fdetails>\n\n> **На собеседовании:** покажите, что знаете стек (ELK или Loki), и что логи должны быть структурированными (JSON) с traceId. Частая ошибка — забыть про маскирование чувствительных данных в логах.","","middle",[15],"microservices",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Как организовать централизованное логирование? — Gymterview","Централизованное логирование — это сбор логов со всех микросервисов в одном месте для удобного поиска и анализа. Основные стеки: ELK (Elasticsearch + Logstash +","Централизованное логирование — это сбор логов со всех микросервисов в одном месте для удобного поиска и анализа. Основны",[15,13],"Централизованное логирование — это сбор логов со всех микросервисов в одном месте для удобного поиска и анализа. Основные стеки: ELK (Elasticsearch + Logstash + Kibana) и Grafana Loki.",true]