2.3. 입력 수신자 구성
Red Hat OpenShift Logging Operator는 구성된 각 입력 수신자에 대한 서비스를 배포하여 클라이언트가 컬렉터에 쓸 수 있도록 합니다. 이 서비스는 입력 수신자에 지정된 포트를 노출합니다. 로그 전달자 ClusterLogForwarder CR 배포의 경우 서비스 이름은 < clusterlogforwarder_resource_name>-<input_name > 형식으로 되어 있습니다.
2.3.1. 감사 로그를 HTTP 서버로 수신하도록 수집기 구성 링크 복사링크가 클립보드에 복사되었습니다!
ClusterLogForwarder CR(사용자 정의 리소스)에서 http 를 수신자 입력으로 지정하여 HTTP 연결만 수신 대기하도록 로그 수집기를 구성할 수 있습니다.
HTTP 수신자 입력은 다음 시나리오에서만 지원됩니다.
- 로깅은 호스팅된 컨트롤 플레인에 설치됩니다.
Red Hat OpenShift Logging Operator와 동일한 클러스터에 설치된 Red Hat 지원 제품에서 로그가 시작된 경우 예를 들면 다음과 같습니다.
- OpenShift Virtualization
사전 요구 사항
- 관리자 권한이 있습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. - Red Hat OpenShift Logging Operator가 설치되어 있습니다.
프로세스
http수신자 입력 구성을 추가하도록ClusterLogForwarderCR을 수정합니다.ClusterLogForwarderCR의 예apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: <clusterlogforwarder_name>1 namespace: <namespace> # ... spec: serviceAccount: name: <service_account_name> inputs: - name: http-receiver2 type: receiver receiver: type: http3 port: 84434 http: format: kubeAPIAudit5 outputs: - name: <output_name> type: http http: url: <url> pipelines:6 - name: http-pipeline inputRefs: - http-receiver outputRefs: - <output_name> # ...다음 명령을 실행하여
ClusterLogForwarderCR에 변경 사항을 적용합니다.$ oc apply -f <filename>.yaml다음 명령을 실행하여 수집기가 <
clusterlogforwarder_resource_name>-<input_name> 형식에 이름이 있는 서비스에서 수신 대기 중인지 확인합니다.$ oc get svc출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 3m6s collector-http-receiver ClusterIP 172.30.205.160 <none> 8443/TCP 3m6s이 예제에서 서비스 이름은
collector-http-receiver입니다.
검증
다음 명령을 실행하여 CA(인증 기관) 인증서 파일을 추출합니다.
$ oc extract cm/openshift-service-ca.crt -n <namespace>참고컬렉터가 변경 사항을 실행하는 클러스터의 CA가 변경되는 경우 CA 인증서 파일을 다시 추출해야 합니다.
예를 들어 다음 명령을 실행하여 로그를 보내
curl명령을 사용합니다.$ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<message>"}'<openshift_service_ca.crt>를 추출된 CA 인증서 파일로 바꿉니다.
2.3.2. 연결을 syslog 서버로 수신 대기하도록 수집기 구성 링크 복사링크가 클립보드에 복사되었습니다!
ClusterLogForwarder 사용자 정의 리소스(CR)에서 syslog 를 수신자 입력으로 지정하여 저널 형식 인프라 로그를 수집하도록 로그 수집기를 구성할 수 있습니다.
syslog 수신자 입력은 다음 시나리오에서만 지원됩니다.
- 로깅은 호스팅된 컨트롤 플레인에 설치됩니다.
Red Hat OpenShift Logging Operator와 동일한 클러스터에 설치된 Red Hat 지원 제품에서 로그가 시작된 경우 예를 들면 다음과 같습니다.
- Red Hat OpenStack Services on OpenShift(RHOSO)
- OpenShift Virtualization
사전 요구 사항
- 관리자 권한이 있습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. - Red Hat OpenShift Logging Operator가 설치되어 있습니다.
프로세스
다음 명령을 실행하여
collect-infrastructure-logs클러스터 역할을 서비스 계정에 부여합니다.바인딩 명령 예
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollectorClusterLogForwarderCR을 수정하여syslog수신자 입력 구성을 추가합니다.ClusterLogForwarderCR의 예apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: <clusterlogforwarder_name>1 namespace: <namespace> # ... spec: serviceAccount: name: <service_account_name>2 inputs: - name: syslog-receiver3 type: receiver receiver: type: syslog4 port: 105145 outputs: - name: <output_name> lokiStack: authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging tls:6 ca: key: service-ca.crt configMapName: openshift-service-ca.crt type: lokiStack # ... pipelines:7 - name: syslog-pipeline inputRefs: - syslog-receiver outputRefs: - <output_name> # ...- 1 2
- 이전 단계에서
collect-infrastructure-logs권한이 부여된 서비스 계정을 사용합니다. - 3
- 입력 수신자의 이름을 지정합니다.
- 4
- 입력 수신자 유형을
syslog로 지정합니다. - 5
- 선택 사항: 입력 수신자가 수신 대기하는 포트를 지정합니다.
1024~65535 사이의 값이어야합니다. - 6
- TLS 구성이 설정되지 않은 경우 기본 인증서가 사용됩니다. 자세한 내용은
oc explain clusterlogforwarders.spec.inputs.receiver.tls명령을 실행합니다. - 7
- 입력 수신자에 대한 파이프라인을 구성합니다.
다음 명령을 실행하여
ClusterLogForwarderCR에 변경 사항을 적용합니다.$ oc apply -f <filename>.yaml다음 명령을 실행하여 수집기가 <
clusterlogforwarder_resource_name>-<input_name> 형식에 이름이 있는 서비스에서 수신 대기 중인지 확인합니다.$ oc get svc출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 33m collector-syslog-receiver ClusterIP 172.30.216.142 <none> 10514/TCP 2m20s이 예제 출력에서 서비스 이름은
collector-syslog-receiver입니다.
검증
다음 명령을 실행하여 CA(인증 기관) 인증서 파일을 추출합니다.
$ oc extract cm/openshift-service-ca.crt -n <namespace>참고컬렉터가 변경 사항을 실행하는 클러스터의 CA가 변경되는 경우 CA 인증서 파일을 다시 추출해야 합니다.
예를 들어 다음 명령을 실행하여 로그를 보내
curl명령을 사용합니다.$ curl --cacert <openshift_service_ca.crt> collector-syslog-receiver.<namespace>.svc:10514 “test message”<openshift_service_ca.crt>를 추출된 CA 인증서 파일로 바꿉니다.