초보자가 디스크 사용률 경고에 대응하여 디스크 용량을 확보할 때까지 【tmpwatch 명령】

주의



이 기사는 리눅스 초보자가 쓴다. 중요한 데이터가 사라져 버릴 우려가 있으므로, 어디까지나 이 기사는 참고 정도로 해 주세요.

환경



CentOS7/Apache2.4/PHP5.4/MariaDB5.5/Zabbix Server4.4.6/사쿠라 VPS 1G

시작



평상시는 서버 감시가 메인의 일입니다만,
공부의 일환으로 개인으로 Zabbix 서버를 시작하고 있습니다.

그 Zabbix 서버에서 이런 경고가 ......

Problem started at hh:mm:ss on yyyy.mm.dd
Problem name:/: Disk space is critically low (used > 90%)
Host: Zabbix server
Severity: Average

※일부 정보는 덮고 있습니다

......읽으면 알겠지만, 방치 상태였던 Zabbix 서버의 디스크 사용률이, 90퍼센트를 넘어 버린 것 같습니다.
※실은 80퍼센트를 넘은 단계에서 경고가 나왔습니다만, 완전히 방치하고 있었습니다.

그러므로, 우선 그래프의 확인에 갑니다.



확실히 디스크가 박박하고 있기 때문에, 우선 서버에 로그인해 조사해 보겠습니다.

조사


[root@hostname user]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda4        45G   40G  2.7G  94% /
devtmpfs        484M     0  484M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   51M  446M  11% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda2       477M  103M  345M  23% /boot
tmpfs           100M     0  100M   0% /run/user/1000

df 명령으로 디스크 여유 공간 확인
-h 옵션으로 단위를 조정합니다.

우선,/의 빈 용량이 없을 것 같습니다.
[root@hostname user]# du -sh /*
0       /bin
101M    /boot
0       /dev
34M     /etc
84K     /home
0       /lib
0       /lib64
16K     /lost+found
4.0K    /media
4.0K    /mnt
8.0K    /opt
0       /proc
68K     /root
51M     /run
0       /sbin
4.0K    /srv
0       /sys
48K     /tmp
1.6G    /usr
24G     /var

du 명령을 사용하여 파일 디렉토리가 사용하는 디스크 공간 확인
-s 옵션에 필요한 부분만 표시
-h 옵션으로 보기 쉽게 조정

우선, 사용량이 1번 많다/var가 원인인 것 같습니다.
[root@hostname user]# du -sh /var/*
4.0K    /var/account
4.0K    /var/adm
120M    /var/cache
4.0K    /var/crash
20K     /var/db
8.0K    /var/empty
4.0K    /var/games
4.0K    /var/gopher
12K     /var/kerberos
311M    /var/lib
4.0K    /var/local
0       /var/lock
27G     /var/log
0       /var/mail
4.0K    /var/nis
4.0K    /var/opt
4.0K    /var/preserve
0       /var/run
116K    /var/spool
32K     /var/tmp
12K     /var/www
4.0K    /var/yp

마찬가지로 du 명령을 사용하지만 이번에는/var를 조사한 결과/var/log에 원인이 있다고 생각합니다.
[root@hostname user]# du -sh /var/log/*
4.0K    /var/log/anaconda
39M     /var/log/audit
0       /var/log/boot.log
12K     /var/log/boot.log-20200427
137M    /var/log/btmp
222M    /var/log/btmp-20200501
4.0K    /var/log/chrony
128K    /var/log/cron
164K    /var/log/cron-20200419
160K    /var/log/cron-20200426
160K    /var/log/cron-20200503
160K    /var/log/cron-20200510
36K     /var/log/dmesg
2.7M    /var/log/httpd
40K     /var/log/lastlog
0       /var/log/maillog
0       /var/log/maillog-20200426
4.0K    /var/log/maillog-20200503
0       /var/log/maillog-20200510
20K     /var/log/mariadb
236K    /var/log/messages
276K    /var/log/messages-20200419
272K    /var/log/messages-20200426
344K    /var/log/messages-20200503
280K    /var/log/messages-20200510
4.0K    /var/log/qemu-ga
4.0K    /var/log/rhsm
22M     /var/log/sa
55M     /var/log/secure
59M     /var/log/secure-20200419
44M     /var/log/secure-20200426
64M     /var/log/secure-20200503
63M     /var/log/secure-20200510
0       /var/log/spooler
0       /var/log/spooler-20200426
0       /var/log/spooler-20200503
0       /var/log/spooler-20200510
20K     /var/log/tuned
48K     /var/log/wtmp
4.0K    /var/log/yum.log
23G     /var/log/zabbix

다음의 계층을 조사, 역시 원인은/var/log/zabbix와 같습니다(원래 Zabbix 서버이고). 사용 용량이 분명합니다.

대책



그런데, 원인을 알았으므로, 대책을 생각합니다.
조사해 보면, 아무래도 tmpwatch 커멘드 되는 것을 사용할 수 있을 것 같습니다.
[root@hostname user]# yum -y install tmpwatch

우선 yum 명령으로 tmpwatch 명령을 설치합니다.
[root@hostname user]# tmpwatch -d -m 720 /var/log/zabbix

tmpwatch 명령으로 업데이트 날짜가 오래된 파일 삭제
-d 옵션으로 디렉터리 제외
-m으로 시간을 지정합니다.

인식이 잘못되지 않으면 720시간 이상 업데이트가 없는 파일을 삭제해 주어야 합니다.

다시 그래프를 확인하러갑니다.



우선 디스크 용량이 다소 개선된 것 같습니다.
커맨드 실행 후, 90퍼센트 디스크 사용률이 90퍼센트를 밑돌았다는 경고도 확인했으므로, 우선은 성공이라고 하는 것으로.......
(80 %는 낮지 않지만)

추가



중요한 것을 잊었지만 다시 시작하지 않았습니다.
재부팅 결과는 여기


제대로 오래된 로그 파일을 삭제할 수 있었던 것 같습니다.

우선 이것으로 안심

좋은 웹페이지 즐겨찾기