Airflow-naplók integrálása az Azure Monitorral

Ebből a cikkből megtudhatja, hogyan gyűjthet Airflow-naplókat a Microsoft Azure Data Manager for Energy-példányokhoz az Azure Monitorba. Ez az integrációs funkció segít az Airflow DAG (irányított aciklikus gráf) futtatási hibáinak hibakeresésében.

Előfeltételek

  • Egy meglévő Log Analytics-munkaterület. Ez a munkaterület az Airflow-naplók lekérdezésére szolgál a Log Analytics-munkaterület Kusto lekérdezésnyelv (KQL) lekérdezésszerkesztőjével. Hasznos erőforrás: Log Analytics-munkaterület létrehozása az Azure Portalon.

  • Meglévő tárfiók: Az Airflow-naplók JSON-memóriaképeinek tárolására szolgál. A tárfióknak nem kell ugyanahhoz az előfizetéséhez tartoznia, mint a Log Analytics-munkaterület.

A diagnosztikai beállítások engedélyezése a naplók tárfiókban való gyűjtéséhez

Minden Azure Data Manager for Energy-példányhoz tartozik egy Azure Data Factory Workflow Orchestration Manager (Apache Airflow által működtetett) példány. Az Airflow-naplókat belső hibaelhárítási és hibakeresési célokra gyűjtjük. Az Airflow-naplók az alábbi módokon integrálhatók az Azure Monitorral:

  • Tárfiók
  • Log Analytics-munkaterület

A naplók a fenti két lehetőség bármelyikével való eléréséhez létre kell hoznia egy diagnosztikai beállítást. Minden diagnosztikai beállítás három alapvető részből áll:

Része Leírás
Név Ez a diagnosztikai napló neve. Győződjön meg arról, hogy minden naplóhoz egyedi név van beállítva.
Kategóriák Az egyes célhelyekre küldendő naplók kategóriája. A kategóriák különbözőek lesznek az egyes Azure-szolgáltatások esetében. Látogatás: Támogatott erőforrásnapló-kategóriák
Célok Egy vagy több célhely a naplók elküldéséhez. Minden Azure-szolgáltatás azonos lehetséges célhelyekkel rendelkezik. Minden diagnosztikai beállítás definiálhat egy vagy több célhelyet, de egy adott típusú célhelyet nem. Ennek egy tárfióknak, egy Event Hubs-névtérnek vagy egy eseményközpontnak kell lennie.

A diagnosztikai Gépház beállításához kövesse az alábbi lépéseket:

  1. A Microsoft Azure Data Manager for Energy áttekintési oldalának megnyitása

  2. Válassza a diagnosztikai Gépház a bal oldali panelen

    Képernyőkép az Azure Monitor diagnosztikai beállításainak áttekintési oldalához. A lapon látható a meglévő diagnosztikai beállítások listája, valamint az újak hozzáadásának lehetősége.

  3. Válassza a Diagnosztikai beállítás hozzáadása lehetőséget

  4. Airflow tevékenységnaplók kiválasztása a Naplók területen

  5. Válassza az Archiválás tárfiókba lehetőséget

    Képernyőkép egy diagnosztikai beállítás létrehozásáról a naplók tárfiókba való archiválásához. A képen az előfizetés és a diagnosztikai beállításhoz kiválasztott tárfiók látható.

  6. Ellenőrizze azt az előfizetést és tárfiókot, amelyhez archiválni szeretné a naplókat.

Miután létrehozott egy diagnosztikai beállítást az Airflow-feladatnaplók tárfiókba való archiválásához, lépjen a tárfiók áttekintési oldalára. Ezután a bal oldali panelen található "Storage Browser" segítségével megkeresheti a kivizsgálni kívánt jobb JSON-fájlt. A különböző könyvtárak böngészése intuitív, amikor egy évről egy hónapra egy napra vált.

  1. Navigálás a bal oldali panelen elérhető Tárolók között.

    Képernyőkép a Tárfiók tárolóiban található archivált naplók feltárására. A tároló megjeleníti az összes beállított forrás naplóit.

  2. Nyissa meg az információs panelt a jobb oldalon. Tartalmaz egy "letöltés" gombot a naplófájl helyi mentéséhez.

  3. A letöltött naplók bármely szerkesztőben elemezhetők.

A diagnosztikai beállítások engedélyezése a naplók Log Analytics-munkaterülettel való integrálásához

Az Airflow-naplókat a Log Analytics-munkaterülettel integrálhatja a Microsoft Azure Data Manager for Energy-példányok áttekintési oldalának bal oldali paneljén található Diagnosztikai Gépház használatával.

Képernyőkép diagnosztikai beállítás létrehozásához. Megjeleníti az előfizetés és a Log Analytics-munkaterület kiválasztásának lehetőségeit, amelyekkel integrálható.

Az integrált Airflow-naplók használata a Log Analytics-munkaterületen

A Kusto lekérdezésnyelv (KQL) használatával lekérheti a kívánt adatokat az összegyűjtött Airflow-naplókról a Log Analytics-munkaterületről. Betöltheti az előre összeállított minta lekérdezéseket a Log Analytics-munkaterületre, vagy létrehozhat saját lekérdezéseket.

Képernyőkép az Azure Monitor Log Analytics oldalról az összegyűjtött naplók megtekintéséhez. A naplókezelés alatt az összes forrásból származó táblák láthatók lesznek.

  1. Előre elkészített lekérdezések betöltése: Válassza ki a naplókat az erőforrás menüjéből. A Log Analytics a Lekérdezések ablakkal nyílik meg, amely előre összeállított lekérdezéseket tartalmaz az erőforrástípushoz. Böngésszen az elérhető lekérdezések között. Azonosítsa a futtatni kívántat, és válassza a Futtatás lehetőséget. A rendszer hozzáadja a lekérdezést a lekérdezési ablakhoz, és visszaadja az eredményeket.

  2. Lekérdezések írása a Lekérdezésszerkesztőben: A Log Analytics-munkaterület Lekérdezésszerkesztő másolhatja, beillesztheti és szerkesztheti a következő lekérdezéseket, vagy saját kQL-t írhat.

Mintalekérdezések

Ez a lekérdezés visszaadja az összes olyan Airflow-naplót, amely HIBA szintű. Az eredményeket úgy szűrheti, hogy hozzáadja a dagihoz tartozó Azure Data Manager for Energy-példány nevének és korrelációs azonosítójának záradékát (uncommenting).


OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>"        // to filter on resourceName replace <...> and uncomment line
// | where CorrelationId == "<DAG run's runId>"                 // to filter on correlationID replace <...> with correlationId (same as runId) - we have created a duplicate for to maintain consistency of column name across all services 
| where LogLevel  == "ERROR"
| project TimeGenerated, DagName, LogLevel, DagTaskName, CodePath, Content

Ez a lekérdezés felsorolja az összes DAG-futtatásukat és azok megfelelő korrelációs azonosítóit az említett Azure Data Manager for Energy-erőforrásban.


OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>"        // to filter on resourceName replace <...> and uncomment line
| distinct DagName, CorrelationId                               // correlationId is same as runId - we have created a duplicate for consistency in search across logs of all services 
| sort by DagName asc

Dokumentumot adtunk hozzá a jegyzékbetöltési folyamat hibaelhárításához a Log Analytics-munkaterületen gyűjtött Airflow-naplók használatával.

Következő lépések

Most, hogy erőforrásnaplókat gyűjt, hozzon létre egy napló lekérdezési riasztást, amely proaktív módon értesítést küld, ha érdekes adatok vannak azonosítva a naplóadatokban.