|
| 1 | +// Module included in the following assemblies: |
| 2 | +// |
| 3 | +// network_observability/observing-network-traffic.adoc |
| 4 | + |
| 5 | +:_content-type: PROCEDURE |
| 6 | +[id="network-observability-working-with-conversations_{context}"] |
| 7 | += Working with conversation tracking |
| 8 | +As an administrator, you can you can group network flows that are part of the same conversation. A conversation is defined as a grouping of peers that are identified by their IP addresses, ports, and protocols, resulting in an unique *Conversation Id*. You can query conversation events in the web console. These events are represented in the web console as follows: |
| 9 | + |
| 10 | +** *Conversation start*: This event happens when a connection is starting or TCP flag intercepted |
| 11 | +** *Conversation tick*: This event happens at each specified interval defined in the `FlowCollector` `spec.processor.conversationHeartbeatInterval` parameter while the connection is active. |
| 12 | +** *Conversation end*: This event happens when the `FlowCollector` `spec.processor.conversationEndTimeout` parameter is reached or the TCP flag is intercepted. |
| 13 | +** *Flow*: This is the network traffic flow that occurs within the specified interval. |
| 14 | + |
| 15 | + |
| 16 | +.Procedure |
| 17 | +. In the web console, navigate to *Operators* -> *Installed Operators*. |
| 18 | +. Under the *Provided APIs* heading for the *NetObserv Operator*, select *Flow Collector*. |
| 19 | +. Select *cluster* then select the *YAML* tab. |
| 20 | +. Configure the `FlowCollector` custom resource so that `spec.processor.logTypes`, `conversationEndTimeout`, and `conversationHeartbeatInterval` parameters are set according to your observation needs. A sample configuration is as follows: |
| 21 | ++ |
| 22 | +[id="network-observability-flowcollector-configuring-conversations_{context}"] |
| 23 | +.Configure `FlowCollector` for conversation tracking |
| 24 | +[source, yaml] |
| 25 | +---- |
| 26 | +apiVersion: flows.netobserv.io/v1alpha1 |
| 27 | +kind: FlowCollector |
| 28 | +metadata: |
| 29 | + name: cluster |
| 30 | +spec: |
| 31 | + processor: |
| 32 | + conversationEndTimeout: 10s <1> |
| 33 | + logTypes: FLOWS <2> |
| 34 | + conversationHeartbeatInterval: 30s <3> |
| 35 | +---- |
| 36 | +<1> The *Conversation end* event represents the point when the `conversationEndTimeout` is reached or the TCP flag is intercepted. |
| 37 | +<2> When `logTypes` is set to `FLOWS`, only the *Flow* event is exported. If you set the value to `ALL`, both conversation and flow events are exported and visible in the *Network Traffic* page. To focus only on conversation events, you can specify `CONVERSATIONS` which exports the *Conversation start*, *Conversation tick* and *Conversation end* events; or `ENDED_CONVERSATIONS` exports only the *Conversation end* events. Storage requirements are highest for `ALL` and lowest for `ENDED_CONVERSATIONS`. |
| 38 | +<3> The *Conversation tick* event represents each specified interval defined in the `FlowCollector` `conversationHeartbeatInterval` parameter while the network connection is active. |
| 39 | ++ |
| 40 | +[NOTE] |
| 41 | +==== |
| 42 | +If you update the `logType` option, the flows from the previous selection do not clear from the console plugin. For example, if you initially set `logType` to `CONVERSATIONS` for a span of time until 10 AM and then move to `ENDED_CONVERSATIONS`, the console plugin shows all conversation events before 10 AM and only ended conversations after 10 AM. |
| 43 | +==== |
| 44 | +. Refresh the *Network Traffic* page on the *Traffic flows* tab. Notice there are two new columns, *Event/Type* and *Conversation Id*. All the *Event/Type* fields are `Flow` when *Flow* is the selected query option. |
| 45 | +. Select *Query Options* and choose the *Log Type*, *Conversation*. Now the *Event/Type* shows all of the desired conversation events. |
| 46 | +. Next you can filter on a specific conversation ID or switch between the *Conversation* and *Flow* log type options from the side panel. |
| 47 | + |
0 commit comments