Felügyelt Azure Spring Apps-összetevők naplóinak valós idejű streamelése

Feljegyzé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 a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

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

Ez a cikk azt ismerteti, hogyan használhatja az Azure CLI-t a felügyelt összetevők valós idejű naplóinak lekérésére hibaelhárítás céljából. Diagnosztikai beállítások használatával is elemezheti a diagnosztikai adatokat az Azure Spring Appsben. További információ: Naplók és metrikák elemzése diagnosztikai beállításokkal.

Az Azure Spring Apps alkalmazásainak streamelési naplóiért tekintse meg az Azure Spring Apps alkalmazáskonzoljának valós idejű naplóit.

Előfeltételek

  • Azure CLI az Azure Spring Apps-bővítménysel, 1.19.0-s vagy újabb verzióval. A bővítményt a következő paranccsal telepítheti: az extension add --name spring.

Támogatott felügyelt összetevők

Az alábbi táblázat a jelenleg támogatott felügyelt összetevőket és azok alösszetevőit sorolja fel:

Felügyelt összetevő Részösszetevők
Alkalmazáskonfigurációs szolgáltatás application-configuration-service
flux-source-controller (Az ACS Gen2 verziójában támogatott)
Spring Cloud Gateway spring-cloud-gateway
spring-cloud-gateway-operator

A következő paranccsal listázhatja az összes alösszetevőt:

az spring component list
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name>

Azure-szerepkör hozzárendelése

A felügyelt összetevők naplóinak streameléséhez hozzá kell rendelnie a megfelelő Azure-szerepköröket. Az alábbi táblázat felsorolja a szükséges szerepköröket és azokat a műveleteket, amelyekhez ezek a szerepkörök engedélyeket kapnak:

Felügyelt összetevő Szükséges szerepkör Üzemeltetés
Alkalmazáskonfigurációs szolgáltatás Azure Spring Apps alkalmazáskonfigurációs szolgáltatásnapló-olvasó szerepköre Microsoft.AppPlatform/Spring/ApplicationConfigurationService/logstream/action
Spring Cloud Gateway Azure Spring Apps Spring Cloud Gateway naplóolvasó szerepkör Microsoft.AppPlatform/Spring/SpringCloudGateway/logstream/action

Azure-szerepkör hozzárendeléséhez kövesse az alábbi lépéseket az Azure Portal használatával:

  1. Nyissa meg az Azure Portalt.

  2. Nyissa meg az Azure Spring Apps szolgáltatáspéldányt.

  3. A navigációs ablakban válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  4. A Hozzáférés-vezérlés (IAM) lapon válassza a Hozzáadás, majd a Szerepkör-hozzárendelés hozzáadása lehetőséget.

    Képernyőkép az Azure Portalról, amelyen a Hozzáférés-vezérlés (IAM) lap látható, és a Szerepkör-hozzárendelés hozzáadása lehetőség ki van emelve.

  5. A Szerepkör-hozzárendelés hozzáadása lap Név listájában keresse meg és jelölje ki a célszerepkört, majd válassza a Tovább gombot.

    Képernyőkép az Azure Portalról, amelyen a Szerepkör-hozzárendelés hozzáadása lap látható, kiemelve az Alkalmazáskonfigurációs szolgáltatás naplóolvasójának szerepkörneve.

  6. Válassza a Tagok lehetőséget, majd keresse meg és válassza ki a felhasználónevét.

  7. Válassza az Áttekintés + hozzárendelés lehetőséget.

Az összetevő összes példányának listázása

A következő paranccsal listázhatja egy összetevő összes példányát:

az spring component instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --component <component-name>

Ha például az ACS Gen2-verzió összes példányát flux-source-controller szeretné listázni, használja a következő parancsot:

az spring component instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --component flux-source-controller

Faroknaplók megtekintése

Ez a szakasz példákat mutat be arra, hogy az Azure CLI használatával hoz létre tail naplókat.

Adott példány faroknaplóinak megtekintése

Egy adott példány faroknaplóinak megtekintéséhez használja a az spring component logs parancsot az -i/--instance argumentummal, ahogyan az a következő szakaszban látható.

Az application-configuration-service egy példányának faroknaplóinak megtekintése

A következő paranccsal tekintheti meg a következőhöz tartozó application-configuration-servicefaroknaplókat:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name application-configuration-service \
    --instance <instance-name>

Az ACS Gen2 esetében a parancs az alábbi példához hasonló naplókat ad vissza:

...
2023-12-18T07:09:54.020Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8090 (https)
2023-12-18T07:09:54.116Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting service [Tomcat]
2023-12-18T07:09:54.117Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-18T07:09:54.522Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Initializing Spring embedded WebApplicationContext
2023-12-18T07:09:54.524Z  INFO  16715 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 14100 ms
2023-12-18T07:09:56.920Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8090 (https) with context path ''
2023-12-18T07:09:57.528Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
2023-12-18T07:09:57.529Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting service [Tomcat]
2023-12-18T07:09:57.529Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-18T07:09:57.629Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Initializing Spring embedded WebApplicationContext
2023-12-18T07:09:57.629Z  INFO  16715 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 603 ms
2023-12-18T07:09:57.824Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''
2023-12-18T07:09:58.127Z  INFO  16715 --- [main] o.springframework.boot.StartupInfoLogger : Started ReconcilerApplication in 21.005 seconds (process running for 22.875)
...

A flux-source-controller egy példányának faroknaplóinak megtekintése

A következő paranccsal tekintheti meg a következőhöz tartozó flux-source-controllerfaroknaplókat:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name flux-source-controller \
    --instance <instance-name>

A parancs az alábbi példához hasonló naplókat ad vissza:

...
{"level":"info","ts":"2023-12-18T07:07:54.615Z","logger":"controller-runtime.metrics","msg":"Metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","logger":"setup","msg":"starting manager"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","msg":"Starting server","path":"/metrics","kind":"metrics","addr":"[::]:8080"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","msg":"Starting server","kind":"health probe","addr":"[::]:9440"}
{"level":"info","ts":"2023-12-18T07:07:54.817Z","logger":"runtime","msg":"attempting to acquire leader lease flux-system/source-controller-leader-election...\n"}
{"level":"info","ts":"2023-12-18T07:07:54.830Z","logger":"runtime","msg":"successfully acquired lease flux-system/source-controller-leader-election\n"}
...

A spring-cloud-gateway egy példányának faroknaplóinak megtekintése

A következő paranccsal tekintheti meg a következőhöz tartozó spring-cloud-gatewayfaroknaplókat:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name spring-cloud-gateway \
    --instance <instance-name>

A parancs az alábbi példához hasonló naplókat ad vissza:

...
2023-12-11T14:13:40.310Z  INFO 1 --- [           main] i.p.s.c.g.s.SsoDeactivatedConfiguration  : SSO is deactivated, setting up default security filters
2023-12-11T14:13:40.506Z  INFO 1 --- [           main] .h.HazelcastReactiveSessionConfiguration : Configuring Hazelcast as a session management storage
2023-12-11T14:13:51.008Z  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8443
2023-12-11T14:13:51.810Z  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 7 endpoint(s) beneath base path '/actuator'
2023-12-11T14:13:52.410Z  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8090
2023-12-11T14:13:52.907Z  INFO 1 --- [           main] i.p.s.c.g.r.h.HazelcastRateLimitsRemover : Removing Hazelcast map 'GLOBAL_RATE_LIMIT' with rate limit information
2023-12-11T14:13:52.912Z  INFO 1 --- [           main] i.p.s.cloud.gateway.GatewayApplication   : Started GatewayApplication in 36.084 seconds (process running for 38.651)
...

A spring-cloud-gateway-operátor egy példányának faroknaplóinak megtekintése

A következő paranccsal tekintheti meg a következőhöz tartozó spring-cloud-gateway-operatorfaroknaplókat:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name spring-cloud-gateway-operator \
    --instance <instance-name>

A parancs az alábbi példához hasonló naplókat ad vissza:

...
2023-12-01T08:37:05.080Z  INFO 1 --- [           main] c.v.t.s.OperatorApplication              : Starting OperatorApplication v2.0.6 using Java 17.0.7 with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2023-12-01T08:37:05.157Z  INFO 1 --- [           main] c.v.t.s.OperatorApplication              : No active profile set, falling back to 1 default profile: "default"
2023-12-01T08:37:14.379Z  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2023-12-01T08:37:15.274Z  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8080
2023-12-01T08:37:15.366Z  INFO 1 --- [           main] c.v.t.s.OperatorApplication              : Started OperatorApplication in 11.489 seconds (process running for 12.467)
...

Az összes példány faroknaplóinak megtekintése egy parancsban

Az összes példány faroknaplóinak megtekintéséhez használja az --all-instances argumentumot az alábbi parancsban látható módon. A példány neve az egyes naplósorok előtagja. Több példány esetén a rendszer kötegben nyomtatja a naplókat minden példányhoz, így az egyik példány naplói nem kapcsolódnak egy másik példány naplóihoz.

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <component-name> \
    --all-instances

Új naplók folyamatos streamelése

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

Ha az -f/--follow azonnali naplók nyomon követésére szolgáló lehetőséget használja, 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 összetevő folyamatosan naplókat ír. A szívverési naplóüzenetek a következő formátumot használják: 2023-12-18 09:12:17.745: No log from server.

Adott példány naplóinak streamelése

Az alábbi paranccsal streamelhet naplókat egy adott példányhoz:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <component-name> \
    --instance <instance-name> \
    --follow

Naplók streamelése az összes példányhoz

A következő paranccsal streamelje a naplókat az összes példányhoz:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <component-name> \
    --all-instances \
    --follow

Ha egy összetevő több példányának naplóit streameli, az egyik példány naplói más példányok naplóival fonódik össze.

Naplók 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 alapértelmezés szerint hozzáférhet a naplóstreameléshez egy magánhálózatról. 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ű felügyelt összetevők naplóinak elérését egy nyilvános hálózatról.

Feljegyzés

Ha engedélyezi a naplóstreamelési végpontot a nyilvános hálózaton, 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.

A naplóstreamelési végpont nyilvános hálózaton való engedélyezéséhez kövesse az alábbi lépéseket:

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

  2. Válassza a Vnet injektálási lapfülét.

  3. Állítsa át a dataplane-erőforrások állapotát a nyilvános hálózaton, hogy engedélyezve legyen a naplóstreamelési végpont a nyilvános hálózaton. Ez a folyamat néhány percet vesz igénybe.

    Képernyőkép az Azure Portalról, amelyen a Hálózatkezelés lap látható, amelyen a Vnet injektálási lapja van kijelölve, és a Hibaelhárítás szakasz ki van emelve.

A naplóstream nyilvános végpontjának engedélyezése után a felügyelt összetevők naplóit ugyanúgy érheti el egy nyilvános hálózatról, mint egy normál példányt.

A naplóstreamelési nyilvános végpont felé történő forgalom védelme

A felügyelt összetevők naplóstreamelése az Azure RBAC használatával hitelesíti az összetevőkkel való kapcsolatokat. Ennek eredményeképpen csak a megfelelő szerepkörrel rendelkező felhasználók férhetnek hozzá a naplókhoz.

A felügyelt összetevők biztonságának biztosítása érdekében, 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 az 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.

Feljegyzés

Ha a naplóstream nyilvános végpontjának engedélyezése után nem fér hozzá a virtuális hálózati injektálási példány felügyelt összetevőnaplóihoz, 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 alapvető szabályt mutat be, amelyet ajánlott. A végponthoz <service-name>.private.azuremicroservices.io hasonló nslookup parancsokkal lekérheti a szolgáltatás cél IP-címét.

Prioritás Név Kikötő 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