Comment résoudre l'erreur « Impossible de lire les journaux distants pour le logs_group » dans Amazon MWAA ?

Lecture de 6 minute(s)
0

Je souhaite résoudre l'erreur « Impossible de lire les journaux distants pour le logs_group » dans Amazon Managed Workflows pour Apache Airflow.

Brève description

Lorsque vous exécutez des tâches ou des DAG dans votre environnement Amazon MWAA, l'erreur suivante ou similaire peut s'afficher :

« Erreur : Lecture du journal distant depuis la ressource log_group Cloudwatch : Impossible de lire les journaux distants à partir de la ressource log_group *** exception du groupe de journaux de tâches MWAA »

Pour résoudre l'erreur précédente, vérifiez les points suivants :

  • Autorisations AWS Identity and Access Management (IAM) manquantes
  • Paramètres de configuration de la journalisation
  • Connectivité réseau
  • Groupes de journaux
  • Exigences d'installation
  • Journaliser les retards
  • Auto scaling
  • Utilisation du CPU et conflit de mémoire

Résolution

Pour résoudre l'erreur Impossible de lire les journaux distants à partir de la ressource logs_group, vérifiez les points suivants :

Autorisations IAM

Pour vérifier vos autorisations IAM, procédez comme suit :

  1. Assurez-vous que les journaux de tâches sont définis sur la journalisation de niveau INFO/WARN/ERROR et que celery.sync_parallelism est défini à 1 dans votre environnement Amazon MWAA. Pour plus d'informations, consultez la section Utilisation des options de configuration d'Apache Airflow sur Amazon MWAA.

  2. Vérifiez les politiques d'autorisations du rôle IAM associé. Assurez-vous que les politiques autorisent l'appel des ressources des autres services AWS. Pour plus d'informations, consultez la section Rôle d’exécution Amazon MWAA.

  3. Vérifiez si le groupe de journaux Amazon CloudWatch associé possède une clé gérée par le client. Si le groupe de journaux possède une clé gérée par le client, assurez-vous que l'accès est accordé à la clé AWS Key Management Service (AWS KMS) :

    Remarque : Remplacez example-account-id par votre ID de compte.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "kms:Decrypt",
            "kms:DescribeKey",
            "kms:GenerateDataKey*",
            "kms:Encrypt"
          ],
          "Resource": "arn:aws:kms:*:<example-account-id>:key/*",
          "Effect": "Allow"
        }
      ]
    }
  4. Assurez-vous que cette politique de clé précédente possède les autorisations suivantes :

    Remarque : Remplacez example-account-id par votre ID de compte.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::example-account-id:root"
          },
          "Action": [
            "kms:Create*",
            "kms:Describe*",
            "kms:Enable*",
            "kms:List*",
            "kms:Put*",
            "kms:Update*",
            "kms:Revoke*",
            "kms:Disable*",
            "kms:Get*",
            "kms:Delete*",
            "kms:ScheduleKeyDeletion",
            "kms:CancelKeyDeletion",
            "kms:GenerateDataKey",
            "kms:TagResource",
            "kms:UntagResource"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "*"
          },
          "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
            /* Commented this line...
               "kms:ViaService": "s3.us-west-2.amazonaws.com", */
              "kms:CallerAccount": "example-account-id"
            }
          }
        },
        {
          "Sid": "Allow logs access",
          "Effect": "Allow",
          "Principal": {
            "Service": "logs.us-west-2.amazonaws.com"
          },
          "Action": [
            "kms:Encrypt*",
            "kms:Decrypt*",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:Describe*"
          ],
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-west-2:<example-account-id>:*"
            }
          }
        }
      ]
    }

Paramètres de configuration de la journalisation

Vérifiez vos paramètres de configuration de journalisation dans votre environnement Amazon MWAA. Assurez-vous qu'ils sont corrects. Des paramètres de configuration incorrects ou des DAG Airflow bloquent l'accès aux journaux distants du groupe de journaux désigné. Par exemple, si la configuration de la journalisation dans le DAG est configurée pour écrire les journaux dans un autre groupe de journaux, un échec de lecture se produit.

Connectivité réseau

Des problèmes de réseau ou la suppression d'un point de terminaison Amazon Virtual Private Cloud (Amazon VPC) pour CloudWatch entraînent des échecs de lecture des journaux distants. Cet échec ne permet pas à votre environnement Amazon MWAA de communiquer avec CloudWatch Logs. Assurez-vous que le point de terminaison Amazon VPC pour CloudWatch Logs est présent. Pour plus d'informations, consultez la section Création des points de terminaison de service VPC requis dans un Amazon VPC avec routage privé.

Groupes de journaux

Pour vérifier vos groupes de journaux, procédez comme suit :

  • Vérifiez si le groupe de journaux CloudWatch associé à votre environnement Amazon MWAA est supprimé ou renommé. Si des groupes de journaux sont supprimés ou renommés, les tentatives d'accès à ces groupes de journaux échouent. Il n'est pas recommandé de renommer ou de supprimer manuellement des groupes de journaux.
  • Vérifiez si l'ARN qui est spécifié pour le groupe de journaux CloudWatch dans Amazon MWAA est incorrect ou obsolète. Si l'ARN est incorrect ou obsolète, MWAA ne peut pas localiser le groupe de journaux et y accéder. Cette erreur se produit lorsque l'ARN est incorrectement saisi ou lorsque le groupe de journaux est déplacé vers un autre compte AWS.
  • Vérifiez la politique de rétention du groupe de journaux CloudWatch. Si vous tentez d'accéder à des groupes de journaux dont la politique de rétention a expiré, des échecs de lecture se produisent. Modifiez le paramètre de votre politique de rétention pour ne jamais faire expirer les groupes de journaux ou pour les conserver plus longtemps.

Remarque : Par défaut, les journaux sont conservés indéfiniment et n'expirent jamais.

Exigences d'installation

Vérifiez vos exigences en matière d'installation. Assurez-vous qu'il n'y a pas d'échec dû à une incompatibilité de version. Pour vérifier les échecs liés aux exigences d’installation, accédez à votre groupe de journaux de travail dans votre environnement Amazon MWAA. Pour tester les plu-gins personnalisés et les dépendances Python, utilisez aws-mwaa-local-runner. Pour plus d'informations, consultez la section aws-mwaa-local-runner sur le site Web de GitHub.

Pour vérifier les incompatibilités de dépendance, consultez les installations requises suivantes dans le chemin du journal CloudWatch :

  • Groupes de journaux > airflow-MyMWAAenvironment-WebServer requirements_install_xxxx.ec2.internal_xxxx.log
  • Groupes de journaux > airflow-MyMWAAenvironment-Scheduler requirements_install_xxxx.ec2.internal_xxxx.log
  • Groupes de journaux > airflow-MyMWAAenvironment-Worker requirements_install_xxxx.ec2.internal_xxxx.log

Journaliser les retards

Si les délais sont longs pour les tâches exécutées toutes les heures ou occasionnellement, vérifiez le paramètre celery.worker_autoscale. Pour réduire le taux d'erreurs, définissez la deuxième valeur de votre paramètre celery.worker_autoscale à 0. Par exemple, définissez les environnements à grande échelle sur 20,0, les environnements moyens sur 10,0, et les environnements de petite taille sur 5,0.

Auto scaling

L’auto scaling qui augmente ou diminue le nombre de nœuds de travail peut provoquer l'erreur Impossible de lire les journaux distants à partir de la ressource logs_group. Si l’auto scaling est à l'origine de cette erreur, désactivez l’auto scaling Amazon MWAA. Pour désactiver l’auto scaling Amazon MWAA, définissez votre paramètre min-workers sur la même valeur que votre paramètre max-workers. Vous pouvez également augmenter la valeur du paramètre max-workers. Pour plus d'informations, consultez la section Configuration de l’auto scaling Amazon MWAA.

Utilisation du CPU et conflit de mémoire

Une utilisation élevée du CPU et des problèmes de mémoire dans un environnement MWAA peuvent affecter la capacité de lecture des journaux distants. Pour résoudre les problèmes liés à une utilisation élevée du CPU ou à des problèmes de mémoire, procédez comme suit :

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois