Google Gemini AI 채팅 어시스턴트를 사용하여 Azure VM 시간선 보고서 생성
중급
이것은DevOps, AI분야의자동화 워크플로우로, 11개의 노드를 포함합니다.주로 Set, Agent, ToolCode, ChatTrigger, ToolHttpRequest 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. Google Gemini AI 채팅 어시스턴트를 사용하여 Azure VM 시간선 보고서 생성
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Gemini API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "dc70be25ab3de91313745487daa53ea6b35f677ae326eae305310e197f986f71",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1092,
-780
],
"parameters": {
"text": "={{ $('When chat message received').item.json.chatInput }}",
"options": {
"systemMessage": "=You are an assistant that queries the user's Azure subscription for various Azure virtual machine information.\n\nThrough your tools, you have the ability to query information in Azure such as resource groups and virtual machines.\n\nYour task is to carefully analyze all information about one or more VMs and provide a timeline report to the user including VM state changes, CPU, network, disk activity, etc. The report will be broken down by VM and provide a historical timeline of what happened to a VM during that time.\n\nDo not ask the user questions unless absolutely necessary. He relies on you to make your own decisions.\n\nBy default, the user needs all events starting 90 days ago and newer but can override that with a request.\n\n"
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "1c5bee5e-bbd8-4a0c-bcdf-817540cf5b0f",
"name": "공통 변수 설정",
"type": "n8n-nodes-base.set",
"position": [
720,
-780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "942ba480-59b8-4a77-a36d-6f198b2b76b4",
"name": "azure_subscription_id",
"type": "string",
"value": "<your azure subscription id here>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f2bc18f2-aa40-43b5-8738-0faa64aa5beb",
"name": "VM 성능 통계 가져오기",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1060,
-500
],
"parameters": {
"url": "=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/providers/microsoft.insights/metrics",
"sendQuery": true,
"authentication": "predefinedCredentialType",
"parametersQuery": {
"values": [
{
"name": "api-version",
"value": "2018-01-01",
"valueProvider": "fieldValue"
},
{
"name": "metricnames",
"value": "Percentage CPU,Network In,Network Out,Disk Read Bytes,Disk Write Bytes",
"valueProvider": "fieldValue"
},
{
"name": "timespan",
"value": "{from_time}/{to_time}&interval={interval}",
"valueProvider": "fieldValue"
},
{
"name": "aggregation",
"value": "average,maximum",
"valueProvider": "fieldValue"
}
]
},
"toolDescription": "This tool returns performance metrics for a specific virtual machine (VM) in Azure. These metrics come from Azure Monitor and provide time-series data that helps you understand how the VM is performing over time. This includes key metrics like CPU usage (Percentage CPU), disk I/O, network in/out, and available memory, depending on what’s enabled for monitoring.\n\nYou can use query parameters (e.g., metricnames, timespan, interval, aggregation) to control which metrics are returned, over what time period, and at what granularity. The response includes metadata like the unit of measurement, timestamps, and aggregated values (e.g., average, minimum, maximum). This endpoint is commonly used for monitoring, alerting, and troubleshooting VM performance.",
"nodeCredentialType": "microsoftAzureMonitorOAuth2Api",
"placeholderDefinitions": {
"values": [
{
"name": "azure_resource_group_name",
"type": "string"
},
{
"name": "vm_name",
"type": "string"
},
{
"name": "from_time",
"type": "string",
"description": "2025-05-18T20:01:52Z"
},
{
"name": "to_time",
"type": "string"
},
{
"name": "interval",
"description": " ISO 8601 duration format Options: PT1M (1min), PT5M (5min), PT15M (15min), PT30M (30min), PT1H (1hr), PT6H (6hr), PT12H (12hr), P1D (1day)"
}
]
}
},
"credentials": {
"microsoftAzureMonitorOAuth2Api": {
"id": "jUzjMChitb3DNqcr",
"name": "Microsoft Azure Monitor"
}
},
"typeVersion": 1.1
},
{
"id": "58093475-6b4a-44b7-8a94-783de4c662f4",
"name": "채팅 메시지 수신 시",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
500,
-780
],
"webhookId": "def18753-6744-4666-8062-9cc37938ff3c",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "006eb130-f4e6-4f6b-af5a-0f045eef9426",
"name": "Google Gemini 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
600,
-520
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-pro-preview-05-06"
},
"credentials": {
"googlePalmApi": {
"id": "MeEjlKe69mU8qQ3w",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "838e66a3-0b0e-441d-aa02-d9dda32e3ce7",
"name": "단순 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
820,
-460
],
"parameters": {
"sessionKey": "={{ $('When chat message received').item.json.sessionId }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "30acbfb9-6938-475c-a97c-c8e9f93d8034",
"name": "Azure 리소스 그룹 가져오기",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1280,
-520
],
"parameters": {
"url": "=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/resourcegroups?api-version=2021-04-01",
"fields": "name, type",
"dataField": "value",
"authentication": "predefinedCredentialType",
"fieldsToInclude": "selected",
"toolDescription": "This tool returns a list of resource groups within the specified Azure subscription. A resource group is a container that holds related Azure resources like virtual machines, storage accounts, and databases. This API is useful for inventory, organization, and automation tasks.\n\nEach resource group object in the response includes basic metadata such as the name, location (region), id, and properties.provisioningState. It may also contain tags if they are defined. This endpoint is typically used to get an overview of how resources are grouped and managed across a subscription, and it’s often the first step in workflows that involve resource discovery or filtering by location or naming convention.",
"optimizeResponse": true,
"nodeCredentialType": "microsoftAzureMonitorOAuth2Api"
},
"credentials": {
"microsoftAzureMonitorOAuth2Api": {
"id": "jUzjMChitb3DNqcr",
"name": "Microsoft Azure Monitor"
}
},
"typeVersion": 1.1
},
{
"id": "b5cd2f51-dde8-410f-a622-78d87bca9883",
"name": "VM 정보 가져오기",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1680,
-680
],
"parameters": {
"url": "=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id}}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.Compute/virtualMachines",
"fields": "name,location,tags,properties.hardwareProfile.vmSize",
"dataField": "value",
"sendQuery": true,
"authentication": "predefinedCredentialType",
"fieldsToInclude": "selected",
"parametersQuery": {
"values": [
{
"name": "api-version",
"value": "2023-03-01",
"valueProvider": "fieldValue"
}
]
},
"toolDescription": "This tool returns a list of all virtual machines (VMs) within a specific resource group under a given subscription. The response is a JSON object that includes metadata for each VM, such as the VM name, location (Azure region), provisioning state, VM size (e.g., Standard_D2s_v3), OS type, and associated resources like network interfaces and storage profiles. Each VM entry may also include tags, availability zone info, and reference links to related resources like disks, NICs, or the OS image used.\n\nThis endpoint does not include live runtime data like power state or metrics (e.g., CPU usage). To get those, you’d need to call separate endpoints such as instance view (/virtualMachines/{vmName}/instanceView). The primary use case for this endpoint is inventory management—enumerating and describing all VMs in a group for configuration or auditing purposes.",
"optimizeResponse": true,
"nodeCredentialType": "microsoftAzureMonitorOAuth2Api",
"placeholderDefinitions": {
"values": [
{
"name": "azure_resource_group_name",
"type": "string"
}
]
}
},
"credentials": {
"microsoftAzureMonitorOAuth2Api": {
"id": "jUzjMChitb3DNqcr",
"name": "Microsoft Azure Monitor"
}
},
"typeVersion": 1.1
},
{
"id": "0159f464-6fb5-4ddf-8536-5dc7798bc484",
"name": "VM 이벤트 가져오기",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1980,
-940
],
"parameters": {
"url": "=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/providers/microsoft.insights/eventtypes/management/values",
"fields": "category.localizedValue, level, resourceGroupName, operationName.localizedValue, properties.title, properties.details, properties.type, properties.cause,eventTimestamp",
"dataField": "value",
"sendQuery": true,
"authentication": "predefinedCredentialType",
"fieldsToInclude": "selected",
"parametersQuery": {
"values": [
{
"name": "api-version",
"value": "2015-04-01",
"valueProvider": "fieldValue"
},
{
"name": "$filter",
"value": "=eventTimestamp ge '{{ $if('{start_timestamp}', '{start_timestamp}', DateTime.utc().minus({ days: 90 }).startOf('second').toISO()) }}'\n {{ $if({vm_name}, ` and resourceId eq '/SUBSCRIPTIONS/${$json.azure_subscription_id}/RESOURCEGROUPS/{resource_group_name}/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/{vm_name}`, ` and resourceGroupName eq '{resource_group_name}'`) }}'\n}",
"valueProvider": "fieldValue"
}
]
},
"toolDescription": "This tool returns a list of Azure Activity Log events related to management operations within a specific subscription. These events capture control-plane actions performed on Azure resources, such as creating, updating, or deleting virtual machines, storage accounts, resource groups, role assignments, and more. The log includes data on who initiated the action, when it occurred, what the operation was, its result (e.g. Succeeded, Failed), and which resource was affected.\n\nEach event in the response contains detailed fields such as eventTimestamp, operationName, status, caller, resourceId, and correlationId. This data is commonly used for auditing, compliance, and security monitoring. You can apply filters using query parameters like time range ($filter) to retrieve logs from a specific period. These logs do not contain data-plane information (like reading from a VM or querying a database)—only control-plane actions that change Azure resource state or configuration.",
"optimizeResponse": true,
"nodeCredentialType": "microsoftAzureMonitorOAuth2Api",
"placeholderDefinitions": {
"values": [
{
"name": "resource_group_name",
"type": "string",
"description": "Required"
},
{
"name": "vm_name",
"type": "string",
"description": "Not required"
},
{
"name": "start_timestamp",
"type": "string",
"description": "Not required. Value requires timestamp in ISO 8601 format. Convert for the user if another format is provided."
}
]
}
},
"credentials": {
"microsoftAzureMonitorOAuth2Api": {
"id": "jUzjMChitb3DNqcr",
"name": "Microsoft Azure Monitor"
}
},
"typeVersion": 1.1
},
{
"id": "560c6ffe-e248-4b26-8752-db8be5e4056d",
"name": "현재 날짜 가져오기",
"type": "@n8n/n8n-nodes-langchain.toolCode",
"position": [
1840,
-780
],
"parameters": {
"name": "get_current_date",
"jsCode": "const curDate = new Date().toISOString()\nreturn curDate",
"description": "Call this tool to get the current date"
},
"typeVersion": 1.1
},
{
"id": "3adb5a18-38fe-4b94-9f5f-6937d51fe90f",
"name": "VM 인스턴스 뷰 가져오기",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1500,
-560
],
"parameters": {
"url": "=https://management.azure.com/subscriptions/{{ $json.azure_subscription_id }}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/instanceView",
"sendQuery": true,
"authentication": "predefinedCredentialType",
"parametersQuery": {
"values": [
{
"name": "api-version",
"value": "2023-09-01",
"valueProvider": "fieldValue"
}
]
},
"toolDescription": "This tool returns the instance view of a specific virtual machine. This provides runtime details that aren’t available through the standard VM configuration API. It includes information such as the VM’s power state (e.g., PowerState/running, stopped), provisioning status, and boot diagnostics.\n\nThe response also contains detailed status codes for each component of the VM, such as the OS disk, data disks, and VM agent. These status entries help diagnose health or startup issues. Unlike the general VM list, this endpoint is focused on the current operational state of the VM and is commonly used in monitoring dashboards or automation scripts that need to respond to VM lifecycle events.",
"nodeCredentialType": "microsoftAzureMonitorOAuth2Api",
"placeholderDefinitions": {
"values": [
{
"name": "azure_resource_group_name",
"type": "string"
},
{
"name": "vm_name",
"type": "string"
}
]
}
},
"credentials": {
"microsoftAzureMonitorOAuth2Api": {
"id": "jUzjMChitb3DNqcr",
"name": "Microsoft Azure Monitor"
}
},
"typeVersion": 1.1
}
],
"pinData": {},
"connections": {
"214c1831-bd0d-431a-b811-bc29122f5bf1": {
"main": [
[]
]
},
"0159f464-6fb5-4ddf-8536-5dc7798bc484": {
"ai_tool": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_tool",
"index": 0
}
]
]
},
"838e66a3-0b0e-441d-aa02-d9dda32e3ce7": {
"ai_memory": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_memory",
"index": 0
}
]
]
},
"560c6ffe-e248-4b26-8752-db8be5e4056d": {
"ai_tool": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_tool",
"index": 0
}
]
]
},
"b5cd2f51-dde8-410f-a622-78d87bca9883": {
"ai_tool": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_tool",
"index": 0
}
]
]
},
"3adb5a18-38fe-4b94-9f5f-6937d51fe90f": {
"ai_tool": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_tool",
"index": 0
}
]
]
},
"1c5bee5e-bbd8-4a0c-bcdf-817540cf5b0f": {
"main": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "main",
"index": 0
}
]
]
},
"f2bc18f2-aa40-43b5-8738-0faa64aa5beb": {
"ai_tool": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_tool",
"index": 0
}
]
]
},
"006eb130-f4e6-4f6b-af5a-0f045eef9426": {
"ai_languageModel": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"30acbfb9-6938-475c-a97c-c8e9f93d8034": {
"ai_tool": [
[
{
"node": "214c1831-bd0d-431a-b811-bc29122f5bf1",
"type": "ai_tool",
"index": 0
}
]
]
},
"58093475-6b4a-44b7-8a94-783de4c662f4": {
"main": [
[
{
"node": "1c5bee5e-bbd8-4a0c-bcdf-817540cf5b0f",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 데브옵스, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Azure 검색, Entra ID, Jira를 통합한 AI IT 지원 어시스턴트 구축
Azure 검색, Entra ID 및 Jira 통합된 AI IT 지원 어시스턴트 구축
Set
Code
Webhook
+
Set
Code
Webhook
30 노드Adam Bertram
지원
24. Bright Data와 Gemini AI를 사용하여 실시간 검색 데이터를 통해 채팅 응답 강화
통해Bright Data및Gemini AI利用实时검색데이터增强채팅响应
Set
Mcp Client
Mcp Client Tool
+
Set
Mcp Client
Mcp Client Tool
18 노드Ranjan Dailata
제품
데이터 분석사 Agent v3
用于电子表格의AI데이터분석어시스턴트,基于NocoDB平台
Set
Noco Db Tool
Http Request
+
Set
Noco Db Tool
Http Request
10 노드Derek Cheung
엔지니어링
LintBot: 자동화 코드 품질 어시스턴트
Google Gemini AI를 사용한 GitHub PR 코드 검사 및 자동 수정 자동화
Set
Code
Webhook
+
Set
Code
Webhook
20 노드Adam Bertram
엔지니어링
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
데이터베이스 아키텍처만으로 SQL 쿼리 생성 - AI 기반
데이터베이스 아키텍처만으로 SQL 쿼리 생성 - AI 추동
If
Set
Merge
+
If
Set
Merge
29 노드Yulia
엔지니어링