Skip to content

Commit f8f4cbb

Browse files
authored
Merge pull request #112929 from gwynnemonahan/no-1-12-integration
[NETOBSERV] 1.12 release integration branch
2 parents 9cf8721 + b9888eb commit f8f4cbb

30 files changed

Lines changed: 1178 additions & 180 deletions

File tree

_topic_maps/_topic_map.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3331,6 +3331,8 @@ Topics:
33313331
File: network-observability-overview
33323332
- Name: Installing the Network Observability Operator
33333333
File: installing-operators
3334+
- Name: Scaling network flow collection with Kafka
3335+
File: network-observability-kafka-operator-scaling-network-flow-collection
33343336
- Name: Understanding Network Observability Operator
33353337
File: understanding-network-observability-operator
33363338
- Name: Configuring the Network Observability Operator
@@ -3345,6 +3347,8 @@ Topics:
33453347
File: observing-network-traffic
33463348
- Name: Network observability health rules
33473349
File: network-observability-health-rules
3350+
- Name: Monitoring TLS traffic
3351+
File: network-observability-monitoring-tls-traffic
33483352
- Name: Using metrics with dashboards and alerts
33493353
File: metrics-alerts-dashboards
33503354
- Name: Monitoring the Network Observability Operator
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * observability/network_observability/network-observability-monitoring-tls-traffic.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="network-observability-analyze-tls-traffic_{context}"]
7+
= Analyze Transport Layer Security traffic data
8+
9+
[role="_abstract"]
10+
View and filter Transport Layer Security (TLS) metadata to identify deprecated configurations and verify encryption compliance in the cluster.
11+
12+
.Prerequisites
13+
14+
* The Network Observability Operator is installed.
15+
* TLS tracking is enabled in the `FlowCollector` custom resource (CR).
16+
* Access to the {product-title} web console.
17+
18+
.Procedure
19+
20+
. Navigate to *Observe* -> *Network Traffic* in the {product-title} web console and click the *Traffic flows* tab.
21+
+
22+
[NOTE]
23+
====
24+
The *TLS Version* column is enabled by default. If the default TLS version column is not visible after enabling TLS tracking, click *Restore default columns* in *Manage columns* to refresh the table.
25+
====
26+
27+
. Add TLS-specific columns to the traffic table:
28+
.. Click *Manage columns*.
29+
.. Select the *TLS Cipher Suite*, *TLS Group*, and *TLS Types* checkboxes.
30+
.. Click *Save*.
31+
32+
. Filter traffic by message type to view complete TLS metadata:
33+
.. In the filter bar, select *TLS Types* and choose *ServerHello* from the dropdown menu.
34+
+
35+
`ServerHello` messages contain negotiated TLS metadata such as cipher suite and cryptographic group information.
36+
37+
. Filter traffic by TLS version to identify deprecated configurations:
38+
.. In the filter bar, select *TLS Version*.
39+
.. Select the versions you want to review:
40+
* *1.0*: Deprecated
41+
* *1.1*: Deprecated
42+
* *1.2*: Legacy
43+
* *1.3*: Current standard
44+
+
45+
To identify all deprecated connections, filter for TLS versions 1.0 and 1.1.
46+
47+
. Analyze TLS metrics in the overview panel:
48+
.. Click the *Overview* tab.
49+
.. Review the default TLS panels, which include *TLS usage (network flows per second)* and *TLS per version (network flows per second)*.
50+
.. Optional: To view additional TLS metrics, click *Manage panels* to select and display additional panels, such as *TLS per group (network flows per second)* or *TLS per cipher suite (network flows per second)*.
51+
52+
. Identify secure connections in the *Topology* view:
53+
.. Click the *Topology* tab.
54+
+
55+
Connections secured with TLS are marked with a lock icon. The color of the lock icon indicates the security level:
56+
+
57+
* *Red*: Deprecated TLS versions (1.0 or 1.1)
58+
* *Yellow*: Legacy configurations (TLS 1.2)
59+
* *Green*: Secure connections (TLS 1.3)
60+
* *Blue*: Post-Quantum Cryptography (PQC) compliant
61+
+
62+
Select a connection node to view its specific TLS version and cipher suite details.
63+
64+
. View TLS metrics in the Network Observability dashboard:
65+
.. Navigate to *Observe* -> *Dashboards*.
66+
.. Search for *NetObserv* and review the available metrics:
67+
* *TLS Traffic*: Displays overall TLS traffic metrics.
68+
* *Flows rate per TLS version*: Displays traffic trends by TLS version over time.
69+
* *Flows rate per TLS group*: Displays traffic by TLS group over time.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * observability/network_observability/network-observability-kafka-operator-scaling-network-flow-collection.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="network-observability-configuring-kafka-compression_{context}"]
7+
= Configure Kafka compression
8+
9+
[role="_abstract"]
10+
Configure the compression algorithm for network flow records exported to Kafka to optimize bandwidth and storage. This helps manage the data footprint of high-volume network telemetry.
11+
12+
.Prerequisites
13+
14+
* The Network Observability Operator is installed.
15+
* The `FlowCollector` custom resource (CR) is configured to export data to a Kafka topic.
16+
* You have `cluster-admin` permissions to edit the `FlowCollector` CR.
17+
18+
.Procedure
19+
20+
. Open the `FlowCollector` custom resource for editing by running the following command:
21+
+
22+
[source,terminal]
23+
----
24+
$ oc edit flowcollector cluster
25+
----
26+
27+
. Navigate to the `spec.kafka` section and add the `compression` parameter:
28+
+
29+
[source,yaml]
30+
----
31+
apiVersion: flows.netobserv.io/v1beta2
32+
kind: FlowCollector
33+
metadata:
34+
name: cluster
35+
spec:
36+
deploymentModel: Kafka
37+
kafka:
38+
address: "kafka-cluster-kafka-bootstrap.netobserv:9093"
39+
topic: "network-flows"
40+
compression: "lz4"
41+
----
42+
+
43+
where:
44+
+
45+
`spec.kafka.compression`:: Specifies the compression algorithm. Accepted values: `gzip`, `snappy`, `lz4`, `zstd`, `none`. Default is `none`.
46+
47+
. Save and apply the changes.
48+
49+
.Verification
50+
51+
. Confirm that the eBPF agent pods are running in the cluster by running the following command:
52+
+
53+
[source,terminal]
54+
----
55+
$ oc get pods -A -l app=netobserv-ebpf-agent
56+
----
57+
58+
. Verify that Kafka compression is active by running the following command:
59+
+
60+
[source,terminal]
61+
----
62+
$ oc logs -n <namespace> <pod_name> | grep "KafkaCompression"
63+
----
64+
+
65+
The output shows the compression configuration attribute in the eBPF agent pod logs.

modules/network-observability-custom-health-rule-configuration.adoc

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,27 @@
33
// * network_observability/network-observability-alerts.adoc
44

55
:_mod-docs-content-type: PROCEDURE
6-
[id="network-observability-custom-health-rule-configuration_{context}"]
7-
= Custom health rule configuration
6+
[id="network-observability-configuring-custom-health-rules_{context}"]
7+
= Configuring custom health rules
88

99
[role="_abstract"]
10-
Use the Prometheus Query Language (`PromQL`) to define a custom `AlertingRule` resource to trigger alerts based on specific network metrics (e.g., traffic surges).
10+
Create custom health rules by using Prometheus Query Language (PromQL) to define an `AlertingRule` resource. These rules trigger alerts based on specific network metrics, such as traffic surges.
1111

1212
.Prerequisites
1313

14-
* Familiarity with `PromQL`.
15-
* You have installed {product-title} 4.16 or later.
16-
* You have access to the cluster as a user with the `cluster-admin` role.
17-
* You have installed the Network Observability Operator.
14+
* Access to the cluster with `cluster-admin` privileges.
15+
* The Network Observability Operator is installed.
16+
* {product-title} 4.16 or later is installed.
17+
* Familiarity with PromQL.
18+
19+
[IMPORTANT]
20+
====
21+
Custom `PrometheusRule` resources are not owned by the `FlowCollector` resource. Custom rules created in the `netobserv` namespace might be deleted if the Network Observability Operator is uninstalled. To prevent data loss, create custom rules in a different namespace, such as `openshift-monitoring`, and maintain a backup in version control.
22+
====
1823

1924
.Procedure
2025

21-
. Create a YAML file named `custom-alert.yaml` that contains your `AlertingRule` resource.
26+
. Define an `AlertingRule` resource in a YAML file, for example, `custom-alert.yaml`.
2227
. Apply the custom alert rule by running the following command:
2328
+
2429
[source,terminal]
@@ -28,13 +33,13 @@ $ oc apply -f custom-alert.yaml
2833

2934
.Verification
3035

31-
. Verify that the `PrometheusRule` resource was created in the `netobserv` namespace by running the following command:
36+
. Confirm the `PrometheusRule` resource was created in the target namespace by running the following command:
3237
+
3338
[source,terminal]
3439
----
35-
$ oc get prometheusrules -n netobserv -oyaml
40+
$ oc get prometheusrules -n <namespace> -o yaml
3641
----
37-
+
38-
The output should include the `netobserv-alerts` rule you just created, confirming that the resource was generated correctly.
3942

40-
. Confirm the rule is active by checking the *Network Health* dashboard in the {product-title} web console → *Observe*.
43+
. Confirm the rule is active in the {product-title} web console:
44+
.. Navigate to *Observe**Alerting* to see the firing status.
45+
.. Navigate to *Observe**Network Health* to view the dashboard integration.

modules/network-observability-disable-predefined-rules.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
:_mod-docs-content-type: REFERENCE
66
[id="network-observability-disable-predefined-rules_{context}"]
7-
= Disable predefined rules
7+
= Disabling default rules
88

99
[role="_abstract"]
1010
Rule templates can be disabled in the `spec.processor.metrics.disableAlerts` field of the `FlowCollector` custom resource (CR). This setting accepts a list of rule template names. For a list of alert template names, see "List of default rules".
1111

12-
If a template is disabled and overridden in the `spec.processor.metrics.healthRules` field, the disable setting takes precedence and the alert rule is not created.
12+
If a rule template is included in the `disableAlerts` list, it is not created, even if a custom override exists in the `spec.processor.metrics.healthRules` field. The `disableAlerts` configuration takes precedence over all other health rule settings.
13+
14+
For a list of alert template names, see "List of default rules".
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * observability/network_observability/network-observability-monitoring-tls-traffic.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="network-observability-enable-tls-tracking_{context}"]
7+
= Enable Transport Layer Security tracking
8+
9+
[role="_abstract"]
10+
Enable Transport Layer Security (TLS) tracking to monitor encryption protocols and identify security risks in the cluster.
11+
12+
[NOTE]
13+
====
14+
TLS fields only appear in flows for connections that perform a TLS handshake after the feature is enabled.
15+
====
16+
17+
.Prerequisites
18+
19+
* The Network Observability Operator is installed.
20+
* The `FlowCollector` custom resource (CR) is configured with `spec.agent.type: eBPF`.
21+
* Access to the cluster with `cluster-admin` privileges.
22+
23+
.Procedure
24+
25+
. Edit the `FlowCollector` CR by running the following command:
26+
+
27+
[source,terminal]
28+
----
29+
$ oc edit flowcollector cluster
30+
----
31+
32+
. Add `TLSTracking` to the `spec.agent.ebpf.features` list:
33+
+
34+
[source,yaml]
35+
----
36+
apiVersion: flows.netobserv.io/v1beta2
37+
kind: FlowCollector
38+
metadata:
39+
name: cluster
40+
spec:
41+
agent:
42+
type: eBPF
43+
ebpf:
44+
features:
45+
- TLSTracking
46+
# ...
47+
----
48+
+
49+
where:
50+
+
51+
`spec.agent.ebpf.features`:: Specifies the list of eBPF agent features to enable. Add `TLSTracking` to this array to enable TLS metadata capture from handshake messages.
52+
53+
. Save and exit your editor.
54+
55+
.Verification
56+
57+
. Confirm that the eBPF agent pods have restarted by running the following command:
58+
+
59+
[source,terminal]
60+
----
61+
$ oc get pods -n netobserv-privileged
62+
----
63+
+
64+
.Example output
65+
[source,terminal]
66+
----
67+
NAME READY STATUS RESTARTS AGE
68+
netobserv-ebpf-agent-abc12 1/1 Running 0 2m
69+
----
70+
71+
. Verify the TLS tracking feature is active by running the following command:
72+
+
73+
[source,terminal]
74+
----
75+
$ oc logs -n netobserv-privileged ds/netobserv-ebpf-agent | grep "EnableTLSTracking"
76+
----
77+
+
78+
.Example output
79+
[source,terminal]
80+
----
81+
EnableTLSTracking:true
82+
----
83+
+
84+
The output confirms that the TLS tracking feature has been initialized in the eBPF agent.

0 commit comments

Comments
 (0)