5. Azure SDK-clientbibliotheek installeren om de web-app te bewaken
In deze stap voegt u de Azure SDK-clientbibliotheek toe aan de code op de virtuele machine om te beginnen met het verzamelen van app-logboeken in de Azure-cloud.
De index.js voor logboekregistratie bewerken met Azure Monitor Application Insights
Gebruik in de SSH-terminal de Nano-teksteditor in de virtuele machine om de te openen.
sudo nano index.jsBewerk het
index.jsbestand om de clientbibliotheek en logboekregistratiecode toe te voegen, die hieronder zijn gemarkeerd. Met veel bash-shells kunt u rechtstreeks kopiƫren en plakken in 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()}`) })Sla in de SSH-terminal het bestand op in de Nano-editor met besturingselement X. Voer Y in om op te slaan wanneer u hier om wordt gevraagd. Accepteer de bestandsnaam wanneer u hier om wordt gevraagd.
Wijzigingen in de web-app worden gevolgd door PM2; Door deze wijziging is de app opnieuw opgestart, zonder dat de VM opnieuw moet worden opgestart.
Als u wilt dat PM2 de omgevingsvariabele laadt en deze beschikbaar maakt in de index.js start u PM2 opnieuw op met de volgende opdracht:
sudo npm run-script restartTest de app in een webbrowser met de nieuwe
traceroute:http://YOUR-VM-PUBLIC-IP-ADDRESS/traceIn de browser wordt het antwoord met
trace route demo-vm YOUR-CLIENT-IP VM-DATE-TIMEuw IP-adres weergegeven.
Het logboek voor NGINX weergeven
De virtuele machine (VM) verzamelt logboeken voor NGINX, die kunnen worden bekeken.
| Service | Logboeklocatie |
|---|---|
| NGINX | /var/log/nginx/access.log |
Bekijk in de SSH-terminal het VM-logboek voor de NGINX-proxyservice met de volgende opdracht om het logboek weer te geven:
cat /var/log/nginx/access.log
Het logboek bevat de aanroep van uw lokale computer.
"GET /trace HTTP/1.1" 200 10 "-"
Het logboek voor PM2 weergeven
De virtuele machine verzamelt logboeken voor PM2, die kunnen worden bekeken.
| Service | Logboeklocatie |
|---|---|
| PM2 | /var/log/pm2.log |
Bekijk het VM-logboek voor de PM2-service. Dit is uw Express.js Node-web-app. Gebruik in dezelfde bash-shell de volgende opdracht om het logboek weer te geven:
cat /var/log/pm2.logHet logboek bevat de aanroep van uw lokale computer.
grep "Hello world app listening on port 3000!" /var/log/pm2.logHet logboek bevat ook uw omgevingsvariabelen, met inbegrip van uw ApplicationInsights-sleutel, doorgegeven in het npm-startscript. Gebruik de volgende grep-opdracht om te controleren of uw sleutel zich in de omgevingsvariabelen.
grep APPINSIGHTS_INSTRUMENTATIONKEY /var/log/pm2.logHiermee wordt uw PM2-logboek weergegeven
APPINSIGHTS_INSTRUMENTATIONKEYmet een andere kleur gemarkeerd.
VM-logboekregistratie en logboekregistratie in de cloud
In deze toepassing worden met console.log behulp van de berichten alleen naar de PM2-logboeken op de VM verzonden. Als u de logboeken of de VM verwijdert, verliest u die informatie.
Als u de logboeken buiten de levensduur van uw virtuele machine wilt bewaren, gebruikt u Application Insights.
Problemen oplossen
Als u problemen hebt, gebruikt u de volgende tabel om te begrijpen hoe u het probleem kunt oplossen:
| Probleem | Oplossing |
|---|---|
| 502 Gateway-fout | Dit kan erop wijzen index.js of package.js een fout is opgetreden. Bekijk uw PM2-logboeken /var/log/pm2.log op voor meer informatie. De meest recente fout staat onderaan het bestand. Als u zeker weet dat deze bestanden juist zijn, stopt en start u pm2 met behulp van de npm-scripts in package.json . |