elasticsearch/docs/reference/ingest/processors/community-id.asciidoc

98 lines
3.2 KiB
Text

[role="xpack"]
[[community-id-processor]]
=== Community ID processor
++++
<titleabbrev>Community ID</titleabbrev>
++++
Computes the Community ID for network flow data as defined in the
https://github.com/corelight/community-id-spec[Community ID Specification].
You can use a community ID to correlate network events related to a single
flow.
The community ID processor reads network flow data from related
{ecs-ref}[Elastic Common Schema (ECS)] fields by default. If you use the ECS, no
configuration is required.
[[community-id-options]]
.Community ID Options
[options="header"]
|======
| Name | Required | Default | Description
| `source_ip` | no | `source.ip` | Field containing the source IP address.
| `source_port` | no | `source.port` | Field containing the source port.
| `destination_ip` | no | `destination.ip` | Field containing the destination IP address.
| `destination_port` | no | `destination.port` | Field containing the destination port.
| `iana_number` | no | `network.iana_number` | Field containing the IANA number. The following protocol numbers are currently supported: `1` ICMP, `2` IGMP, `6` TCP, `17` UDP, `47` GRE, `58` ICMP IPv6, `88` EIGRP, `89` OSPF, `103` PIM, and `132` SCTP.
| `icmp_type` | no | `icmp.type` | Field containing the ICMP type.
| `icmp_code` | no | `icmp.code` | Field containing the ICMP code.
| `transport` | no | `network.transport` | Field containing the transport protocol.
Used only when the `iana_number` field is not present.
| `target_field` | no | `network.community_id` | Output field for the community ID.
| `seed` | no | `0` | Seed for the community ID hash. Must be between
0 and 65535 (inclusive). The seed can prevent hash collisions between network domains, such as
a staging and production network that use the same addressing scheme.
| `ignore_missing` | no | `true` | If `true` and any required fields are missing,
the processor quietly exits without modifying the document.
include::common-options.asciidoc[]
|======
Here is an example definition of the community ID processor:
[source,js]
--------------------------------------------------
{
"description" : "...",
"processors" : [
{
"community_id": {
}
}
]
}
--------------------------------------------------
// NOTCONSOLE
When the above processor executes on the following document:
[source,js]
--------------------------------------------------
{
"_source": {
"source": {
"ip": "123.124.125.126",
"port": 12345
},
"destination": {
"ip": "55.56.57.58",
"port": 80
},
"network": {
"transport": "TCP"
}
}
}
--------------------------------------------------
// NOTCONSOLE
It produces this result:
[source,js]
--------------------------------------------------
"_source" : {
"destination" : {
"port" : 80,
"ip" : "55.56.57.58"
},
"source" : {
"port" : 12345,
"ip" : "123.124.125.126"
},
"network" : {
"community_id" : "1:9qr9Z1LViXcNwtLVOHZ3CL8MlyM=",
"transport" : "TCP"
}
}
--------------------------------------------------
// NOTCONSOLE