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
- Azure CLI az Azure Spring Apps-bővítménnyel, minimum 1.0.0-s verzióval. A bővítményt a következő paranccsal telepítheti:
az extension add --name spring
- Az Azure Spring Apps egy példánya egy futó alkalmazással. További információ : Rövid útmutató: Az első alkalmazás üzembe helyezése az Azure Spring Appsben.
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-service
alkalmazá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.
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.
Válassza ki a VNet-injektálási oldalt.
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.
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 |