PowerFlex 랙: syslog 전달 기능이 활성화된 경우 /var/log 공간 문제
Summary: 이 문서에서는 로그 회전으로 인한 /var/log 공간의 문제가 충분히 자주 발생하지 않는 것에 대해 설명합니다.
Symptoms
현재 logrotate 구성은 일주일에 한 번 메시지 파일을 순환하지만, VxFlex Manager에서 syslog 전달이 활성화된 경우 충분히 빠르게 순환되지 않을 수 있습니다.
사실:
- syslog 전달 기능은 VxFlex Manager에서 활성화됩니다.
- /var/log 파티션이 빠르게 채워집니다.
- 이는 시스템마다 크게 다를 수 있습니다
- 원격 syslog는 VxFlex 통합 랙 또는 어플라이언스 시스템의 디바이스에서 활성화되고 syslog 이벤트를 VxFlex Manager로 전송하도록 구성됩니다.
Cause
/var/log 파일 시스템이 100%이면 모든 리소스에 대해 리소스 인벤토리가 실패합니다.
참고: 공간이 너무 꽉 차서 이러한 점검을 수행할 수 없거나 공간이 너무 빨리 채워지는 경우 아래 나열된 경고 또는 위험 알림이 작동하지 않을 수 있습니다.
- 75%인 경우 >VxFlex Manager UI에 경고가 표시됩니다.
95%가 다음과 같은 경우 VxFlex Manager UI에 'Critical'이 표시됩니다.>
df -h는 /var/log가 매우 많이 사용되고 있으며 빠르게 증가하고 있음을 보여줍니다.
Resolution
syslog 전달이 활성화된 VxFlex Manager 어플라이언스에서 로그 회전을 수정하려면 다음 단계를 사용하여 logrotate를 구성하고, 기존 로그를 압축하고, rsyslog 설정을 변경하고, 디버그 로그 수준을 낮출 수 있습니다.
1단계: SSH를 통해 VxFlex Manager에 연결하고 루트 사용자가 됩니다. sudo su -
2단계: 다음 텍스트가 다음 위치에 있는지 확인하여 syslog logrotate 규칙을 편집(vi 편집기)합니다. /etc/logrotate.d/syslog
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { size 100M nodateext rotate 5 compress missingok copytruncate postrotate /bin/killall -s SIGHUP -r rsyslog endscript }
3단계: 다음 명령을 입력하여 새 구성이 올바르게 저장되었는지 확인합니다.
cat /etc/logrotate.d/syslog
4단계: /var/log 공간이 얼마나 빨리 채워지는지에 따라 다음 옵션 중 하나를 선택합니다.
매일 /var/log를 채우지 않지만 매주 교체보다 빠른 교체가 필요한 환경의 경우 다음 명령을 사용하여 logrotate를 매주 에서 매일 로 변경합니다.
cp /etc/cron.weekly/logrotate /etc/cron.daily/
일일 순환이 수용할 수 있는 속도보다 빠르게 /var/log를 채우는 환경의 경우 다음 명령을 사용하여 logrotate를 매일에서 매시간으로 변경합니다.
cp /etc/cron.daily/logrotate /etc/cron.hourly/
5단계: 다음 명령을 실행하여 기존 파일을 압축하고 공간을 확보합니다.
for log in `ls /var/log/messages-*`; do sudo gzip $log; done
참고: /var/log/messages 파일이 너무 꽉 차서 압축할 수 없는 경우 다음 명령을 사용하여 파일을 지웁니다.
cat /dev/null > /var/log/messages
6단계: logrotate 구성이 제대로 작동하는지 확인하려면 다음 명령을 실행합니다.
logrotate -f /etc/logrotate.d/syslog
7단계: 전달된 syslog 이벤트를 VxFlex Manager 어플라이언스의 /var/log/messages 파일에 로깅하는 것을 중지하려면 다음을 수행합니다.
- 다음 명령을 사용하여 /etc/rsyslog.d/ 아래에 conf 파일을 생성합니다.
vi 21-stop-remote-host-syslog-logging.conf - 위에서 새로 만든 파일에 다음 줄을 추가합니다.
if $fromhost-ip != '127.0.0.1' then ~ - 다음을 입력하여 파일을 저장합니다.
:wq! - rsyslog 서비스를 재시작합니다.
systemctl restart rsyslog.service
참고: 21은 rsyslog에 사용되는 우선 순위 번호입니다. rsyslog를 재시작한 후 들어오는 원격 syslog를 /var/log/messages에 저장하지 않습니다. VxFlex Manager의 로컬 syslog는 여전히 /var/log/messages에 저장됩니다.
참고: VxFlex Manager에서 syslog 전달이 활성화되지 않은 경우에도 호스트는 VxFlex Manager를 가리킬 수 있으며, 이 경우 /var/log/messages 파일이 스팸될 수 있습니다. VxFlex Manager syslog가 켜져 있는지 여부에 관계없이 메시지 파일이 플러딩되는 경우 7단계를 구성합니다.
8 단계 : 다음 단계를 수행하여 VxFlex Manager 어플라이언스에서 로그 stash의 디버그 로깅 수준을 변경합니다.
- 다음 명령을 사용하여 로깅 수준을 편집합니다.
vi /etc/logstash/logstash.yml - 파일에서 디버깅 설정을 검색합니다.
- 로그 수준을 정보(기본값)에서 오류로 변경합니다

- 다음 파일을 편집합니다. vi /etc/logstash/log4j2.properties
- 기본 구성에는 rootLogger.appenderRef.console로 시작하는 줄이 아래와 같이 #을 사용하여 이 줄을 주석 처리합니다.
-
다음을 실행하여 logstash 서비스를 재시작합니다. systemctl 재시작 logstash
8단계: /var/log 파일 시스템이 100% 꽉 찬 경우 VxFlex Manager 어플라이언스를 재부팅합니다. 이렇게 하면 모든 서비스가 백업을 올바르게 시작할 수 있습니다.
메모: 공간 문제를 해결하고 어플라이언스를 재부팅한 후 알림 커넥터가 제대로 작동하는지 확인하기 위해 테스트 알림을 보냅니다.
Additional Information
- syslog 메시지를 /var/log/messages에 로깅하는 것을 중지하는 수정 사항이 향후 VxFlex Manager 릴리스에서 작업 중입니다.
- 이는 버전 3.4.0.4271까지 syslog 전달 기능이 있는 모든 버전의 VxFlex Manager와 관련이 있습니다.