안녕하세요
집에 IoT홈서버 (엄청 거창하네요)용으로 고물 x201에 우분투 데스크탑을 설치해서 몇년간 써오고 있는데요
무척 안정적이라 벽장안에 넣어두고 거의 신경 안 쓰고 있었는데 어제 저녁에 갑자기 grafana가 먹통이 되더니
오늘 아침에는 node-RED 자동 백업하는 스크립트가 용량부족으로 실행불가능하다는 메시지가 뜨네요
부랴부랴 하드용량확인하는 명령어를 얼른 인터넷으로 검색해서 Putty에 실행해보니 뭐가 엄청 복잡한데... ㅠㅠ 결론적으로 /dev/sda1 246G가 233G 사용중이라 꽉찼다는 얘기인것 같습니다

서버하드에 용량이 찰 이유는 아마도 수년전에 태양광패널 설치하면서 모니터링을 위해 설치한 influxDB때문이 아닐까 싶습니다. 태양광발전량/전기사용량/실내온도/실외온도등등의 자료를 매 십초단위로 저장하다보니 그게 쌓이고 쌓여서 그런걸까요... 뭐 제 수준에서는 정확하게 알 도리가 없네요ㅠㅠ
하여간 제게는 무척 중요한 작업들을 24시간 자동으로 해주는 서버라 이걸 어떻게든 빨리 손봐줘야 할 것 같은데 어디서부터 시작해야 할 지 모르겠습니다
질문을 정리해보자면,
1. 하드를 대용량으로 교체하고 기존의 셋팅을 새 하드에 그대로 옮기는 방법?
2. 다른 고물랩톱에 새서버를 구축하고 기존 서버의 셋팅을 그대로 옮기는 방법?
3. 미봉책인것 같지만 influxDB를 공부해서 오래된 데이타를 삭제하거나 압축해서 용량 확보?
4. 이것도 미봉책인것 같지만 불필요한 우분투 데스크탑을 삭제해서 용량확보?
참고로 제 서버에 설치되어 작동하는 프로그램(=서비스?)들이 뭔지 기억을 더듬어보면...
1. node-RED
2. MQTT
3. InfluxDB
4. grafana
5. apache
등등이 돌아가고 있는것 같습니다. 그때그때 필요할 때 마다 대충 인터넷보고 설치/추가한거라 이것 말고도 더 있을것 같긴 한데 일단 저 정도가 중요한 서비스인것 같습니다
리눅스를 나름 오랫동안 사용해왔지만 보시다시피 실제로 아는게 거의 없으니 도움을 부탁드립니다 ㅠㅠ
참고 : https://beausty23.tistory.com/m/234
그리고 db 누적은 3번이 정답일거 같은데 과거데이타를 안 지우고 전부 남겨둬야 한다면 하드증설이 답이겠죠!
순식간에 여유공간 5기가 확보!
스크립트 에러 나던것도 자동으로 해결됐네요~
일단 잠깐이나마 숨돌리고 제대로 업글계획을 세워볼 수 있을것 같습니다 감사합니다
기존 랩톱에 하드증설은 제 실력으론 어려울 것 같아서 아마도 다른 고물랩톱에 우분투 서버를 깔아놓고 서비스 하나하나 테스트해가면서 설치해서 모두 잘 돌아가는것 확인하고 최종적으로 새 서버로 갈아타는 그런 방법이 가장 현실적일 것 같군요
influxDB도 처음 설치하던 시절에는 돌아가는거 보고 무척 뿌듯했지만 실시간으로 grafana에 이쁘게 뿌려주는거 말고는 사실 별 쓰잘데기없는 데이타인데 공부 좀 해서 좀 더 합리적으로 운용하는 방법을 찾아야 할 것 같아요 (처음 설치할때 빼고는 한번도 건드리지 않았습니다 ㅠㅠ)
아 리눅스는 뭐 하나 하려면 공부하고 시간투자해야 하는게 너무 많아서 그게 제일 큰 문제에요 ㅠㅠ
du -aBM 2>/dev/null | sort -nr | head -n 50 | more
그랬더니 글쎄 pm2.log라는 놈이 120기가, 그 밑에 node-red-error.log가 82기가를 먹고 있네요
그 둘이 범인이었습니다
pm2라는건 ADVANCED, PRODUCTION PROCESS MANAGER FOR NODE.JS라는데 뭐 별로 자세히 알고 싶지는 않지만 하여간 이런 비슷한 문제를 겪는 사람들이 저 말고도 좀 있는것 같아서 해결을 보는건 그리 어렵지는 않을 것 같네요 ㅠㅠ
에 해법이 잘 나와 있네요
일단 다음 명령어로 pm2.log파일을 지우고,
pm2 flush
다음을 설치해서 사태의 재발을 방지하면 된답니다
pm2 install pm2-logrotate
지금은 겁나서 손도 못 대겠어요 ㅎㅎ
influxdb 는 사용해본적 없지만 elastic stack 으로 비스무리하게 금융사에서 구축해서 사용해본적 한적 있었는데
수개월만에 수백기가 데이터가 쌓여서 난리친적이 있었네요.. (금융사 서비스 지만 사용량이 그리 많은 서비스는 아니였습니다.)
시간나실때 좀 지난 데이터를 삭제 하도록 하거나 아님 아래 문서 참고하셔서 데이터 용량을 줄이시는 세팅 권장 드립니다.
(만약 초단위 데이터가 있다면 특정 기간이 지나면 분 단위, 시간 단위 이런식으로 묶어버리는 형식 입니다.)
https://docs.influxdata.com/influxdb/v1.7/guides/downsampling_and_retention
https://server-talk.tistory.com/271
참고하시면 감이 오실 것 같습니다. /var/log 밑의 파일도 한 번 점검해 보시기 바랍니다.
이 명령어로 지우고,
sudo journalctl --vacuum-size=100M
이 명령어로 최근 10일치만 저장하게끔 셋팅하라고 하네요
sudo journalctl --vacuum-time=10d
시키는대로 했더니 3.9G 또 확보했습니다 ㅎㅎ