31.5. Network Observability Operator 구성
Flow Collector API 리소스를 업데이트하여 Network Observability Operator 및 관리되는 구성 요소를 구성할 수 있습니다. Flow Collector는 설치 중에 명시적으로 생성됩니다. 이 리소스는 클러스터 전체에서 작동하기 때문에 단일 FlowCollector
만 허용되며 cluster
라는 이름으로 지정해야 합니다.
31.5.1. FlowCollector 리소스 보기
OpenShift Container Platform 웹 콘솔에서 직접 YAML을 보고 편집할 수 있습니다.
절차
-
웹 콘솔에서 Operator
설치된 Operator 로 이동합니다. - NetObserv Operator 의 제공된 API 제목에서 Flow Collector 를 선택합니다.
-
cluster 를 선택한 다음 YAML 탭을 선택합니다. 여기에서
FlowCollector
리소스를 수정하여 Network Observability Operator를 구성할 수 있습니다.
다음 예제는 OpenShift Container Platform Network Observability Operator의 샘플 FlowCollector
리소스를 보여줍니다.
FlowCollector
리소스 샘플
apiVersion: flows.netobserv.io/v1alpha1 kind: FlowCollector metadata: name: cluster spec: namespace: netobserv deploymentModel: DIRECT agent: type: EBPF 1 ebpf: sampling: 50 2 logLevel: info privileged: false resources: requests: memory: 50Mi cpu: 100m limits: memory: 800Mi processor: logLevel: info resources: requests: memory: 100Mi cpu: 100m limits: memory: 800Mi loki: 3 url: 'http://loki-gateway-http.netobserv.svc:8080/api/logs/v1/network' statusUrl: 'https://loki-query-frontend-http.netobserv.svc:3100/' authToken: FORWARD tls: enable: true caCert: type: configmap name: loki-gateway-ca-bundle certFile: service-ca.crt consolePlugin: register: true logLevel: info portNaming: enable: true portNames: "3100": loki quickFilters: 4 - name: Applications filter: src_namespace!: 'openshift-,netobserv' dst_namespace!: 'openshift-,netobserv' default: true - name: Infrastructure filter: src_namespace: 'openshift-,netobserv' dst_namespace: 'openshift-,netobserv' - name: Pods network filter: src_kind: 'Pod' dst_kind: 'Pod' default: true - name: Services network filter: dst_kind: 'Service'
- 1
- 에이전트 사양인
spec.agent.type
은 skopeoPF
여야 합니다. eBPF는 OpenShift Container Platform에서 지원되는 유일한 옵션입니다. - 2
- Sampling 사양인
spec.agent.ebpf.sampling
을 설정하여 리소스를 관리할 수 있습니다. 더 낮은 샘플링 값은 많은 양의 곱셈, 메모리 및 스토리지 리소스를 소비할 수 있습니다. 샘플링 비율 값을 지정하여 이 문제를 완화할 수 있습니다. 값 100은 100마다 1 흐름이 샘플링됨을 의미합니다. 값이 0 또는 1이면 모든 흐름이 캡처됩니다. 값이 낮을수록 반환된 흐름이 증가하고 파생된 지표의 정확도가 높아집니다. 기본적으로 eBPF 샘플링은 50 값으로 설정되므로 50마다 1개의 흐름이 샘플링됩니다. 더 많은 샘플 흐름도 더 많은 스토리지가 필요하다는 것을 의미합니다. 클러스터에서 관리할 수 있는 설정을 결정하려면 기본값으로 시작하고 경험적으로 구체화하는 것이 좋습니다. - 3
- spec.loki의
spec.loki
는 client를 지정합니다. 기본값은 Installing the iPXE Operator 섹션에 언급된 iPXE 설치 경로와 일치합니다. CloudEvent에 대한 다른 설치 방법을 사용한 경우 설치에 적합한 클라이언트 정보를 지정합니다. - 4
spec.quickFilters
사양은 웹 콘솔에 표시되는 필터를 정의합니다.애플리케이션
필터 키인 10.0.0.1_namespace
및dst_namespace
는 부정(!
)이므로애플리케이션
필터는 시작되지 않거나openshift-
또는netobserv
네임스페이스의 대상이 아닌 모든 트래픽을 표시합니다. 자세한 내용은 아래 빠른 필터 구성을 참조하십시오.
31.5.2. Kafka를 사용하여 흐름 수집기 리소스 구성
Kafka를 사용하도록 FlowCollector
리소스를 구성할 수 있습니다. Kafka 인스턴스가 실행 중이어야 하며 해당 인스턴스에서 OpenShift Container Platform Network Observability 전용 Kafka 주제를 생성해야 합니다. 자세한 내용은 AMQ Streams의 Kafka 설명서와 같은 Kafka 설명서를 참조하십시오.
다음 예제에서는 Kafka를 사용하도록 OpenShift Container Platform Network Observability Operator의 FlowCollector
리소스를 수정하는 방법을 보여줍니다.
FlowCollector
리소스의 Kafka 구성 샘플
deploymentModel: KAFKA 1 kafka: address: "kafka-cluster-kafka-bootstrap.netobserv" 2 topic: network-flows 3 tls: enable: false 4
- 1
- Kafka 배포 모델을 활성화하려면
DIRECT
대신spec.deploymentModel
을KAFKA
로 설정합니다. - 2
spec.kafka.address
는 Kafka 부트스트랩 서버 주소를 나타냅니다. 필요한 경우 포트 9093에서 TLS를 사용하기 위해kafka-cluster-kafka-bootstrap.netobserv:9093
과 같은 포트를 지정할 수 있습니다.- 3
spec.kafka.topic
은 Kafka에서 생성된 주제의 이름과 일치해야 합니다.- 4
spec.kafka.tls
는 TLS 또는 mTLS를 사용하여 Kafka와의 모든 통신을 암호화하는 데 사용할 수 있습니다. 활성화된 경우 Kafka CA 인증서를 ConfigMap 또는 Secret으로 사용할 수 있어야 합니다. flowlogs-pipeline 프로세서 구성 요소가 배포된 네임스페이스(default:netobserv
)와 eBPF 에이전트가 배포된 네임스페이스(기본값:netobserv- privileged
).spec.kafka.tls.caCert
를 사용하여 참조해야 합니다. mTLS를 사용하는 경우 이러한 네임스페이스에서 클라이언트 시크릿을 사용할 수 있어야 하며 ( AMQ Streams User Operator를 사용하여 인스턴스의 경우 생성할 수 있음)spec.kafka.tls.userCert
로 참조되어야 합니다.
31.5.3. Flow Collector 리소스 업데이트
OpenShift Container Platform 웹 콘솔에서 YAML을 편집하는 대신 flowcollector
CR(사용자 정의 리소스)에 패치를 적용하여 eBPF 샘플링과 같은 사양을 구성할 수 있습니다.
절차
다음 명령을 실행하여
flowcollector
CR을 패치하고spec.agent.ebpf.sampling
값을 업데이트합니다.$ oc patch flowcollector cluster --type=json -p "[{"op": "replace", "path": "/spec/agent/ebpf/sampling", "value": <new value>}] -n netobserv"
31.5.4. 퀵 필터 구성
FlowCollector
리소스에서 필터를 수정할 수 있습니다. 정확한 일치는 값의 double-quotes를 사용할 수 있습니다. 그렇지 않으면 부분 일치 항목이 텍스트 값에 사용됩니다. 키의 끝에 배치된 bang(!) 문자는 부정을 의미합니다. YAML 수정에 대한 자세한 내용은 샘플 FlowCollector
리소스를 참조하십시오.
"all of" 또는 "any of"라는 필터 일치는 사용자가 쿼리 옵션에서 수정할 수 있는 UI 설정입니다. 이 리소스 구성은 포함되지 않습니다.
다음은 사용 가능한 모든 필터 키 목록입니다.
Universal* | 소스 | 대상 | 설명 |
---|---|---|---|
namespace |
|
| 특정 네임스페이스와 관련된 트래픽을 필터링합니다. |
name |
|
| 특정 Pod, 서비스 또는 노드(호스트 네트워크 트래픽용)와 같은 지정된 리프 리소스 이름과 관련된 트래픽을 필터링합니다. |
kind |
|
| 지정된 리소스 종류와 관련된 트래픽을 필터링합니다. 리소스 종류에는 리프 리소스(Pod, 서비스 또는 노드) 또는 소유자 리소스(Deployment 및 StatefulSet)가 포함됩니다. |
owner_name |
|
| 지정된 리소스 소유자, 즉 워크로드 또는 Pod 세트와 관련된 트래픽을 필터링합니다. 예를 들어 배포 이름, StatefulSet 이름 등을 사용할 수 있습니다. |
resource |
|
|
고유하게 식별하는 표준 이름으로 표시되는 특정 리소스와 관련된 트래픽을 필터링합니다. 정식 표기법은 네임스페이스가 지정된 종류의 |
address |
|
| IP 주소와 관련된 트래픽을 필터링합니다. IPv4 및 IPv6가 지원됩니다. CIDR 범위도 지원됩니다. |
mac |
|
| MAC 주소와 관련된 트래픽을 필터링합니다. |
port |
|
| 특정 포트와 관련된 트래픽을 필터링합니다. |
host_address |
|
| Pod가 실행 중인 호스트 IP 주소와 관련된 트래픽을 필터링합니다. |
프로토콜 | 해당 없음 | 해당 없음 | TCP 또는 UDP와 같은 프로토콜과 관련된 트래픽을 필터링합니다. |
-
소스 또는 대상에 대한 범용 키 필터입니다. 예를 들어, 필터링
name: '
는 일치하는 유형(all 또는 Match any ) 여부에 관계없이my-pod
'my-pod
및 모든 트래픽의 모든 트래픽을 의미합니다.