방금 Raspberry Pi 3B에 Raspian Buster Lite를 새로 설치하고 설치했습니다.프로메테우스와 함께노드 내보내기몇 가지 간단한 진단을 수행하십시오. 특히 사용 가능한 디스크 공간이 중요합니다.
문제는 사용 가능한 디스크 공간이 지속적으로 감소하는 것 같다는 것입니다. 다음을 반환하는 를 사용하여 사용 가능한 바이트 수를 확인할 수 있습니다 df -B1
(사용된 "16GB" SD 카드에서 13.08GB).
pi@raspberrypi:/home $ df -B1
Filesystem 1B-blocks Used Available Use% Mounted on
/dev/root 15383740416 1647845376 13078351872 12% /
devtmpfs 480808960 0 480808960 0% /dev
tmpfs 485527552 0 485527552 0% /dev/shm
tmpfs 485527552 6459392 479068160 2% /run
tmpfs 5242880 4096 5238784 1% /run/lock
tmpfs 485527552 0 485527552 0% /sys/fs/cgroup
/dev/mmcblk0p1 264289280 54748672 209540608 21% /boot
tmpfs 97103872 0 97103872 0% /run/user/1000
정기적으로 확인하면 감소합니다. 몇 분 후에 확인하면 다음이 표시됩니다.
Filesystem 1B-blocks Used Available Use% Mounted on
/dev/root 15383740416 1648463872 13077733376 12% /
devtmpfs 480808960 0 480808960 0% /dev
tmpfs 485527552 0 485527552 0% /dev/shm
tmpfs 485527552 6459392 479068160 2% /run
tmpfs 5242880 4096 5238784 1% /run/lock
tmpfs 485527552 0 485527552 0% /sys/fs/cgroup
/dev/mmcblk0p1 264289280 54748672 209540608 21% /boot
tmpfs 97103872 0 97103872 0% /run/user/1000
다음 명령을 사용하여 Prometheus 데이터베이스에서 이 측정항목을 확인할 수 있습니다.그라파나:
아마도 로그 같은 것일 가능성이 높지만 더 잘 이해하고 싶습니다. 이 그래프를 보면 시간당 약 2.9MB씩 공간이 줄어들고 있는 것 같은데, 제겐 너무 큰 것 같아요.
이상적으로는 마지막 순간에 크기가 변경된 파일만 볼 수 있는 방법을 찾고 있는 것 같습니다. 원산지를 추적하는 좋은 방법은 무엇입니까? 기다려 주셔서 감사합니다. 저는 Linux를 처음 사용합니다.
편집하다
누구든지 관심이 있다면 시간당 2.9MB의 거의 대부분이 Prometheus의 WAL(미리 쓰기 로그)에 기인할 수 있다는 사실을 발견했습니다. WAL이 데이터를 저장하는 방법에 대해 읽을 수 있습니다.여기. 다음 명령을 사용하여 WAL 디렉터리 생성을 관찰할 수 있었습니다.
watch -d "sudo du -s -B1 /home/pi/prometheus/data/*"
변경되는 파일을 강조하는 데 효과적입니다.
Richie Frame이 암시한 것처럼 가끔씩(프로메테우스에서는 기본적으로 2시간마다 해야 한다고 믿지만 확인해야 합니다) 데이터는 WAL에서 압축되어 보다 영구적인 저장소에 저장됩니다. 이것이 더 효율적입니다. 필요한 디스크 공간 측면에서. Grafana에서 압축이 발생하고(Pi가 유휴 상태인 동안 밤새 발생함) 일부 디스크 공간이 확보되는 것을 볼 수 있습니다.
예상했던 2시간이 아닌 4시간마다 디스크 공간이 크게 늘어나는 것 같은 이유는 모르겠지만, 그건 또 다른 날의 작업입니다. 모두의 도움에 감사드립니다!
답변1
내 제안은 다음 명령입니다.
watch -d "ls -lt /var/log/**/* | head"
watch
기본적으로 다음 명령은 2초마다 실행됩니다. 이 -d
플래그는 각 실행 후의 차이점을 강조합니다.
ls -lt
마지막 수정 날짜(최신 날짜부터)를 기준으로 파일을 나열합니다. **/*
모든 파일을 재귀적으로 찾는 glob입니다.
마지막으로 head
처음 10줄만 출력하는 데 사용되었습니다.
답변2
비슷한 방법을 사용하여 시스템에서 가장 최근에 업데이트된 파일을 찾을 수 있습니다.
find / -type f -newermt '-5 minutes'`
이를 크기 표시와 결합할 수 있습니다.
find / -type f -newermt '-5 minutes' -exec stat -c '%10s %n' {} + `
답변3
루트로 수행 crontab -e
하고 다음과 같이 수행하십시오.
30 * * * * * /root/checkmydiskspace.sh
그러면 30분마다 bash 스크립트가 실행되며 /root/checkmydiskspace.sh
이를 작성해야 합니다. crontab을 찾아 더 자주 확인해야 하는지 결정하세요.
스크립트는 다음과 같으며 이를 찾는 데 도움이 되는 필수 정보를 출력합니다.어디시간이 지남에 따라 디스크 공간이 고갈될 수 있습니다.
#!/bin/bash
now=$(date '+%Y-%m-%d-%H:%M')
filename=wheremydiskspacegone_$now.log
du -sh /* > /root/$filename
반품,chmod 744 /root/checkmydiskspace.sh
무슨 일이 일어났는지 알아내기 위해 생성된 로그 파일을 살펴본 다음 가장 많은 공간이 사용된 하위 폴더 로 이동하십시오 du -sh /*
.du -sh /usr/*
du
물론, du -sh /*
어떤 폴더에 가장 많은 내용이 담겨 있는지, 그것이 범인일지는 미리 알 수 있습니다. 그러나 X분마다 또는 무엇이든 모든 로그 파일을 통해 정확히 무슨 일이 어디서 일어났는지 추론하는 데 필요한 모든 것을 얻을 수 있습니다. 그런 다음 어떤 프로그램이나 프로세스가 상황을 일으키는지 확인해야 합니다.