3.2. Dépannage du transfert de journaux
3.2.1. Le redéploiement des gousses Fluentd Copier lienLien copié sur presse-papiers!
Lorsque vous créez une ressource personnalisée ClusterLogForwarder (CR), si le Red Hat OpenShift Logging Operator ne redéploie pas automatiquement les gousses Fluentd, vous pouvez supprimer les gousses Fluentd pour les forcer à redéployer.
Conditions préalables
- ClusterLogForwarder a créé un objet de ressource personnalisée (CR) ClusterLogForwarder.
Procédure
Supprimez les gousses Fluentd pour les forcer à redéployer en exécutant la commande suivante:
oc delete pod --selector logging-infra=collector
$ oc delete pod --selector logging-infra=collector
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. Dépannage des erreurs de limite de taux Loki Copier lienLien copié sur presse-papiers!
Lorsque l’API Log Forwarder transmet un grand bloc de messages qui dépasse la limite de taux à Loki, Loki génère des erreurs de limite de débit (429).
Ces erreurs peuvent se produire pendant le fonctionnement normal. À titre d’exemple, lors de l’ajout de la journalisation à un cluster qui possède déjà certains journaux, des erreurs de limite de taux peuvent se produire pendant que la journalisation tente d’ingérer toutes les entrées de journal existantes. Dans ce cas, si le taux d’ajout de nouveaux journaux est inférieur à la limite de taux totale, les données historiques sont finalement ingérées, et les erreurs de limite de taux sont résolues sans nécessiter l’intervention de l’utilisateur.
Dans les cas où les erreurs de limite de taux continuent de se produire, vous pouvez résoudre le problème en modifiant la ressource personnalisée LokiStack (CR).
Le LokiStack CR n’est pas disponible sur Grafana-hosted Loki. Cette rubrique ne s’applique pas aux serveurs Loki hébergés par Grafana.
Les conditions
- L’API Log Forwarder est configurée pour transférer les journaux vers Loki.
Le système envoie un bloc de messages de plus de 2 Mo à Loki. À titre d’exemple:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Après avoir entré les journaux oc -n openshift-logging -l component=collector, les journaux collecteurs de votre cluster affichent une ligne contenant l’un des messages d’erreur suivants:
429 Too Many Requests Ingestion rate limit exceeded
429 Too Many Requests Ingestion rate limit exceeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de message d’erreur vectoriel
2023-08-25T16:08:49.301780Z WARN sink{component_kind="sink" component_id=default_loki_infra component_type=loki component_name=default_loki_infra}: vector::sinks::util::retries: Retrying after error. error=Server responded with an error: 429 Too Many Requests internal_log_rate_limit=true
2023-08-25T16:08:49.301780Z WARN sink{component_kind="sink" component_id=default_loki_infra component_type=loki component_name=default_loki_infra}: vector::sinks::util::retries: Retrying after error. error=Server responded with an error: 429 Too Many Requests internal_log_rate_limit=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de message d’erreur Fluentd
2023-08-30 14:52:15 +0000 [warn]: [default_loki_infra] failed to flush the buffer. retry_times=2 next_retry_time=2023-08-30 14:52:19 +0000 chunk="604251225bf5378ed1567231a1c03b8b" error_class=Fluent::Plugin::LokiOutput::LogPostError error="429 Too Many Requests Ingestion rate limit exceeded for user infrastructure (limit: 4194304 bytes/sec) while attempting to ingest '4082' lines totaling '7820025' bytes, reduce log volume or contact your Loki administrator to see if the limit can be increased\n"
2023-08-30 14:52:15 +0000 [warn]: [default_loki_infra] failed to flush the buffer. retry_times=2 next_retry_time=2023-08-30 14:52:19 +0000 chunk="604251225bf5378ed1567231a1c03b8b" error_class=Fluent::Plugin::LokiOutput::LogPostError error="429 Too Many Requests Ingestion rate limit exceeded for user infrastructure (limit: 4194304 bytes/sec) while attempting to ingest '4082' lines totaling '7820025' bytes, reduce log volume or contact your Loki administrator to see if the limit can be increased\n"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’erreur est également visible à l’extrémité de réception. À titre d’exemple, dans la pod LokiStack ingester:
Exemple de message d’erreur Loki ingester
level=warn ts=2023-08-30T14:57:34.155592243Z caller=grpc_logging.go:43 duration=1.434942ms method=/logproto.Pusher/Push err="rpc error: code = Code(429) desc = entry with timestamp 2023-08-30 14:57:32.012778399 +0000 UTC ignored, reason: 'Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream
level=warn ts=2023-08-30T14:57:34.155592243Z caller=grpc_logging.go:43 duration=1.434942ms method=/logproto.Pusher/Push err="rpc error: code = Code(429) desc = entry with timestamp 2023-08-30 14:57:32.012778399 +0000 UTC ignored, reason: 'Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Actualisez les champs ingestionBurstSize et ingestionRate dans le LokiStack CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le champ ingestionBurstSize définit la taille maximale de l’échantillon par distributeur en MB. Cette valeur est une limite dure. Définissez cette valeur sur au moins la taille maximale des logs attendue dans une seule requête push. Les demandes uniques qui sont plus grandes que la valeur d’ingestionBurstSize ne sont pas autorisées.
- 2
- Le champ ingestionRate est une limite molle sur la quantité maximale d’échantillons ingérés par seconde en MB. Les erreurs de limite de taux se produisent si le taux de logs dépasse la limite, mais le collecteur retries en envoyant les journaux. Aussi longtemps que la moyenne totale est inférieure à la limite, le système récupère et les erreurs sont résolues sans intervention de l’utilisateur.