Настроил ClusterLoggingConfig и ClusterLogDestination в Loki, но в Loki попадает только часть логов. В логах log-shipper-agent повторные попытки и ошибка 429 Too Many Requests.
Настроил ClusterLoggingConfig и ClusterLogDestination в Loki, но в Loki попадает только часть логов. В логах log-shipper-agent повторные попытки и ошибка 429 Too Many Requests.
Loki отбрасывает поток из-за лимитов приёма. Точную причину показывает поле reason в алерте LokiDiscardedSamplesWarning:
rate_limited: увеличьте ingestionRateMB (по умолчанию 4) и ingestionBurstSizeMB (по умолчанию 6);per_stream_rate_limit: увеличьте perStreamRateLimit и perStreamRateLimitBurst.Лимиты задаются в ModuleConfig loki (d8 k edit mc loki). Если задан блок settings, поле spec.version обязательно: без него ModuleConfig не применится.
spec:
settings:
lokiConfig:
ingestionRateMB: 20
ingestionBurstSizeMB: 40
Превышение maxLabelNamesPerSeries (по умолчанию 32) приводит к ответу 400, а не 429.
Если после увеличения лимитов доставка не восстановилась, перезапустите под log-shipper-agent на проблемном узле:
d8 k -n d8-log-shipper get pods -o wide | grep <узел>
d8 k -n d8-log-shipper delete pod <под>
Второй путь: не отправлять в Loki всё подряд. Сузьте ClusterLoggingConfig (kubernetesPods.namespaceSelector, labelSelector, logFilter) или ограничьте поток через spec.rateLimit.linesPerMinute в ClusterLogDestination.
Подробнее в документации: параметры модуля loki.