- Elastic integrations
- Integrations quick reference
- 1Password
- Abnormal Security
- ActiveMQ
- Active Directory Entity Analytics
- Admin By Request EPM integration
- Airflow
- Akamai
- Apache
- API (custom)
- Arbor Peakflow SP Logs
- Arista NG Firewall
- Atlassian
- Auditd
- Auth0
- authentik
- AWS
- Amazon CloudFront
- Amazon DynamoDB
- Amazon EBS
- Amazon EC2
- Amazon ECS
- Amazon EMR
- AWS API Gateway
- Amazon GuardDuty
- AWS Health
- Amazon Kinesis Data Firehose
- Amazon Kinesis Data Stream
- Amazon MQ
- Amazon Managed Streaming for Apache Kafka (MSK)
- Amazon NAT Gateway
- Amazon RDS
- Amazon Redshift
- Amazon S3
- Amazon S3 Storage Lens
- Amazon Security Lake
- Amazon SNS
- Amazon SQS
- Amazon VPC
- Amazon VPN
- AWS Bedrock
- AWS Billing
- AWS CloudTrail
- AWS CloudWatch
- AWS ELB
- AWS Fargate
- AWS Inspector
- AWS Lambda
- AWS Logs (custom)
- AWS Network Firewall
- AWS Route 53
- AWS Security Hub
- AWS Transit Gateway
- AWS Usage
- AWS WAF
- Azure
- Activity logs
- App Service
- Application Gateway
- Application Insights metrics
- Application Insights metrics overview
- Application State Insights metrics
- Azure logs (v2 preview)
- Azure OpenAI
- Billing metrics
- Container instance metrics
- Container registry metrics
- Container service metrics
- Custom Azure Logs
- Custom Blob Storage Input
- Database Account metrics
- Event Hub input
- Firewall logs
- Frontdoor
- Functions
- Microsoft Entra ID
- Monitor metrics
- Network Watcher VNet
- Network Watcher NSG
- Platform logs
- Resource metrics
- Spring Cloud logs
- Storage Account metrics
- Virtual machines metrics
- Virtual machines scaleset metrics
- Barracuda
- BeyondInsight and Password Safe Integration
- BitDefender
- Bitwarden
- blacklens.io
- Blue Coat Director Logs
- BBOT (Bighuge BLS OSINT Tool)
- Box Events
- Bravura Monitor
- Broadcom ProxySG
- Canva
- Cassandra
- CEL Custom API
- Ceph
- Check Point
- Cilium Tetragon
- CISA Known Exploited Vulnerabilities
- Cisco
- Cisco Meraki Metrics
- Citrix
- Claroty CTD
- Cloudflare
- Cloud Asset Inventory
- CockroachDB Metrics
- Common Event Format (CEF)
- Containerd
- CoreDNS
- Corelight
- Couchbase
- CouchDB
- Cribl
- CrowdStrike
- Cyberark
- Cybereason
- CylanceProtect Logs
- Custom Websocket logs
- Darktrace
- Data Exfiltration Detection
- DGA
- Digital Guardian
- Docker
- DomainTools Real Time Unified Feeds
- Elastic APM
- Elastic Fleet Server
- Elastic Security
- Elastic Stack monitoring
- Elasticsearch Service Billing
- Envoy Proxy
- ESET PROTECT
- ESET Threat Intelligence
- etcd
- Falco
- F5
- File Integrity Monitoring
- FireEye Network Security
- First EPSS
- Forcepoint Web Security
- ForgeRock
- Fortinet
- Gigamon
- GitHub
- GitLab
- Golang
- Google Cloud
- Custom GCS Input
- GCP
- GCP Audit logs
- GCP Billing metrics
- GCP Cloud Run metrics
- GCP CloudSQL metrics
- GCP Compute metrics
- GCP Dataproc metrics
- GCP DNS logs
- GCP Firestore metrics
- GCP Firewall logs
- GCP GKE metrics
- GCP Load Balancing metrics
- GCP Metrics Input
- GCP PubSub logs (custom)
- GCP PubSub metrics
- GCP Redis metrics
- GCP Security Command Center
- GCP Storage metrics
- GCP VPC Flow logs
- GCP Vertex AI
- GoFlow2 logs
- Hadoop
- HAProxy
- Hashicorp Vault
- HTTP Endpoint logs (custom)
- IBM MQ
- IIS
- Imperva
- InfluxDb
- Infoblox
- Iptables
- Istio
- Jamf Compliance Reporter
- Jamf Pro
- Jamf Protect
- Jolokia Input
- Journald logs (custom)
- JumpCloud
- Kafka
- Keycloak
- Kubernetes
- LastPass
- Lateral Movement Detection
- Linux Metrics
- Living off the Land Attack Detection
- Logs (custom)
- Lumos
- Lyve Cloud
- Mattermost
- Memcached
- Menlo Security
- Microsoft
- Microsoft 365
- Microsoft Defender for Cloud
- Microsoft Defender for Endpoint
- Microsoft DHCP
- Microsoft DNS Server
- Microsoft Entra ID Entity Analytics
- Microsoft Exchange Online Message Trace
- Microsoft Exchange Server
- Microsoft Graph Activity Logs
- Microsoft M365 Defender
- Microsoft Office 365 Metrics Integration
- Microsoft Sentinel
- Microsoft SQL Server
- Mimecast
- ModSecurity Audit
- MongoDB
- MongoDB Atlas
- MySQL
- Nagios XI
- NATS
- NetFlow Records
- Netskope
- Network Beaconing Identification
- Network Packet Capture
- Nginx
- Okta
- Oracle
- OpenAI
- OpenCanary
- Osquery
- Palo Alto
- pfSense
- PHP-FPM
- PingOne
- PingFederate
- Pleasant Password Server
- PostgreSQL
- Prometheus
- Proofpoint TAP
- Proofpoint On Demand
- Pulse Connect Secure
- Qualys VMDR
- QNAP NAS
- RabbitMQ Logs
- Radware DefensePro Logs
- Rapid7
- Redis
- Rubrik RSC Metrics Integration
- Sailpoint Identity Security Cloud
- Salesforce
- SentinelOne
- ServiceNow
- Slack Logs
- Snort
- Snyk
- SonicWall Firewall
- Sophos
- Spring Boot
- SpyCloud Enterprise Protection
- SQL Input
- Squid Logs
- SRX
- STAN
- Statsd Input
- Sublime Security
- Suricata
- StormShield SNS
- Symantec
- Symantec Endpoint Security
- Sysmon for Linux
- Sysdig
- Syslog Router Integration
- System
- System Audit
- Tanium
- TCP Logs (custom)
- Teleport
- Tenable
- Threat intelligence
- ThreatConnect
- Threat Map
- Thycotic Secret Server
- Tines
- Traefik
- Trellix
- Trend Micro
- TYCHON Agentless
- UDP Logs (custom)
- Universal Profiling
- Vectra Detect
- VMware
- WatchGuard Firebox
- WebSphere Application Server
- Windows
- Wiz
- Zeek
- ZeroFox
- Zero Networks
- ZooKeeper Metrics
- Zoom
- Zscaler
Azure Network Watcher NSG
editAzure Network Watcher NSG
editVersion |
1.3.0 (View all) |
Compatible Kibana version(s) |
8.13.0 or higher |
Supported Serverless project types |
Security |
Subscription level |
Basic |
Level of support |
Elastic |
Network security group (NSG) flow logging is a feature of Azure Network Watcher that allows you to log information about IP traffic flowing through a network security group. Flow logs are the source of truth for all network activity in your cloud environment. Whether you’re in a startup that’s trying to optimize resources or a large enterprise that’s trying to detect intrusion, flow logs can help. You can use them for optimizing network flows, monitoring throughput, verifying compliance, detecting intrusions, and more.
Data streams
editThis integration supports ingestion of logs from Azure Network Watcher NSG, via Azure Blob Storage input.
- Log is used to retrieve NSG Flow data. See more details in the documentation here.
Requirements
editElastic Agent must be installed. For more details and installation instructions, please refer to the Elastic Agent Installation Guide.
Installing and managing an Elastic Agent:
editThere are several options for installing and managing Elastic Agent:
Install a Fleet-managed Elastic Agent (recommended):
editWith this approach, you install Elastic Agent and use Fleet in Kibana to define, configure, and manage your agents in a central location. We recommend using Fleet management because it makes the management and upgrade of your agents considerably easier.
Install Elastic Agent in standalone mode (advanced users):
editWith this approach, you install Elastic Agent and manually configure the agent locally on the system where it’s installed. You are responsible for managing and upgrading the agents. This approach is reserved for advanced users only.
Install Elastic Agent in a containerized environment:
editYou can run Elastic Agent inside a container, either with Fleet Server or standalone. Docker images for all versions of Elastic Agent are available from the Elastic Docker registry, and we provide deployment manifests for running on Kubernetes.
Please note, there are minimum requirements for running Elastic Agent. For more information, refer to the Elastic Agent Minimum Requirements.
Setup
editTo collect data from Azure Network Watcher NSG follow the below steps:
edit- In the Azure portal, go to your storage account.
- Under Security + networking, Click on Access keys. Your account access keys appear, as well as the complete connection string for each key.
- Click on Show keys to show your access keys and connection strings and to enable buttons to copy the values.
- Under key1, find the Key value. Click on the Copy button to copy the account key. Same way you can copy the storage account name shown above keys.
- Go to Containers under Data storage in your storage account to copy the container name.
Enable virtual network flow logs using the steps provided in reference.
Enabling the integration in Elastic:
edit- In Kibana navigate to Management > Integrations.
-
In "Search for integrations" top bar, search for
Azure Network Watcher NSG
. - Select the "Azure Network Watcher NSG" integration from the search results.
- Select "Add Azure Network Watcher NSG" to add the integration.
-
While adding the integration, to collect logs via Azure Blob Storage, keep Collect NSG logs via Azure Blob Storage toggle on and then configure following parameters:
- account name
- containers
- service account key/service account uri
- Save the integration.
Logs Reference
editLog
editThis is the Log
dataset.
Example
An example event for log
looks as following:
{ "@timestamp": "2018-11-13T12:00:35.389Z", "agent": { "ephemeral_id": "b9d6de84-93bd-40d6-9dc8-c06a84e0718e", "id": "7a02b789-2d3c-4e39-a804-6995ecfd6bc0", "name": "docker-fleet-agent", "type": "filebeat", "version": "8.12.0" }, "azure": { "resource": { "group": "FABRIKAMRG", "id": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/FABRIKAMRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/FABRIAKMVM1-NSG", "name": "FABRIAKMVM1-NSG", "provider": "MICROSOFT.NETWORK/NETWORKSECURITYGROUPS" }, "storage": { "blob": { "content_type": "application/json", "name": "testblob" }, "container": { "name": "azure-container1" } }, "subscription_id": "00000000-0000-0000-0000-000000000000" }, "azure_network_watcher_nsg": { "log": { "category": "NetworkSecurityGroupFlowEvent", "operation_name": "NetworkSecurityGroupFlowEvents", "properties": { "flows": [ { "flows": [ { "mac": "00-0D-3A-F8-78-56", "tuples": [ { "destination": { "ip": "10.5.16.4", "port": 443 }, "flow_state": "Begin", "protocol": "UDP", "source": { "ip": "94.102.49.190", "port": 28746 }, "timestamp": "2018-11-13T12:00:02.000Z", "traffic": { "decision": "Denied", "flow": "Inbound" } }, { "destination": { "ip": "10.5.16.4", "port": 59336 }, "flow_state": "Begin", "protocol": "TCP", "source": { "ip": "176.119.4.10", "port": 56509 }, "timestamp": "2018-11-13T12:00:24.000Z", "traffic": { "decision": "Denied", "flow": "Inbound" } }, { "destination": { "ip": "10.5.16.4", "port": 8088 }, "flow_state": "Begin", "protocol": "TCP", "source": { "ip": "167.99.86.8", "port": 48495 }, "timestamp": "2018-11-13T12:00:32.000Z", "traffic": { "decision": "Denied", "flow": "Inbound" } } ] } ], "rule": "DefaultRule_DenyAllInBound" }, { "flows": [ { "mac": "00-0D-3A-F8-78-56", "tuples": [ { "destination": { "ip": "13.67.143.118", "port": 443 }, "flow_state": "Begin", "protocol": "TCP", "source": { "ip": "10.5.16.4", "port": 59831 }, "timestamp": "2018-11-13T11:59:37.000Z", "traffic": { "decision": "Allowed", "flow": "Outbound" } }, { "bytes": { "received": 66, "sent": 66 }, "destination": { "ip": "13.67.143.117", "port": 443 }, "flow_state": "End", "packets": { "received": 1, "sent": 1 }, "protocol": "TCP", "source": { "ip": "10.5.16.4", "port": 59932 }, "timestamp": "2018-11-13T11:59:39.000Z", "traffic": { "decision": "Allowed", "flow": "Outbound" } }, { "bytes": { "received": 14008, "sent": 16978 }, "destination": { "ip": "13.67.143.115", "port": 443 }, "flow_state": "Continuing", "packets": { "received": 24, "sent": 30 }, "protocol": "TCP", "source": { "ip": "10.5.16.4", "port": 44931 }, "timestamp": "2018-11-13T11:59:39.000Z", "traffic": { "decision": "Allowed", "flow": "Outbound" } }, { "bytes": { "received": 7054, "sent": 8489 }, "destination": { "ip": "40.71.12.225", "port": 443 }, "flow_state": "End", "packets": { "received": 12, "sent": 15 }, "protocol": "TCP", "source": { "ip": "10.5.16.4", "port": 59929 }, "timestamp": "2018-11-13T12:00:06.000Z", "traffic": { "decision": "Allowed", "flow": "Outbound" } } ] } ], "rule": "DefaultRule_AllowInternetOutBound" } ], "version": "2" }, "resource_id": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/FABRIKAMRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/FABRIAKMVM1-NSG", "system_id": "a0fca5ce-022c-47b1-9735-89943b42f2fa", "time": "2018-11-13T12:00:35.389Z" } }, "cloud": { "provider": "azure" }, "data_stream": { "dataset": "azure_network_watcher_nsg.log", "namespace": "ep", "type": "logs" }, "destination": { "bytes": [ 66, 7054, 14008 ], "ip": [ "13.67.143.118", "13.67.143.117", "10.5.16.4", "40.71.12.225", "13.67.143.115" ], "packets": [ 1, 12, 24 ], "port": [ 8088, 443, 59336 ] }, "ecs": { "version": "8.11.0" }, "elastic_agent": { "id": "7a02b789-2d3c-4e39-a804-6995ecfd6bc0", "snapshot": false, "version": "8.12.0" }, "event": { "agent_id_status": "verified", "category": [ "network" ], "dataset": "azure_network_watcher_nsg.log", "ingested": "2024-05-03T08:30:09Z", "kind": "event", "type": [ "info" ] }, "input": { "type": "azure-blob-storage" }, "log": { "file": { "path": "http://elastic-package-service-azure-network-watcher-nsg-log-1:10000/devstoreaccount1/azure-container1/testblob" }, "offset": 1 }, "network": { "direction": [ "outbound", "inbound" ], "transport": [ "udp", "tcp" ] }, "related": { "ip": [ "13.67.143.118", "13.67.143.117", "10.5.16.4", "40.71.12.225", "13.67.143.115", "176.119.4.10", "94.102.49.190", "167.99.86.8" ] }, "rule": { "name": [ "DefaultRule_DenyAllInBound", "DefaultRule_AllowInternetOutBound" ] }, "source": { "bytes": [ 66, 8489, 16978 ], "ip": [ "176.119.4.10", "10.5.16.4", "94.102.49.190", "167.99.86.8" ], "mac": [ "00-0D-3A-F8-78-56" ], "packets": [ 1, 15, 30 ], "port": [ 59932, 44931, 59831, 28746, 56509, 59929, 48495 ] }, "tags": [ "forwarded", "azure_network_watcher_nsg-log" ] }
Exported fields
Field | Description | Type |
---|---|---|
@timestamp |
Event timestamp. |
date |
azure.resource.group |
Resource group. |
keyword |
azure.resource.id |
Resource ID. |
keyword |
azure.resource.name |
Name. |
keyword |
azure.resource.provider |
Resource type/namespace. |
keyword |
azure.storage.blob.content_type |
The content type of the Azure Blob Storage blob object. |
keyword |
azure.storage.blob.name |
The name of the Azure Blob Storage blob object. |
keyword |
azure.storage.container.name |
The name of the Azure Blob Storage container. |
keyword |
azure.subscription_id |
Azure subscription ID. |
keyword |
azure_network_watcher_nsg.log.category |
Category of the event. |
keyword |
azure_network_watcher_nsg.log.operation_name |
Always NetworkSecurityGroupFlowEvents. |
keyword |
azure_network_watcher_nsg.log.properties.flows.flows.mac |
MAC address of the network interface on which the flows are listed. |
keyword |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.bytes.received |
Total number of TCP packet bytes sent from destination to source. |
long |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.bytes.sent |
Total number of TCP packet bytes sent from source to destination. |
long |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.destination.ip |
Destination IP address. |
ip |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.destination.port |
Destination port. |
long |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.flow_state |
State of the flow. |
keyword |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.packets.received |
Total number of TCP packets sent from destination to source. |
long |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.packets.sent |
Total number of TCP packets sent from source to destination. |
long |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.protocol |
Protocol of the flow. |
keyword |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.source.ip |
Source IP address. |
ip |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.source.port |
Source port. |
long |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.timestamp |
Time stamp of when the flow occurred in UNIX epoch format. |
date |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.traffic.decision |
Whether traffic was allowed or denied. |
keyword |
azure_network_watcher_nsg.log.properties.flows.flows.tuples.traffic.flow |
Direction of the traffic flow. |
keyword |
azure_network_watcher_nsg.log.properties.flows.rule |
Rule for which the flows are listed. |
keyword |
azure_network_watcher_nsg.log.properties.version |
Version number of the flow log’s event schema. |
keyword |
azure_network_watcher_nsg.log.resource_id |
Resource ID of the network security group. |
keyword |
azure_network_watcher_nsg.log.system_id |
System ID of the network security group. |
keyword |
azure_network_watcher_nsg.log.time |
Time in UTC when the event was logged. |
date |
data_stream.dataset |
Data stream dataset. |
constant_keyword |
data_stream.namespace |
Data stream namespace. |
constant_keyword |
data_stream.type |
Data stream type. |
constant_keyword |
event.dataset |
Event dataset. |
constant_keyword |
event.module |
Event module. |
constant_keyword |
input.type |
Type of Filebeat input. |
keyword |
log.offset |
Log offset. |
long |
Changelog
editChangelog
Version | Details | Kibana version(s) |
---|---|---|
1.3.0 |
Enhancement (View pull request) |
8.13.0 or higher |
1.2.1 |
Enhancement (View pull request) |
8.13.0 or higher |
1.2.0 |
Enhancement (View pull request) |
8.13.0 or higher |
1.1.0 |
Enhancement (View pull request) |
8.13.0 or higher |
1.0.0 |
Enhancement (View pull request) |
8.13.0 or higher |
0.3.0 |
Enhancement (View pull request) |
— |
0.2.1 |
Bug fix (View pull request) |
— |
0.2.0 |
Enhancement (View pull request) |
— |
0.1.0 |
Enhancement (View pull request) |
— |
On this page
- Data streams
- Requirements
- Installing and managing an Elastic Agent:
- Install a Fleet-managed Elastic Agent (recommended):
- Install Elastic Agent in standalone mode (advanced users):
- Install Elastic Agent in a containerized environment:
- Setup
- To collect data from Azure Network Watcher NSG follow the below steps:
- Enabling the integration in Elastic:
- Logs Reference
- Log
- Changelog