log-shipper не доставляет логи в Loki: 429 Too Many Requests

Viewed 31

Настроил ClusterLoggingConfig и ClusterLogDestination в Loki, но в Loki попадает только часть логов. В логах log-shipper-agent повторные попытки и ошибка 429 Too Many Requests.

1 Answers

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.

Related