본문 바로가기
IT

[리눅스 기초 #36] 내 서버의 주치의: Glances와 Netdata로 실시간 건강검진하기

by sunyjiny 2026. 2. 8.
반응형

 

리눅스 기초 시리즈의 36번째 시간입니다! 지난 시간에는 우리 서버의 성벽을 쌓는 UFW 방화벽 설정을 통해 외부 공격을 차단하는 법을 배웠습니다. 이제 보안까지 챙겼으니, 서버 내부에서 어떤 일이 벌어지고 있는지 실시간으로 감시할 차례입니다.

운영 중인 서비스가 갑자기 느려졌을 때, CPU가 비명을 지르고 있는지 아니면 램이 꽉 찼는지 모른다면 눈을 감고 운전하는 것과 같습니다. 오늘은 터미널과 웹 브라우저에서 서버의 모든 수치를 한눈에 파악하는 GlancesNetdata 활용법을 저의 경험담과 함께 정리해 보겠습니다.


1. 나의 경험담: "원인 모를 서버 다운, 범인은 좀비 프로세스"

 

최근 제 블로그 서비스인 sunyjini.com에 평소보다 많은 트래픽이 몰린 적이 있었습니다. 갑자기 페이지 로딩이 멈추고 서버가 응답하지 않았죠. 급하게 SSH로 접속해 top 명령어를 쳤지만, 텍스트들이 너무 어지럽게 나열되어 있어 무엇이 문제인지 한눈에 들어오지 않았습니다.

이때 미리 설치해둔 Glances를 실행했습니다. CPU 사용률이 빨간색으로 깜빡이고 있었고, 특정 Docker 컨테이너가 메모리를 비정상적으로 점유하고 있다는 사실을 단 2초 만에 파악할 수 있었습니다. 가시성(Visibility)이 확보되니 대응은 순식간이었습니다. 모니터링 도구가 없었다면 밤새도록 로그 파일만 뒤적거렸을 텐데, '데이터의 시각화'가 주는 힘을 다시 한번 실감했습니다.


2. Before: "불친절한 텍스트의 나열, top과 htop"

리눅스에 기본 내장된 top이나 조금 더 발전된 htop도 훌륭한 도구입니다. 하지만 서버의 전체적인 건강 상태(네트워크 대역폭, 디스크 I/O, 센서 온도 등)를 한 화면에서 종합적으로 보기에는 부족함이 많습니다.

실험 코드 (기본 htop 실행):

Terminal
 
# htop 설치 및 실행 sudo apt install htop htop 

(▲ Before: 프로세스 단위의 확인은 좋지만, 네트워크 패킷이나 하드웨어 온도까지 종합적으로 보여주지는 못합니다. 환자의 혈압만 보고 전체 건강을 판단하는 것과 비슷하죠.)


3. Action: Glances와 Netdata로 종합 검진 시작하기

 

이제 터미널 기반의 종합 영양제 Glances와 화려한 웹 대시보드를 자랑하는 Netdata를 설치해 보겠습니다.

설치 및 실행 코드:

Bash Terminal
 
# 1. Glances 설치 및 실행 (Python 기반) sudo apt install glances glances

2. Netdata 원라인 설치 스크립트 (가장 추천하는 방식)
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh

3. 설치 후 웹 브라우저에서 접속
http://서버IP:19999

(▲ Action: Glances는 터미널 안에서 모든 수치를 요약해서 보여주고, Netdata는 웹 브라우저를 통해 과거 기록까지 화려한 그래프로 보여줍니다. 서버의 모든 고동이 시각화되는 순간입니다.)


4. After: 데이터로 대화하는 든든한 서버 관리

모니터링 도구를 구축한 뒤 제 개발 환경에는 '심리적 안정감'이 찾아왔습니다. 이제 더 이상 서버가 죽을까 봐 전전긍긍하지 않습니다.

달라진 점들:

  • 선제적 대응: 임계치(Threshold)를 넘어가면 Glances가 로그를 남겨주어 사고가 터지기 전에 조치를 취할 수 있습니다.
  • 병목 현상 파악: 네트워크 속도가 문제인지, 디스크 쓰기 속도가 문제인지 명확하게 구분할 수 있게 되었습니다.
  • 도커 완벽 통합: 현재 돌아가는 각 컨테이너가 자원을 얼마나 쓰는지 실시간으로 모니터링합니다.

5. 실험 요약 및 팁

도구 주요 특징 추천 상황
Glances CLI 기반, 매우 가벼움, 파이썬 기반 터미널 접속 후 빠르게 현황 파악 시
Netdata 웹 GUI, 1초 단위 고정밀 데이터 브라우저로 상세 지표를 분석할 때
htop 프로세스 관리 특화 범인 프로세스를 죽일(kill) 때

6. 마치며: 당신의 서버는 안녕한가요?

리눅스 기초 36단계를 거치며 우리는 이제 시스템의 구축, 보안, 그리고 마지막 단추인 '감시'까지 마스터했습니다. 모니터링은 단순히 숫자를 보는 것이 아니라, 내가 만든 서비스와 '대화'하는 과정입니다.

오늘의 인사이트: "측정할 수 없는 것은 개선할 수 없다. 모니터링은 더 나은 서비스를 위한 첫걸음이다."


36번째 이야기를 마칩니다. 이제 우리만의 완벽한 리눅스 요새와 감시 체계가 완성되었습니다. 다음 시간에는 이렇게 멋지게 구축한 서버 환경을 통째로 압축하고 백업하여 다른 장비로 옮기는 **'리눅스 이미지 백업과 복구: 타임머신 만들기'**에 대해 다뤄보겠습니다.

이 글이 여러분의 서버 운영에 큰 힘이 되었나요? 혹시 19999 포트가 방화벽에 막혀 Netdata 접속이 안 되고 있나요?

지난 시간에 배운 UFW 명령어로 모니터링 포트만 안전하게 여는 법을 다음 포스팅 부록으로 준비해 드릴까요?

 

반응형