Du är mitt i en incident och den ”enkla” frågan dyker upp: vad hände egentligen med den här virtuella datorn under de senaste timmarna (eller dagarna)? Sedan börjar flik-hoppandet. Mätvärden här. Aktivitetsloggar där. Instansvyn någon annanstans.
Den här Azure Slack timeline-automationen träffar DevOps-ansvariga först, men beredskapsingenjörer och IT-chefer känner av den också. Resultatet är enkelt: en läsbar incidenttidslinje som hamnar i Slack, så att teamet snabbt kan synka och sluta gissa.
Nedan ser du hur arbetsflödet hämtar data från Azure Monitor, organiserar den till en tydlig berättelse och gör spridda signaler till en tidslinje du faktiskt kan använda under en incident.
Så fungerar den här automationen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Azure Monitor + Slack: tydlig VM-händelsetidslinje
flowchart LR
subgraph sg0["Incoming Chat Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Azure Insight Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Shared Variables", pos: "b", h: 48 }
n2@{ icon: "mdi:wrench", form: "rounded", label: "Retrieve VM Metrics", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Incoming Chat Trigger", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Gemini Chat Engine", pos: "b", h: 48 }
n5@{ icon: "mdi:memory", form: "rounded", label: "Session Memory Buffer", pos: "b", h: 48 }
n6@{ icon: "mdi:wrench", form: "rounded", label: "List Azure Resource Groups", pos: "b", h: 48 }
n7@{ icon: "mdi:wrench", form: "rounded", label: "Fetch VM Inventory", pos: "b", h: 48 }
n8@{ icon: "mdi:wrench", form: "rounded", label: "Retrieve VM Event Logs", pos: "b", h: 48 }
n9@{ icon: "mdi:wrench", form: "rounded", label: "Current Date Utility", pos: "b", h: 48 }
n10@{ icon: "mdi:wrench", form: "rounded", label: "Fetch VM Instance View", pos: "b", h: 48 }
n8 -.-> n0
n5 -.-> n0
n9 -.-> n0
n7 -.-> n0
n10 -.-> n0
n1 --> n0
n2 -.-> n0
n4 -.-> n0
n6 -.-> n0
n3 --> n1
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n3 trigger
class n0 ai
class n4 aiModel
class n2,n6,n7,n8,n9,n10 ai
class n5 ai
Problemet: VM-incidenter är ”lätta att upptäcka” och svåra att förklara
De flesta team märker när en VM krånglar. Det svåra är att återskapa händelseförloppet. Någon startar om en VM, CPU:n spikar, disk-I/O blir märklig, sedan misslyckas en tilläggsuppdatering och du står där och försöker förstå vilket som orsakade vad. Under tiden fylls incidentkanalen med skärmdumpar, halva länkar och ”jag tror det började runt…”-gissningar. Det är inte bara förlorad tid. Det är tappat fokus. Och när sammanhanget saknas slutar det med att ni upprepar arbete mellan skift, eller gör en extra postmortem bara för att bygga upp en grundläggande tidslinje.
Det eskalerar snabbt. Här är var det oftast faller isär för de flesta team.
- Att hämta VM-mätvärden och aktivitetshändelser kräver att du hoppar mellan flera Azure-vyer, vilket saktar ned dig precis när snabbhet spelar roll.
- Två personer kan titta på samma incident och landa i olika ”starttider”, så diskussionerna i Slack glider isär i stället för att samlas.
- Manuella tidslinjer skrivs vanligtvis i efterhand, vilket gör att teamet saknar en gemensam berättelse under själva incidenten.
- När frågan är ”vad ändrades?” slösar du tid på att leta efter resursgrupp, instansvy och konfigurationsdetaljer som borde vara samlade på ett ställe.
Lösningen: AI-genererade Azure VM-tidslinjer som publiceras i Slack
Det här arbetsflödet gör en chattfråga till en komplett incidenttidslinjerapport. Det startar när du skickar ett meddelande till n8n:s chatt-endpoint och ber om VM-analys (till exempel ”tidslinje för vm-web-02 senaste 24 timmarna”). Därefter tolkar en AI-agent din begäran och anropar Azure-API:er för att samla ihop det som annars ligger utspritt: resursgruppskontext, VM-inventeringsdetaljer, instansvy/statusändringar, prestandamätvärden som CPU och nätverk samt händelser i aktivitetsloggen som förklarar operativa förändringar. När den har rådata syr agenten ihop den till en kronologisk berättelse som är läsbar för människor, inte bara Azure-experter. Slutresultatet är en tidslinjerapport du kan dela i Slack, så incidentkanalen får en konsekvent källa till sanning.
Arbetsflödet börjar med en inkommande chatt-trigger och sätter delade variabler (inklusive ditt prenumerations-ID och tidsfönster). Sedan hämtar AI-agenten mätvärden och loggar via Azure Monitor-endpoints, analyserar vad som ändrats över tid och skapar en tidslinjerapport som kan klistras in eller publiceras direkt i Slack.
Det du får: automation kontra resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du utreder en strulig VM och normalt kollar fyra ställen: instansstatus, aktivitetsloggar, CPU-/nätverksgrafer och disk-I/O-grafer. Om det är ungefär 10 minuter per ställe (plus den oundvikliga dubbelkollen) är du uppe i 40–50 minuter innan du ens kan förklara sekvensen i Slack. Med det här arbetsflödet skickar du ett chattmeddelande (cirka 1 minut), väntar ett par minuter medan Azure-API:er frågas och får en tidslinjerapport som är klar att dela. De flesta team får tillbaka ungefär 30–40 minuter per incident, och kanalen får tydlighet tidigare.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Microsoft Azure-prenumeration med åtkomst till dina VM:ar.
- Azure Monitor OAuth2-inloggningsuppgifter för att läsa mätvärden och aktivitetsloggar.
- Google Gemini API-inloggningsuppgifter för AI-agenten som skriver tidslinjen.
Svårighetsgrad: Medel. Du kopplar in inloggningsuppgifter, anger ditt Azure-prenumerations-ID och bekräftar Azure-behörigheter för att läsa loggar.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett chattmeddelande triggar arbetsflödet. n8n:s chatt-trigger tar emot din fråga, till exempel ”VM-tidslinje för de senaste 2 dagarna”, och skickar in den i arbetsflödet med en sessionskontext.
Delade variabler tillämpas. n8n sätter gemensamma värden (som ditt Azure-prenumerations-ID och standardtidsintervall). Om du inte anger datum använder arbetsflödet som standard de senaste 90 dagarna.
AI-agenten hämtar rätt Azure-data. Agenten använder HTTP-baserade verktyg för att lista resursgrupper, hämta VM-inventering, plocka fram instansvydetaljer, samla prestandamätvärden och hämta händelser från Azure Activity Log. Den kan loopa igenom objekt i batchar när flera VM:ar eller resurser ingår, så att den inte kollapsar på större prenumerationer.
En tidslinjerapport genereras för delning. Modellen förvandlar råa mätvärden och händelseloggar till en kronologisk berättelse du kan klistra in i Slack (eller anpassa för att publicera automatiskt i din kanal).
Du kan enkelt ändra standardfönstret så att den alltid analyserar de senaste 24 timmarna (i stället för 90 dagar) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggern för inkommande chatt
Konfigurera chattens startpunkt så att användarprompter kan starta övervakningsflödet och skickas vidare till AI-agenten.
- Lägg till och öppna Incoming Chat Trigger.
- Behåll standardinställningarna i Options (den här triggern är redo att ta emot chattinmatning).
- Verifiera att exekveringsflödet kopplar Incoming Chat Trigger → Assign Shared Variables.
Steg 2: anslut Azure Monitor
Dessa AI-verktyg frågar Azure Monitor och Azure Resource Manager. Eftersom det finns flera Azure-verktygsnoder konfigurerar ni autentiseringsuppgifter en gång och återanvänder dem i alla verktygsnoder.
- Öppna Retrieve VM Metrics och ställ in URL till
=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/providers/microsoft.insights/metrics. - Ställ in query-parametrar i Retrieve VM Metrics: api-version till
2018-01-01, metricnames tillPercentage CPU,Network In,Network Out,Disk Read Bytes,Disk Write Bytes, timespan till{from_time}/{to_time}&interval={interval}och aggregation tillaverage,maximum. - Öppna List Azure Resource Groups och ställ in URL till
=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/resourcegroups?api-version=2021-04-01. - Öppna Fetch VM Inventory och ställ in URL till
=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id}}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.Compute/virtualMachinesmed api-version2023-03-01. - Öppna Fetch VM Instance View och ställ in URL till
=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/instanceViewmed api-version2023-09-01. - Öppna Retrieve VM Event Logs och ställ in URL till
=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/providers/microsoft.insights/eventtypes/management/valuesmed api-version2015-04-01och behåll $filter-uttrycket intakt. - Credential Required: Anslut era
microsoftAzureMonitorOAuth2Api-autentiseringsuppgifter på alla Azure-verktygsnoder (Retrieve VM Metrics, List Azure Resource Groups, Fetch VM Inventory, Fetch VM Instance View, Retrieve VM Event Logs).
{azure_resource_group_name} och {vm_name} måste tillhandahållas av agenten vid körning. Om era prompter inte anger dem kommer API-anropet att misslyckas.Steg 3: konfigurera Assign Shared Variables
Definiera delade variabler som används av alla efterföljande Azure-verktyg.
- Öppna Assign Shared Variables.
- Lägg till en strängtilldelning med namnet azure_subscription_id med värdet
[YOUR_ID]. - Bekräfta att exekveringsflödet är Incoming Chat Trigger → Assign Shared Variables → Azure Insight Agent.
[YOUR_ID] med ert faktiska Azure-prenumerations-ID, annars kommer era verktyg att returnera auktoriserings- eller resursfel.Steg 4: konfigurera Azure Insight Agent (AI-orkestrering)
Konfigurera AI-agenten, språkmodellen, minnet och de verktyg den ska använda för att tolka förfrågningar och hämta VM-data.
- Öppna Azure Insight Agent och ställ in Text till
={{ $('Incoming Chat Trigger').item.json.chatInput }}. - Behåll System Message som den är definierad för att säkerställa att agenten genererar tidslinjebaserade VM-rapporter.
- Öppna Gemini Chat Engine och ställ in Model Name till
models/gemini-2.5-pro-preview-05-06. - Credential Required: Anslut era
googlePalmApi-autentiseringsuppgifter i Gemini Chat Engine (detta är språkmodellen för Azure Insight Agent). - Öppna Session Memory Buffer och ställ in Session Key till
={{ $('Incoming Chat Trigger').item.json.sessionId }}med Session ID Type inställd påcustomKey. - Säkerställ att AI-verktygen (Retrieve VM Metrics, List Azure Resource Groups, Fetch VM Inventory, Fetch VM Instance View, Retrieve VM Event Logs och Current Date Utility) är anslutna till Azure Insight Agent via AI-verktygsportarna.
Steg 5: konfigurera verktygs- och dokumentationsnoder
Slutför hjälpnoder och valfria dokumentationsobjekt som används av agenten och canvasen.
- Öppna Current Date Utility och bekräfta att JavaScript-koden är
const curDate = new Date().toISOString() return curDate. - Behåll Flowpast Branding som en referens-”sticky note”, eller uppdatera innehållet om ni vill ha intern dokumentation på canvasen.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera autentiseringsuppgifter, verktygsanrop och AI-svaret innan ni aktiverar arbetsflödet.
- Klicka på Execute Workflow och skicka ett meddelande till Incoming Chat Trigger såsom ”Summarize VM activity for resource group RG1 over the last 30 days.”
- Bekräfta att Assign Shared Variables skickar vidare
azure_subscription_idoch att Azure Insight Agent svarar med en VM-tidslinjerapport. - Om svaret är tomt, verifiera Azure-autentiseringsuppgifterna och säkerställ att prompten innehåller en resursgrupp eller ett VM-namn för platshållarvärdena.
- När ni är nöjda, växla arbetsflödets status till Active för att möjliggöra användning i produktion.
Vanliga fallgropar
- Azure Monitor-inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, börja med att kontrollera n8n:s test av inloggningsuppgifter och din Azure App Registration/API-behörigheter.
- Om du analyserar många VM:ar samtidigt kan rate limits i Azure Monitor-API:et dyka upp som ”slumpmässiga” fel. Minska parallellitet (eller dela upp i batchar) om svaren kommer tillbaka tomma.
- Standardprompter för AI är generiska. Lägg till ert beredskapsformat tidigt (vad som räknas som ”incidentstart”, hur omstarter ska märkas, vad som ska lyftas fram), annars skriver du om varje tidslinje manuellt.
Vanliga frågor
Cirka 30 minuter om dina Azure-inloggningsuppgifter är klara.
Nej. Du kopplar konton och uppdaterar några variabler i n8n.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för Google Gemini API-användning, som beror på hur långa och hur ofta du genererar tidslinjerapporter.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja. Uppdatera standardintervallet i steget för delade variabler (noden ”Assign Shared Variables”) och behåll verktyget ”Current Date Utility” som referenspunkt. Vanliga justeringar är att ändra standarden från 90 dagar till 1 dag, tvinga fram ett specifikt namnmönster för VM:ar och lägga till en ”höjdpunkter först”-sammanfattning för Slack.
Oftast är det utgångna OAuth-inloggningsuppgifter eller saknade läsbehörigheter. Bekräfta att din Azure App Registration har åtkomst att läsa VM-data och aktivitetsloggar och spara sedan om Azure Monitor OAuth2-inloggningsuppgiften i n8n. Kontrollera även prenumerations-ID:t i noden ”Assign Shared Variables”, eftersom ett enda fel tecken skickar alla anrop rakt ut i tomma intet. Om du kör stora frågor över många VM:ar kan rate limiting se ut som att ”det funkar ibland”, så minska parallellitet eller snäva in tidsfönstret.
Det beror på dina exekveringsgränser och Azure API:ers rate limits, men att hantera en handfull VM:ar per körning är realistiskt i de flesta upplägg.
För det här arbetsflödet har n8n några fördelar: mer komplex logik med obegränsad förgrening utan extra kostnad, möjlighet till egen drift för obegränsade körningar och inbyggt stöd för AI-agent + minne som många verktyg låser bakom högre nivåer. Samtidigt kan Zapier eller Make vara enklare om du bara behöver enkla 2-stegsautomationer. Prata med en automationsexpert om du är osäker på vad som passar.
Incidenter går snabbare när tidslinjen redan är nedskriven. Sätt upp detta en gång, så slutar din Slack-kanal att bygga på gissningar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.