3장. 수집기 구성
3.1. 수집기 구성
Red Hat build of OpenTelemetry Operator는 OpenTelemetry 리소스의 Red Hat 빌드를 생성하고 배포할 때 사용할 아키텍처 및 구성 설정을 정의하는 CRD(사용자 정의 리소스 정의) 파일을 사용합니다. 기본 구성을 설치하거나 파일을 수정할 수 있습니다.
3.1.1. OpenTelemetry 수집기 구성 옵션
OpenTelemetry 수집기는 Telemetry 데이터에 액세스하는 5가지 유형의 구성 요소로 구성됩니다.
- 수신자
- 프로세서
- 내보내기
- 커넥터
- 확장
사용자 정의 리소스 YAML 파일에서 구성 요소의 여러 인스턴스를 정의할 수 있습니다. 구성하는 경우 YAML 파일의 spec.config.service
섹션에 정의된 파이프라인을 통해 이러한 구성 요소를 활성화해야 합니다. 필요한 구성 요소만 활성화하는 것이 좋습니다.
OpenTelemetry Collector 사용자 정의 리소스 파일의 예
apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: cluster-collector namespace: tracing-system spec: mode: deployment observability: metrics: enableMetrics: true config: receivers: otlp: protocols: grpc: {} http: {} processors: {} exporters: otlp: endpoint: otel-collector-headless.tracing-system.svc:4317 tls: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" prometheus: endpoint: 0.0.0.0:8889 resource_to_telemetry_conversion: enabled: true # by default resource attributes are dropped service: pipelines: traces: receivers: [otlp] processors: [] exporters: [otlp] metrics: receivers: [otlp] processors: [] exporters: [prometheus]
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
name: cluster-collector
namespace: tracing-system
spec:
mode: deployment
observability:
metrics:
enableMetrics: true
config:
receivers:
otlp:
protocols:
grpc: {}
http: {}
processors: {}
exporters:
otlp:
endpoint: otel-collector-headless.tracing-system.svc:4317
tls:
ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
prometheus:
endpoint: 0.0.0.0:8889
resource_to_telemetry_conversion:
enabled: true # by default resource attributes are dropped
service:
pipelines:
traces:
receivers: [otlp]
processors: []
exporters: [otlp]
metrics:
receivers: [otlp]
processors: []
exporters: [prometheus]
- 1
- 구성 요소가 구성되었지만
service
섹션에 정의되지 않은 경우 구성 요소가 활성화되지 않습니다.
매개변수 | 설명 | 값 | 기본 |
---|---|---|---|
receivers:
| 수신자는 데이터가 수집기로 들어오는 방법입니다. 기본적으로 수신자는 설정되어 있지 않습니다. 구성이 유효한 것으로 간주되려면 하나 이상의 사용 가능한 수신자가 있어야 합니다. 파이프라인에 추가되면 수신자가 활성화됩니다. |
| 없음 |
processors:
| 프로세서는 내보낸 데이터를 통해 실행됩니다. 기본적으로 프로세서는 사용할 수 없습니다. |
| 없음 |
exporters:
| 내보내기는 하나 이상의 백엔드 또는 대상에 데이터를 보냅니다. 기본적으로 내보내기는 구성되지 않습니다. 구성이 유효한 것으로 간주되려면 하나 이상의 활성화된 내보내기가 있어야 합니다. 파이프라인에 내보내기를 추가하여 사용할 수 있습니다. 내보내기는 기본 설정과 함께 사용할 수 있지만 대상 및 보안 설정을 지정하려면 많은 구성이 필요합니다. |
| 없음 |
connectors:
| Connectors는 데이터를 end-of-pipeline 내보내기 도구로 사용하고 데이터를 초기-op-pipeline 수신자로 내보내 파이프라인 쌍을 결합합니다. 커넥터를 사용하여 소비된 데이터를 요약, 복제 또는 라우팅할 수 있습니다. |
| 없음 |
extensions:
| Telemetry 데이터를 처리하지 않는 작업의 선택적 구성 요소입니다. |
| 없음 |
service: pipelines:
|
구성 요소는 | ||
service: pipelines: traces: receivers:
|
| 없음 | |
service: pipelines: traces: processors:
|
| 없음 | |
service: pipelines: traces: exporters:
|
| 없음 | |
service: pipelines: metrics: receivers:
|
| 없음 | |
service: pipelines: metrics: processors:
|
| 없음 | |
service: pipelines: metrics: exporters:
|
| 없음 |
3.1.2. 필요한 RBAC 리소스 자동 생성
일부 수집기 구성 요소에는 RBAC 리소스를 구성해야 합니다.
프로세스
OpenTelemetry Operator의 Red Hat 빌드가 자동으로 생성할 수 있도록
opentelemetry-operator-controller-manage
서비스 계정에 다음 권한을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: generate-processors-rbac rules: - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles verbs: - create - delete - get - list - patch - update - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: generate-processors-rbac roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: generate-processors-rbac subjects: - kind: ServiceAccount name: opentelemetry-operator-controller-manager namespace: openshift-opentelemetry-operator
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: generate-processors-rbac rules: - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles verbs: - create - delete - get - list - patch - update - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: generate-processors-rbac roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: generate-processors-rbac subjects: - kind: ServiceAccount name: opentelemetry-operator-controller-manager namespace: openshift-opentelemetry-operator