3.2. 수신자


수신자는 수집기에 데이터를 가져옵니다. 수신자는 푸시 또는 풀 기반일 수 있습니다. 일반적으로 수신자는 지정된 형식으로 데이터를 수락하고 내부 형식으로 변환한 다음 해당 파이프라인에 정의된 프로세서 및 내보내기에 전달합니다. 기본적으로 수신자는 설정되어 있지 않습니다. 하나 이상의 수신자를 구성해야 합니다. 수신자는 하나 이상의 데이터 소스를 지원할 수 있습니다.

현재 OpenTelemetry의 Red Hat 빌드에서 다음 일반 가용성 및 기술 프리뷰 수신자를 사용할 수 있습니다.

3.2.1. OTLP 수신기

OTLP 수신기는 OTLP(OpenTelemetry Protocol)를 사용하여 추적, 메트릭 및 로그를 수집합니다. OTLP 수신기는 OTLP(OpenTelemetry 프로토콜)를 사용하여 추적 및 메트릭을 수집합니다.

활성화된 OTLP Receiver가 활성화된 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317 1
            tls: 2
              ca_file: ca.pem
              cert_file: cert.pem
              key_file: key.pem
              client_ca_file: client.pem 3
              reload_interval: 1h 4
          http:
            endpoint: 0.0.0.0:4318 5
            tls: {} 6

    service:
      pipelines:
        traces:
          receivers: [otlp]
        metrics:
          receivers: [otlp]
# ...

1
OTLP gRPC 끝점입니다. 생략하면 기본값 0.0.0.0:4317 이 사용됩니다.
2
서버 측 TLS 구성입니다. TLS 인증서의 경로를 정의합니다. 생략하면 TLS가 비활성화됩니다.
3
서버가 클라이언트 인증서를 확인하는 TLS 인증서의 경로입니다. 이렇게 하면 TLSConfig 에서 ClientCAClientAuth 의 값이 RequireAndVerifyClientCert 로 설정됩니다. 자세한 내용은 Golang TLS 패키지Config를 참조하십시오.
4
인증서를 다시 로드하는 시간 간격을 지정합니다. 값을 설정하지 않으면 인증서가 다시 로드되지 않습니다. reload_interval 필드는 ns, us (또는 µs), ms, s, m, h와 같은 유효한 시간 단위를 포함하는 문자열을 허용합니다.
5
OTLP HTTP 끝점입니다. 기본값은 0.0.0.0:4318 입니다.
6
서버 측 TLS 구성입니다. 자세한 내용은 grpc 프로토콜 구성 섹션을 참조하십시오.

3.2.2. Jaeger 수신자

Jaeger 수신자는 Jaeger 형식의 추적을 수집합니다.

활성화된 Jaeger 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      jaeger:
        protocols:
          grpc:
            endpoint: 0.0.0.0:14250 1
          thrift_http:
            endpoint: 0.0.0.0:14268 2
          thrift_compact:
            endpoint: 0.0.0.0:6831 3
          thrift_binary:
            endpoint: 0.0.0.0:6832 4
          tls: {} 5

    service:
      pipelines:
        traces:
          receivers: [jaeger]
# ...

1
Jaeger gRPC 끝점입니다. 생략하면 기본값 0.0.0.0:14250 이 사용됩니다.
2
Jaeger Thrift HTTP 끝점입니다. 생략하면 기본값 0.0.0.0:14268 이 사용됩니다.
3
Jaeger Thrift Cryostat 끝점입니다. 생략하면 기본값 0.0.0.0:6831 이 사용됩니다.
4
Jaeger Thrift Binary 끝점입니다. 생략하면 기본값 0.0.0.0:6832 가 사용됩니다.
5
서버 측 TLS 구성입니다. 자세한 내용은 OTLP Receiver 구성 섹션을 참조하십시오.

3.2.3. 호스트 지표 수신자

Host Metrics Receiver는 OTLP 형식으로 지표를 수집합니다.

활성화된 호스트 지표 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

apiVersion: v1
kind: ServiceAccount
metadata:
  name: otel-hostfs-daemonset
  namespace: <namespace>
# ...
---
apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
allowHostDirVolumePlugin: true
allowHostIPC: false
allowHostNetwork: false
allowHostPID: true
allowHostPorts: false
allowPrivilegeEscalation: true
allowPrivilegedContainer: true
allowedCapabilities: null
defaultAddCapabilities:
- SYS_ADMIN
fsGroup:
  type: RunAsAny
groups: []
metadata:
  name: otel-hostmetrics
readOnlyRootFilesystem: true
runAsUser:
  type: RunAsAny
seLinuxContext:
  type: RunAsAny
supplementalGroups:
  type: RunAsAny
users:
- system:serviceaccount:<namespace>:otel-hostfs-daemonset
volumes:
- configMap
- emptyDir
- hostPath
- projected
# ...
---
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: otel
  namespace: <namespace>
spec:
  serviceAccount: otel-hostfs-daemonset
  mode: daemonset
  volumeMounts:
    - mountPath: /hostfs
      name: host
      readOnly: true
  volumes:
    - hostPath:
        path: /
      name: host
  config:
    receivers:
      hostmetrics:
        collection_interval: 10s 1
        initial_delay: 1s 2
        root_path: / 3
        scrapers: 4
          cpu: {}
          memory: {}
          disk: {}
    service:
      pipelines:
        metrics:
          receivers: [hostmetrics]
# ...

1
호스트 지표 컬렉션의 시간 간격을 설정합니다. 생략하면 기본값은 1m 입니다.
2
호스트 지표 컬렉션의 초기 시간 지연을 설정합니다. 생략하면 기본값은 1s 입니다.
3
Host Metrics Receiver가 루트 파일 시스템이 있는 위치를 알 수 있도록 root_path 를 구성합니다. Host Metrics Receiver의 여러 인스턴스를 실행하는 경우 각 인스턴스에 대해 동일한 root_path 값을 설정합니다.
4
활성화된 호스트 지표 스크랩을 나열합니다. 사용 가능한 스크랩은 cpu, disk, load, filesystem, memory, network, paging, processes, process니다.

3.2.4. Kubernetes 오브젝트 수신자

Kubernetes 오브젝트 수신자는 Kubernetes API 서버에서 수집할 오브젝트를 가져오거나 감시합니다. 이 수신자는 주로 Kubernetes 이벤트를 감시하지만 모든 유형의 Kubernetes 오브젝트를 수집할 수 있습니다. 이 수신자는 전체 클러스터에 대한 Telemetry를 수집하므로 이 수신자의 인스턴스 하나만 있으면 모든 데이터를 수집할 수 있습니다.

중요

Kubernetes 오브젝트 수신자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

활성화된 Kubernetes 오브젝트 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

apiVersion: v1
kind: ServiceAccount
metadata:
  name: otel-k8sobj
  namespace: <namespace>
# ...
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: otel-k8sobj
  namespace: <namespace>
rules:
- apiGroups:
  - ""
  resources:
  - events
  - pods
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - "events.k8s.io"
  resources:
  - events
  verbs:
  - watch
  - list
# ...
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: otel-k8sobj
subjects:
  - kind: ServiceAccount
    name: otel-k8sobj
    namespace: <namespace>
roleRef:
  kind: ClusterRole
  name: otel-k8sobj
  apiGroup: rbac.authorization.k8s.io
# ...
---
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: otel-k8s-obj
  namespace: <namespace>
spec:
  serviceAccount: otel-k8sobj
  mode: deployment
  config:
    receivers:
      k8sobjects:
        auth_type: serviceAccount
        objects:
          - name: pods 1
            mode: pull 2
            interval: 30s 3
            label_selector: 4
            field_selector: 5
            namespaces: [<namespace>,...] 6
          - name: events
            mode: watch
    exporters:
      debug:
    service:
      pipelines:
        logs:
          receivers: [k8sobjects]
          exporters: [debug]
# ...

1
이 수신자가 관찰하는 리소스 이름(예: Pod,배포 또는 이벤트 ).
2
이 수신기에서 사용하는 관찰 모드: pull 또는 watch.
3
풀 모드에만 적용됩니다. 오브젝트 가져오기 요청 간격입니다. 생략하면 기본값은 1h 입니다.
4
대상을 정의할 라벨 선택기입니다.
5
대상을 필터링할 필드 선택기입니다.
6
이벤트를 수집할 네임스페이스 목록입니다. 생략하면 기본값은 all 입니다.

3.2.5. kubelet Stats Receiver

Kubelet Stats Receiver는 kubelet의 API 서버에서 노드, Pod, 컨테이너 및 볼륨과 관련된 메트릭을 추출합니다. 그런 다음 추가 분석을 위해 메트릭 처리 파이프라인을 통해 이러한 메트릭을 채널링합니다.

활성화된 Kubelet 통계 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      kubeletstats:
        collection_interval: 20s
        auth_type: "serviceAccount"
        endpoint: "https://${env:K8S_NODE_NAME}:10250"
        insecure_skip_verify: true
    service:
      pipelines:
        metrics:
          receivers: [kubeletstats]
  env:
    - name: K8S_NODE_NAME 1
      valueFrom:
        fieldRef:
          fieldPath: spec.nodeName
# ...

1
API에 인증할 K8S_NODE_NAME 을 설정합니다.

Kubelet Stats Receiver에는 OpenTelemetry 수집기를 실행하는 데 사용되는 서비스 계정에 대한 추가 권한이 필요합니다.

서비스 계정에 필요한 권한

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: otel-collector
rules:
  - apiGroups: ['']
    resources: ['nodes/stats']
    verbs: ['get', 'watch', 'list']
  - apiGroups: [""]
    resources: ["nodes/proxy"] 1
    verbs: ["get"]
# ...

1
extra_metadata_labels 또는 request_utilization 또는 limit_utilization 메트릭을 사용할 때 필요한 권한입니다.

3.2.6. Prometheus 수신자

Prometheus 수신자는 지표 끝점을 스크랩합니다.

중요

Prometheus 수신자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

활성화된 Prometheus 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
        prometheus:
          config:
            scrape_configs: 1
              - job_name: 'my-app'  2
                scrape_interval: 5s 3
                static_configs:
                  - targets: ['my-app.example.svc.cluster.local:8888'] 4
    service:
      pipelines:
        metrics:
          receivers: [prometheus]
# ...

1
Prometheus 형식을 사용하여 구성을 스크랩합니다.
2
Prometheus 작업 이름입니다.
3
메트릭 데이터를 스크랩하는 lnterval입니다. 시간 단위를 허용합니다. 기본값은 1m입니다.
4
메트릭이 노출되는 대상입니다. 이 예제에서는 예제 프로젝트의 my-app 애플리케이션에서 메트릭을 스크랩합니다.

3.2.7. OTLP JSON 파일 수신자

OTLP JSON 파일 수신자는 ProtoJSON 형식의 데이터를 포함하는 파일에서 파이프라인 정보를 추출하고 OpenTelemetry 프로토콜 사양을 준수합니다. 수신자는 생성되거나 처리할 수정된 파일과 같은 변경 사항이 있는지 지정된 디렉터리를 감시합니다.

중요

OTLP JSON 파일 수신자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

활성화된 OTLP JSON File Receiver가 활성화된 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    otlpjsonfile:
      include:
        - "/var/log/*.log" 1
      exclude:
        - "/var/log/test.log" 2
# ...

1
조사할 파일 경로 glob 패턴 목록입니다.
2
무시할 파일 경로 glob 패턴 목록입니다.

3.2.8. Zipkin 수신기

Zipkin Receiver는 Zipkin v1 및 v2 형식의 추적을 수집합니다.

활성화된 Zipkin Receiver를 사용하는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      zipkin:
        endpoint: 0.0.0.0:9411 1
        tls: {} 2
    service:
      pipelines:
        traces:
          receivers: [zipkin]
# ...

1
Zipkin HTTP 끝점입니다. 생략하면 기본값 0.0.0.0:9411 이 사용됩니다.
2
서버 측 TLS 구성입니다. 자세한 내용은 OTLP Receiver 구성 섹션을 참조하십시오.

3.2.9. Kafka 수신자

Kafka 수신자는 OTLP 형식으로 Kafka에서 추적, 메트릭 및 로그를 수신합니다.

중요

Kafka 수신자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

활성화된 Kafka 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      kafka:
        brokers: ["localhost:9092"] 1
        protocol_version: 2.0.0 2
        topic: otlp_spans 3
        auth:
          plain_text: 4
            username: example
            password: example
          tls: 5
            ca_file: ca.pem
            cert_file: cert.pem
            key_file: key.pem
            insecure: false 6
            server_name_override: kafka.example.corp 7
    service:
      pipelines:
        traces:
          receivers: [kafka]
# ...

1
Kafka 브로커 목록입니다. 기본값은 localhost:9092 입니다.
2
Kafka 프로토콜 버전입니다. 예를 들면 2.0.0 입니다. 이 필드는 필수 항목입니다.
3
읽을 Kafka 주제의 이름입니다. 기본값은 otlp_spans 입니다.
4
일반 텍스트 인증 구성입니다. 생략하면 일반 텍스트 인증이 비활성화됩니다.
5
클라이언트 측 TLS 구성입니다. TLS 인증서의 경로를 정의합니다. 생략하면 TLS 인증이 비활성화됩니다.
6
서버의 인증서 체인과 호스트 이름을 확인하지 않습니다. 기본값은 false입니다.
7
ServerName은 가상 호스팅을 지원하기 위해 클라이언트에서 요청한 서버의 이름을 나타냅니다.

3.2.10. Kubernetes 클러스터 수신자

Kubernetes Cluster Receiver는 Kubernetes API 서버에서 클러스터 메트릭 및 엔터티 이벤트를 수집합니다. Kubernetes API를 사용하여 업데이트에 대한 정보를 받습니다. 이 수신자의 인증은 서비스 계정을 통해서만 지원됩니다.

중요

Kubernetes Cluster Receiver는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

활성화된 Kubernetes 클러스터 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      k8s_cluster:
        distribution: openshift
        collection_interval: 10s
    exporters:
      debug: {}
    service:
      pipelines:
        metrics:
          receivers: [k8s_cluster]
          exporters: [debug]
        logs/entity_events:
          receivers: [k8s_cluster]
          exporters: [debug]
# ...

이 수신자에는 구성된 서비스 계정, 클러스터 역할에 대한 RBAC 규칙, RBAC를 서비스 계정에 바인딩하는 클러스터 역할 바인딩이 필요합니다.

ServiceAccount 오브젝트

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: otelcontribcol
  name: otelcontribcol
# ...

ClusterRole 오브젝트에 대한 RBAC 규칙

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: otelcontribcol
  labels:
    app: otelcontribcol
rules:
- apiGroups:
  - quota.openshift.io
  resources:
  - clusterresourcequotas
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - events
  - namespaces
  - namespaces/status
  - nodes
  - nodes/spec
  - pods
  - pods/status
  - replicationcontrollers
  - replicationcontrollers/status
  - resourcequotas
  - services
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - daemonsets
  - deployments
  - replicasets
  - statefulsets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - deployments
  - replicasets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - jobs
  - cronjobs
  verbs:
  - get
  - list
  - watch
- apiGroups:
    - autoscaling
  resources:
    - horizontalpodautoscalers
  verbs:
    - get
    - list
    - watch
# ...

ClusterRoleBinding 오브젝트

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: otelcontribcol
  labels:
    app: otelcontribcol
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: otelcontribcol
subjects:
- kind: ServiceAccount
  name: otelcontribcol
  namespace: default
# ...

3.2.11. OpenCensus Receiver

OpenCensus Receiver는 조정된 코드베이스를 보다 쉽게 마이그레이션할 수 있도록 OpenCensus 프로젝트와 역호환성을 제공합니다. gRPC 또는 HTTP 및 Json을 통해 OpenCensus 형식의 메트릭 및 추적을 수신합니다.

활성화된 OpenCensus Receiver가 활성화된 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  config:
    receivers:
      opencensus:
        endpoint: 0.0.0.0:9411 1
        tls: 2
        cors_allowed_origins: 3
          - https://*.<example>.com
    service:
      pipelines:
        traces:
          receivers: [opencensus]
# ...

1
OpenCensus 엔드포인트입니다. 생략하면 기본값은 0.0.0.0:55678 입니다.
2
서버 측 TLS 구성입니다. 자세한 내용은 OTLP Receiver 구성 섹션을 참조하십시오.
3
HTTP JSON 끝점을 사용하여 선택적으로 이 필드에서 허용되는 CORS 목록을 지정하여 활성화되는 CORS를 구성할 수도 있습니다. * 가 있는 와일드카드는 cors_allowed_origins 에서 허용됩니다. 모든 원본과 일치하려면 * 만 입력합니다.

3.2.12. Filelog Receiver

Filelog Receiver tails 및 구문 분석 파일에서 로그를 구문 분석합니다.

중요

파일 로그 수신자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

OpenTelemetry Collector 사용자 정의 리소스가 텍스트 파일을 유지하는 활성화된 Filelog Receiver

# ...
  config:
    receivers:
      filelog:
        include: [ /simple.log ] 1
        operators: 2
          - type: regex_parser
            regex: '^(?P<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$'
            timestamp:
              parse_from: attributes.time
              layout: '%Y-%m-%d %H:%M:%S'
            severity:
              parse_from: attributes.sev
# ...

1
읽을 파일 경로와 일치하는 파일 와일드카드 패턴 목록입니다.
2
Operator 배열입니다. 각 Operator는 타임스탬프 또는 JSON 구문 분석과 같은 간단한 작업을 수행합니다. 로그를 원하는 형식으로 처리하려면 Operator를 함께 연결합니다.

3.2.13. journald Receiver

Journald Receiver는 systemd 저널의 journald 이벤트를 구문 분석하고 로그로 보냅니다.

중요

Journald Receiver는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

OpenTelemetry Collector 사용자 정의 리소스가 활성화된 Journald Receiver

apiVersion: v1
kind: Namespace
metadata:
  name: otel-journald
  labels:
    security.openshift.io/scc.podSecurityLabelSync: "false"
    pod-security.kubernetes.io/enforce: "privileged"
    pod-security.kubernetes.io/audit: "privileged"
    pod-security.kubernetes.io/warn: "privileged"
# ...
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: privileged-sa
  namespace: otel-journald
# ...
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: otel-journald-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:openshift:scc:privileged
subjects:
- kind: ServiceAccount
  name: privileged-sa
  namespace: otel-journald
# ...
---
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: otel-journald-logs
  namespace: otel-journald
spec:
  mode: daemonset
  serviceAccount: privileged-sa
  securityContext:
    allowPrivilegeEscalation: false
    capabilities:
      drop:
      - CHOWN
      - DAC_OVERRIDE
      - FOWNER
      - FSETID
      - KILL
      - NET_BIND_SERVICE
      - SETGID
      - SETPCAP
      - SETUID
    readOnlyRootFilesystem: true
    seLinuxOptions:
      type: spc_t
    seccompProfile:
      type: RuntimeDefault
  config:
    receivers:
      journald:
        files: /var/log/journal/*/*
        priority: info 1
        units: 2
          - kubelet
          - crio
          - init.scope
          - dnsmasq
        all: true 3
        retry_on_failure:
          enabled: true 4
          initial_interval: 1s 5
          max_interval: 30s 6
          max_elapsed_time: 5m 7
    processors:
    exporters:
      debug: {}
    service:
      pipelines:
        logs:
          receivers: [journald]
          exporters: [debug]
  volumeMounts:
  - name: journal-logs
    mountPath: /var/log/journal/
    readOnly: true
  volumes:
  - name: journal-logs
    hostPath:
      path: /var/log/journal
  tolerations:
  - key: node-role.kubernetes.io/master
    operator: Exists
    effect: NoSchedule
# ...

1
메시지 우선순위 또는 우선 순위 범위에 따라 출력을 필터링합니다. 기본값은 info 입니다.
2
항목을 읽을 단위를 나열합니다. 비어있는 경우 모든 유닛에서 항목을 읽습니다.
3
인쇄할 수 없는 문자가 있는 매우 긴 로그와 로그를 포함합니다. 기본값은 false입니다.
4
true 로 설정하면 수신자가 파일 읽기를 일시 중지하고 다운스트림 구성 요소에서 오류가 발생하면 현재 로그 일괄 처리를 다시 보냅니다. 기본값은 false입니다.
5
재시도하기 전에 첫 번째 실패 후 대기하는 시간 간격입니다. 기본값은 1s 입니다. 단위는 ms,s,m,h 입니다.
6
재시도 백오프 간격의 상한입니다. 이 값에 도달하면 연속 재시도 시도 사이의 시간 간격은 이 값에서 일정하게 유지됩니다. 기본값은 30s입니다. 지원되는 단위는 ms,s,m,h 입니다.
7
다운스트림 소비자에 로그 일괄 처리를 전송하기 위한 재시도 시도를 포함한 최대 시간 간격입니다. 이 값에 도달하면 데이터가 삭제됩니다. set 값이 0 이면 재시도가 중지되지 않습니다. 기본값은 5m 입니다. 지원되는 단위는 ms,s,m,h 입니다.

3.2.14. Kubernetes 이벤트 수신자

Kubernetes 이벤트 수신자는 Kubernetes API 서버에서 이벤트를 수집합니다. 수집된 이벤트는 로그로 변환됩니다.

중요

Kubernetes 이벤트 수신자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

Kubernetes Events Receiver에 필요한 OpenShift Container Platform 권한

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: otel-collector
  labels:
    app: otel-collector
rules:
- apiGroups:
  - ""
  resources:
  - events
  - namespaces
  - namespaces/status
  - nodes
  - nodes/spec
  - pods
  - pods/status
  - replicationcontrollers
  - replicationcontrollers/status
  - resourcequotas
  - services
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - daemonsets
  - deployments
  - replicasets
  - statefulsets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - deployments
  - replicasets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - jobs
  - cronjobs
  verbs:
  - get
  - list
  - watch
- apiGroups:
    - autoscaling
  resources:
    - horizontalpodautoscalers
  verbs:
    - get
    - list
    - watch
# ...

활성화된 Kubernetes 이벤트 수신자가 있는 OpenTelemetry 수집기 사용자 정의 리소스

# ...
  serviceAccount: otel-collector 1
  config:
    receivers:
      k8s_events:
        namespaces: [project1, project2] 2
    service:
      pipelines:
        logs:
          receivers: [k8s_events]
# ...

1
필요한 ClusterRole otel-collector RBAC가 있는 수집기의 서비스 계정입니다.
2
이벤트를 수집할 네임스페이스 목록입니다. 기본값은 비어 있습니다. 즉, 모든 네임스페이스가 수집됩니다.

3.2.15. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.