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
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Úpravou
index.jssouboru 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()}`) })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č.
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 restartVe webovém prohlížeči otestujte aplikaci pomocí nové
tracetrasy:http://YOUR-VM-PUBLIC-IP-ADDRESS/traceProhlížeč zobrazí odpověď
trace route demo-vm YOUR-CLIENT-IP VM-DATE-TIMEs 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 |
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.logProtokol zahrnuje volání z místního počítače.
grep "Hello world app listening on port 3000!" /var/log/pm2.logProtokol 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.logTím se zobrazí protokol konfiguračního PM2 se
APPINSIGHTS_INSTRUMENTATIONKEYzvý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 . |