5. Nainstalujte klientskou knihovnu Azure SDK pro monitorování webové aplikace.

V tomto kroku přidáte do kódu na virtuálním počítači knihovnu klienta Azure SDK, abyste mohli začít shromažďovat protokoly aplikací v cloudu Azure.

úprava index.js pro protokolování pomocí Azure Monitor Application Insights

  1. Stále v terminálu SSH pomocí textového editoru nano , který je k dispozici ve virtuálním počítači, otevřete .

    sudo nano index.js
    
  2. Úpravou index.js souboru přidejte knihovnu klienta a kód protokolování, který je zvýrazněný níže. Mnoho prostředí bash umožňuje kopírování a vkládání přímo do nano.

    const express = require('express')
    const app = express()
    const os = require('os');
    
    console.log(JSON.stringify(process.env));
    
    const AppInsights = require('applicationinsights');
    
    AppInsights.setup(process.env.APPINSIGHTS_INSTRUMENTATIONKEY)
    .setAutoDependencyCorrelation(true)
    .setAutoCollectRequests(true)
    .setAutoCollectPerformance(true, true)
    .setAutoCollectExceptions(true)
    .setAutoCollectDependencies(true)
    .setAutoCollectConsole(true)
    .setUseDiskRetryCaching(true)
    .setSendLiveMetrics(false)
    .setDistributedTracingMode(AppInsights.DistributedTracingModes.AI)
    .start();
    
    const AppInsightsClient = AppInsights.defaultClient;
    
       
    app.get('/trace', (req, res) => {
    
        const clientIP = req.headers['x-forwarded-for'];
        const msg = `trace route ${os.hostname()} ${clientIP} ${new Date()}`;
    
        console.log(msg)
    
        AppInsightsClient.trackPageView();
        AppInsightsClient.trackTrace({ message: msg})
        AppInsightsClient.flush();
        
        res.send(`${msg}`)
    })
    
    app.get('/', function (req, res) {
    
        const clientIP = req.headers['x-forwarded-for'];
        const msg = `root route ${os.hostname()} ${clientIP} ${new Date()}`
    
        console.log(msg)
    
        res.send(msg)
    
    })
    app.listen(3000, function () {
        console.log(`Hello world app listening on port 3000! ${os.hostname()}`)
    })
    
  3. Pořád v terminálu SSH uložte soubor v editoru Nano s ovládacím prvkemX. Po zobrazení výzvy zadejte Y pro uložení. Po zobrazení výzvy přijměte název souboru.

    Změny webové aplikace jsou sledovány pomocí konfiguračního PM2; Tato změna způsobila restart aplikace, aniž by bylo nutné restartovat virtuální počítač.

  4. Pokud chcete, aby konfiguračního PM2 načetla proměnnou prostředí a měla k dispozici ve index.js, restartujte konfiguračního PM2 pomocí následujícího příkazu:

    sudo npm run-script restart
    
  5. Ve webovém prohlížeči otestujte aplikaci pomocí nové trace trasy:

    http://YOUR-VM-PUBLIC-IP-ADDRESS/trace
    

    Prohlížeč zobrazí odpověď trace route demo-vm YOUR-CLIENT-IP VM-DATE-TIME s vaší IP adresou.

Zobrazení protokolu pro NGINX

Virtuální počítač shromažďuje protokoly pro NGINX, které jsou k dispozici pro zobrazení.

Služba Umístění protokolu
NGINX /var/log/nginx/access.log

Pořád v terminálu SSH zobrazte protokol virtuálního počítače pro službu proxy NGINX pomocí následujícího příkazu, který zobrazí protokol:

cat /var/log/nginx/access.log

Protokol zahrnuje volání z místního počítače.

"GET /trace HTTP/1.1" 200 10 "-"

Zobrazení protokolu pro konfiguračního PM2

Virtuální počítač shromáždí protokoly pro konfiguračního PM2, které jsou k dispozici pro zobrazení.

Služba Umístění protokolu
KONFIGURAČNÍHO PM2 /var/log/pm2.log
  1. Zobrazte protokol virtuálního počítače pro službu konfiguračního PM2, což je webová aplikace uzlu Express.js. Ve stejném prostředí bash použijte následující příkaz k zobrazení protokolu:

    cat /var/log/pm2.log
    
  2. Protokol zahrnuje volání z místního počítače.

    grep "Hello world app listening on port 3000!" /var/log/pm2.log
    
  3. Protokol také obsahuje vaše proměnné prostředí, včetně vašeho klíče ApplicationInsights, předaného ve spouštěcím skriptu npm. k ověření, zda je klíč v proměnných prostředí, použijte následující příkaz grep.

    grep APPINSIGHTS_INSTRUMENTATIONKEY /var/log/pm2.log
    

    Tím se zobrazí protokol konfiguračního PM2 se APPINSIGHTS_INSTRUMENTATIONKEY zvýrazněnou jinou barvou.

Protokolování virtuálních počítačů a protokolování do cloudu

V této aplikaci používá console.log Zápis zpráv do konfiguračního PM2 protokolů, které se nacházejí pouze na virtuálním počítači. Pokud odstraníte protokoly nebo virtuální počítač, ztratíte tyto informace.

pokud chcete zachovávat protokoly i po životnosti virtuálního počítače, použijte Application Insights.

Poradce při potížích

Pokud máte problémy, použijte následující tabulku, která vám pomůže pochopit, jak problém vyřešit:

Problém Řešení
chyba brány 502 To může znamenat, že index.js nebo package.js soubor obsahuje chybu. Další informace najdete v protokolech konfiguračního PM2 /var/log/pm2.log . Poslední chyba je na konci souboru. Pokud jste si jisti, že jsou tyto soubory správné, zastavte a spusťte konfiguračního PM2 pomocí skriptů npm v package.json .

Další krok