4.9. systemd-journald 및 Fluentd 구성
Fluentd는 저널에서 읽고 저널 기본 설정이 매우 낮기 때문에 저널은 시스템 서비스의 로깅 속도를 유지할 수 없으므로 저널 항목이 손실될 수 있습니다.
저널이 항목을 손실하지 않도록 RateLimitIntervalSec=30s
및 RateLimitBurst = 10000
(또는 필요한 경우 더 높음)을 설정하는 것이 좋습니다.
4.9.1. OpenShift Logging을 위한 systemd-journald 구성
프로젝트를 확장할 때 기본 로깅 환경을 조정해야 할 수도 있습니다.
예를 들어, 로그가 누락된 경우 저널에 대한 비율 제한을 늘려야 할 수 있습니다. OpenShift Logging이 로그를 삭제하지 않고 과도한 리소스를 사용하지 않도록 지정된 기간 동안 보유할 메시지 수를 조정할 수 있습니다.
로그 압축 여부, 로그 보존 기간, 로그 저장 방법 또는 저장 여부 및 기타 설정을 확인할 수도 있습니다.
절차
필요한 설정과 함께
/etc/systemd/journald.conf
파일을 포함하는 Butane 구성 파일40-worker-custom-journald.bu
를 만듭니다.참고Butane에 대한 자세한 내용은 “Butane 을 사용하여 머신 구성 생성”을 참조하십시오.
variant: openshift version: 4.8.0 metadata: name: 40-worker-custom-journald labels: machineconfiguration.openshift.io/role: "worker" storage: files: - path: /etc/systemd/journald.conf mode: 0644 1 overwrite: true contents: inline: | Compress=yes 2 ForwardToConsole=no 3 ForwardToSyslog=no MaxRetentionSec=1month 4 RateLimitBurst=10000 5 RateLimitIntervalSec=30s Storage=persistent 6 SyncIntervalSec=1s 7 SystemMaxUse=8G 8 SystemKeepFree=20% 9 SystemMaxFileSize=10M 10
- 1
journal.conf
파일에 대한 권한을 설정합니다.0644
권한을 설정하는 것이 좋습니다.- 2
- 로그를 파일 시스템에 쓰기 전에 압축할지 여부를 지정합니다. 메시지를 압축하려면
yes
를 지정하고 압축하지 않으려면no
를 지정합니다. 기본값은yes
입니다. - 3
- 로그 메시지를 전달할지 여부를 구성합니다. 각각에 대해 기본값은
no
입니다. 다음을 지정합니다.-
시스템 콘솔에 로그를 전달하려면
ForwardToConsole
을 지정합니다. -
로그를 커널 로그 버퍼로 전달하려면
ForwardToKsmg
를 지정합니다. -
syslog 데몬으로 전달하려면
ForwardToSyslog
를 지정합니다. -
로그인한 모든 사용자에게 월(wall) 메시지로 메시지를 전달하려면
ForwardToWall
을 지정합니다.
-
시스템 콘솔에 로그를 전달하려면
- 4
- 저널 항목을 저장할 최대 시간을 지정합니다. 초를 지정하려면 숫자를 입력합니다. 또는 "year", "month", "week", "day", "h"또는 "m"과 같은 단위를 포함합니다. 비활성화하려면
0
을 입력합니다. 기본값은1month
입니다. - 5
- 속도 제한을 구성합니다.
RateLimitIntervalSec
에서 정의한 시간 간격 동안RateLimitBurst
에 지정된 것보다 더 많은 로그를 수신하는 경우 간격이 끝날 때까지 간격 내의 모든 추가 메시지는 삭제됩니다. 기본값인RateLimitIntervalSec=30s
및RateLimitBurst=10000
을 설정하는 것이 좋습니다. - 6
- 로그 저장 방법을 지정합니다. 기본값은
persistent
입니다.-
/var/log/journal/
에서 메모리에 로그를 저장하기 위한volatile
입니다. -
/var/log/journal/
의 디스크에 로그를 저장하기 위한persistent
입니다. systemd는 디렉토리가 없는 경우 디렉토리를 생성합니다. -
디렉토리가 존재하는 경우
/var/log/journal/
에 로그를 저장하기 위한auto
입니다. 존재하지 않는 경우 systemd는/run/systemd/journal
에 로그를 임시 저장합니다. -
로그를 저장하지 않는
none
입니다. systemd는 모든 로그를 삭제합니다.
-
- 7
- ERR, WARNING, NOTICE, INFO 및 DEBUG 로그에 대해 저널 파일을 디스크에 동기화하기 전에 제한 시간을 지정합니다. CRIT, ALERT 또는 EMERG 로그를 수신하면 systemd가 즉시 동기화됩니다. 기본값은
1s
입니다. - 8
- 저널이 사용할 수 있는 최대 크기를 지정합니다. 기본값은
8G
입니다. - 9
- 시스템에서 사용 가능한 디스크 공간을 지정합니다. 기본값은
20%
입니다. - 10
/var/log/journal
에 지속적으로 저장된 개별 저널 파일의 최대 크기를 지정합니다. 기본값은10M
입니다.참고속도 제한을 제거하는 경우 이전에 제한되었던 메시지를 처리할 때 시스템 로깅 데몬에서 CPU 사용률이 증가할 수 있습니다.
시스템 설정에 대한 자세한 내용은 https://www.freedesktop.org/software/systemd/man/journald.conf.html을 참조하십시오. 해당 페이지에 나열된 기본 설정은 OpenShift Container Platform에 적용되지 않을 수 있습니다.
Butane을 사용하여 노드로 전달할 구성이 포함된
MachineConfig
개체 파일40-worker-custom-journald.yaml
을 생성합니다.$ butane 40-worker-custom-journald.bu -o 40-worker-custom-journald.yaml
머신 구성을 적용합니다. 예를 들면 다음과 같습니다.
$ oc apply -f 40-worker-custom-journald.yaml
컨트롤러는 새로운
MachineConfig
를 감지하고 새로운rendered-worker-<hash>
버전을 생성합니다.각 노드에 새로 렌더링된 구성의 롤아웃 상태를 모니터링합니다.
$ oc describe machineconfigpool/worker
출력 예
Name: worker Namespace: Labels: machineconfiguration.openshift.io/mco-built-in= Annotations: <none> API Version: machineconfiguration.openshift.io/v1 Kind: MachineConfigPool ... Conditions: Message: Reason: All nodes are updating to rendered-worker-913514517bcea7c93bd446f4830bc64e