Einstellung bis s3 für die Protokolle in den Luftstrom

Ich bin mit docker-verfassen einrichten einer skalierbaren Luftstrom cluster. Ich basiert mein Ansatz, die außerhalb dieser Dockerfile https://hub.docker.com/r/puckel/docker-airflow/

Mein problem ist immer die Protokolle einrichten zu schreiben/Lesen von s3. Wenn einer dag abgeschlossen hat, bekomme ich eine Fehlermeldung wie diese

*** Log file isn't local.
*** Fetching here: http://ea43d4d49f35:8793/log/xxxxxxx/2017-06-26T11:00:00
*** Failed to fetch log file from worker.

*** Reading remote logs...
Could not read logs from s3://buckets/xxxxxxx/airflow/logs/xxxxxxx/2017-06-
26T11:00:00

Richte ich eine neue Rubrik in der airflow.cfg - Datei wie folgt

[MyS3Conn]
aws_access_key_id = xxxxxxx
aws_secret_access_key = xxxxxxx
aws_default_region = xxxxxxx

Dann angegeben das s3 Weg in die remote-Protokolle Abschnitt in airflow.cfg

remote_base_log_folder = s3://buckets/xxxx/airflow/logs
remote_log_conn_id = MyS3Conn

Habe ich diese richtig und es gibt einen bug? Gibt es ein Rezept für Erfolg, das ich hier vermisst werde?

-- Update

Ich habe versucht den Export in URI-und JSON-Formate und weder schien zu funktionieren. Ich habe dann exportiert die aws_access_key_id und aws_secret_access_key und dann den Luftstrom begann, hob es. Jetzt bekomme ich seine Fehler in der Arbeiter-Protokolle

6/30/2017 6:05:59 PMINFO:root:Using connection to: s3
6/30/2017 6:06:00 PMERROR:root:Could not read logs from s3://buckets/xxxxxx/airflow/logs/xxxxx/2017-06-30T23:45:00
6/30/2017 6:06:00 PMERROR:root:Could not write logs to s3://buckets/xxxxxx/airflow/logs/xxxxx/2017-06-30T23:45:00
6/30/2017 6:06:00 PMLogging into: /usr/local/airflow/logs/xxxxx/2017-06-30T23:45:00

-- Update

Ich diesen link gefunden, wie gut
https://www.mail-archive.com/[email protected]/msg00462.html

Habe ich dann geschält in einer meiner Arbeiter Maschinen (getrennt vom webserver und der scheduler) und lief dieses Stück code in python

import airflow
s3 = airflow.hooks.S3Hook('s3_conn')
s3.load_string('test', airflow.conf.get('core', 'remote_base_log_folder'))

Ich diese Fehlermeldung erhalten.

boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden

Habe ich versucht zu exportieren verschiedene Arten von AIRFLOW_CONN_ envs wie hier beschrieben im Abschnitt verbindungen https://airflow.incubator.apache.org/concepts.html und von anderen Antworten auf diese Frage.

s3://<AWS_ACCESS_KEY_ID>:<AWS_SECRET_ACCESS_KEY>@S3

{"aws_account_id":"<xxxxx>","role_arn":"arn:aws:iam::<xxxx>:role/<xxxxx>"}

{"aws_access_key_id":"<xxxxx>","aws_secret_access_key":"<xxxxx>"}

Habe ich auch exportiert AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY ohne Erfolg.

Diese Anmeldeinformationen werden in einer Datenbank gespeichert, so dass, sobald ich fügen Sie Sie in der Benutzeroberfläche Sie sollten abgeholt werden, von den Arbeitnehmern, aber Sie sind nicht in der Lage zu schreiben/Lesen die logs aus irgendeinem Grund.

  • An dieser Stelle nehme ich keine Strategie um die Protokollierung zu arbeiten. Ich kann nicht bekommen Sie vor Ort, s3, oder mit rfs
  • Hat der Ordner 'logs', existieren auf den Weg? Zumindest die lokalen log-Dateien sollte ohne Probleme funktioniert, wenn der Ordner vorhanden ist. Wenn Sie nicht arbeiten, auch lokal, die einzige andere Grund, warum ich denken kann, ist falsche Berechtigungen auf den Luftstrom Ordner.
  • Vielleicht haben wir hier etwas.github.com/puckel/docker-airflow/pull/100
InformationsquelleAutor JackStat | 2017-06-27
Schreibe einen Kommentar