Azure Spring Apps-alkalmazáskonzol naplóinak valós idejű streamelése

Megjegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken egy ideig a régi nevet fogja látni, miközben dolgozunk az objektumok, például képernyőképek, videók és diagramok frissítésén.

Ez a cikk a következőre vonatkozik: ✔️ Java ✔️ C#

Ez a cikk a következőkre vonatkozik: ✔️ Basic/Standard ✔️ Enterprise

Ez a cikk azt ismerteti, hogyan engedélyezheti a naplóstreamelést az Azure CLI-ben, hogy valós idejű alkalmazáskonzol-naplókat kapjon a hibaelhárításhoz. Diagnosztikai beállításokat is használhat a diagnosztikai adatok elemzéséhez az Azure Spring Appsben. További információ: Naplók és metrikák elemzése diagnosztikai beállításokkal.

Előfeltételek

Az Azure CLI használata a tail naplók létrehozásához

Ez a szakasz példákat tartalmaz arra, hogy az Azure CLI használatával hozhat létre tail naplókat. Az erőforráscsoport és a szolgáltatáspéldány nevének ismételt megadásának elkerülése érdekében az alábbi parancsokkal állítsa be az alapértelmezett erőforráscsoport- és fürtnevet:

az config set defaults.group=<service-group-name>
az config set defaults.spring=<service-instance-name>

Az alábbi példákban nem szerepel az erőforráscsoport és a szolgáltatás neve.

Egyetlen példánnyal rendelkező alkalmazás faroknaplójának megtekintése

Ha egy nevű auth-service alkalmazásnak csak egy példánya van, az alkalmazáspéldány naplóját a következő paranccsal tekintheti meg:

az spring app logs --name <application-name>

Ez a parancs az alábbi példákhoz hasonló naplókat ad vissza, ahol auth-service az alkalmazás neve.

...
2020-01-15 01:54:40.481  INFO [auth-service,,,] 1 --- [main] o.apache.catalina.core.StandardService  : Starting service [Tomcat]
2020-01-15 01:54:40.482  INFO [auth-service,,,] 1 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/uaa]  : Initializing Spring embedded WebApplicationContext
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.s.web.context.ContextLoader  : Root WebApplicationContext: initialization completed in 7203 ms

...

Több példánnyal rendelkező alkalmazás faroknaplójának megtekintése

Ha a nevű auth-servicealkalmazáshoz több példány is létezik, a beállítással megtekintheti a példánynaplót -i/--instance .

Először futtassa a következő parancsot az alkalmazáspéldányok nevének lekéréséhez:

az spring app show --name auth-service --query properties.activeDeployment.properties.instances --output table

Ez a parancs az alábbi kimenethez hasonló eredményeket hoz létre:

Name                                         Status    DiscoveryStatus
-------------------------------------------  --------  -----------------
auth-service-default-12-75cc4577fc-pw7hb  Running   UP
auth-service-default-12-75cc4577fc-8nt4m  Running   UP
auth-service-default-12-75cc4577fc-n25mh  Running   UP

Ezután az alkalmazáspéldány naplóit a következő módon streamelheti:-i/--instance

az spring app logs --name auth-service --instance auth-service-default-12-75cc4577fc-pw7hb

Az alkalmazáspéldányok részleteit a Azure Portal is lekérheti. Miután az Azure Spring Apps szolgáltatás bal oldali navigációs paneljén az Alkalmazások lehetőséget választja, válassza az Alkalmazáspéldányok lehetőséget.

Új naplók folyamatos streamelése

Alapértelmezés szerint az spring app logs csak az alkalmazáskonzolra streamelt meglévő naplókat nyomtatja ki, majd kilép. Ha új naplókat szeretne streamelni, adja hozzá a következő argumentumot -f/--follow :

az spring app logs --name auth-service --follow

Amikor az argumentumot használja az --follow azonnali naplók nyomon követéséhez, az Azure Spring Apps naplóstreamelési szolgáltatás percenként szívverési naplókat küld az ügyfélnek, kivéve, ha az alkalmazás folyamatosan naplókat ír. A szívverési naplóüzenetek a következő formátumot használják: 2020-01-15 04:27:13.473: No log from server.

Az alábbi paranccsal ellenőrizze az összes támogatott naplózási beállítást:

az spring app logs --help

Strukturált JSON-naplók formázása

Megjegyzés

A JSON strukturált naplóinak formázásához a spring bővítmény 2.4.0-s vagy újabb verziója szükséges.

A strukturált alkalmazásnaplók JSON formátumban jelennek meg, ami nehezen olvasható. Az argumentummal --format-json jSON formátumban formázhatja a naplókat olvashatóbb formátumba. További információ: Strukturált alkalmazásnapló az Azure Spring Appshez.

Az alábbi példa az argumentum használatát --format-json mutatja be:

# Raw JSON log
$ az spring app logs --name auth-service
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Disable delta property : false"}
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Single vip registry refresh property : null"}

# Formatted JSON log
$ az spring app logs --name auth-service --format-json
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Disable delta property : false
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Single vip registry refresh property : null

Az --format-json argumentum a formátumsztring szintaxisát használó, nem kötelezően testre szabott formátumot is elfogad. További információ: Sztringszintaxis formázása.

Az alábbi példa bemutatja, hogyan használható a formázási sztring szintaxisa:

# Custom format
$ az spring app logs --name auth-service --format-json="{message}{n}"
Disable delta property : false
Single vip registry refresh property : null

Az alapértelmezett formátum a következő:

{timestamp} {level:>5} [{thread:>15.15}] {logger{39}:<40.40}: {message}{n}{stackTrace}

Azure Spring Apps-alkalmazásnapló streamelése virtuális hálózati injektálási példányban

Az egyéni virtuális hálózaton üzembe helyezett Azure Spring Apps-példányok esetében a naplóstreamelés alapértelmezés szerint privát hálózatról érhető el. További információ: Azure Spring Apps üzembe helyezése virtuális hálózaton

Az Azure Spring Apps lehetővé teszi a valós idejű alkalmazásnaplók elérését egy nyilvános hálózatról Azure Portal vagy az Azure CLI használatával.

Megjegyzés

A naplóstreamelési végpont nyilvános hálózaton való engedélyezése nyilvános bejövő IP-címet ad hozzá a virtuális hálózathoz. Ügyeljen arra, hogy körültekintően járjon el, ha ez aggodalomra ad okot.

Az alábbi lépésekkel engedélyezheti a naplóstreamelési végpontot a nyilvános hálózaton.

  1. Válassza ki a virtuális hálózatban üzembe helyezett Azure Spring Apps-szolgáltatáspéldányt, majd nyissa meg a navigációs menü Hálózatkezelés lapját.

  2. Válassza ki a VNet-injektálási oldalt.

  3. Váltsa át a dataplane-erőforrások állapotát a nyilvános hálózaton , hogy engedélyezze a naplóstreamelési végpontot a nyilvános hálózaton. Ez a folyamat eltart pár percig.

    Képernyőkép a naplóstream nyilvános végpontjának engedélyezéséről a virtuális hálózat injektálási oldalán.

Miután engedélyezte a naplóstream nyilvános végpontját, hozzáférhet az alkalmazásnaplóhoz egy nyilvános hálózatról, ahogyan egy normál példányhoz.

Biztonságos forgalom a naplóstreamelési nyilvános végpont felé

A naplóstreamelés ugyanazt a kulcsot használja, mint az Előkészítési környezet beállítása az Azure Spring Appsben az üzemelő példányok kapcsolatainak hitelesítéséhez című cikkben leírt tesztvégpont. Ennek eredményeképpen csak azok a felhasználók férhetnek hozzá a naplóstreameléshez, akik olvasási hozzáféréssel rendelkeznek a tesztkulcsokhoz.

Annak érdekében, hogy az alkalmazások biztonságban legyenek, amikor nyilvános végpontot tesz elérhetővé számukra, biztonságossá teheti a végpontot úgy, hogy hálózati biztonsági csoporttal szűri a szolgáltatás felé irányuló hálózati forgalmat. További információ: Oktatóanyag: Hálózati forgalom szűrése hálózati biztonsági csoporttal a Azure Portal használatával. A hálózati biztonsági csoportok olyan biztonsági szabályokat tartalmaznak, amelyek engedélyezik vagy letiltják a különböző típusú Azure-erőforrások bejövő vagy kimenő hálózati forgalmát. Az egyes szabályokhoz meghatározhatja a forrást és a célt, valamint a használni kívánt portot és protokollt.

Megjegyzés

Ha nem fér hozzá az alkalmazásnaplókhoz a virtuális hálózat injektálási példányában az internetről, miután engedélyezte a naplóstream nyilvános végpontját, ellenőrizze a hálózati biztonsági csoportot, hogy engedélyezte-e az ilyen bejövő forgalmat.

Az alábbi táblázat egy olyan egyszerű szabályt mutat be, amelyet ajánlott. A végponthoz <service-name>.private.azuremicroservices.io hasonló nslookup parancsokkal lekérheti egy szolgáltatás cél IP-címét.

Prioritás Name Port Protokoll Forrás Cél Művelet
100 Szabály neve 80 TCP Internet Szolgáltatás IP-címe Engedélyezés
110 Szabály neve 443 TCP Internet Szolgáltatás IP-címe Engedélyezés

Következő lépések