콘텐츠로 이동

Netdata - 실시간 성능 모니터링 치트시트

Netdata - 실시간 성능 모니터링 치트시트

Netdata는 거의 영점 구성으로 초당 수천 개의 메트릭을 수집하고 라이브 웹 대시보드(기본 포트 19999)에서 시각화하는 오픈 소스 모니터링 에이전트입니다. 800개 이상의 수집기를 통해 서비스(데이터베이스, 웹 서버, 컨테이너, Kubernetes)를 자동 감지하고 이상 감지 및 내장 경고 엔진을 제공합니다.

설치

방법명령어
범용 kickstartwget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
curl 변형curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh
Debian/Ubuntu pkgsudo apt install netdata
Fedora/RHEL pkgsudo dnf install netdata
Dockerdocker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata
Helm (Kubernetes)helm install netdata netdata/netdata

설치 후 http://localhost:19999 (또는 서버의 IP)를 엽니다.

서비스 관리

명령어설명
sudo systemctl start netdata에이전트 시작
sudo systemctl enable netdata부팅 시 시작
sudo systemctl restart netdata재시작 (설정 변경 적용)
sudo systemctl status netdata상태 확인
sudo journalctl -u netdata -f에이전트 로그 추적
netdatacli reload-health전체 재시작 없이 알람 다시 로드
netdatacli reload-labels호스트 라벨 다시 로드
netdatacli shutdown-agent에이전트 정상 중지

설정

항상 edit-config 래퍼로 설정을 편집합니다. 이는 /usr/lib/netdata/conf.d에서 /etc/netdata로 파일을 복사하므로 업그레이드가 덮어쓰지 않습니다.

cd /etc/netdata
sudo ./edit-config netdata.conf          # main agent config
sudo ./edit-config health_alarm_notify.conf   # notifications
sudo ./edit-config go.d.conf             # enable/disable Go collectors
설정 (netdata.conf)용도
[global] update every = 1초 단위 수집 간격
[global] history / dbengine보존 / 온디스크 데이터베이스 계층 크기
[web] bind to = *대시보드가 수신하는 네트워크 인터페이스
[web] default port = 19999대시보드 포트
[plugins]전체 플러그인 그룹 토글 켜기/끄기

수집기 (플러그인)

작업방법
수집기별 설정 파일 나열cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf
모듈 활성화 (예: nginx)sudo ./edit-config go.d/nginx.conf 후 상태 URL 가리킴
Go 수집기 디버그sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx
일반적인 자동 감지 모듈nginx, apache, mysql, postgres, redis, docker, systemd units, disks, network, sensors

상태 및 알람

알람 정의는 /etc/netdata/health.d/*.conf에 있습니다.

cd /etc/netdata
sudo ./edit-config health.d/cpu.conf     # tweak a built-in alarm
netdatacli reload-health                  # apply
명령어설명
curl http://localhost:19999/api/v1/alarms?all모든 알람 및 현재 상태 나열 (JSON)
curl http://localhost:19999/api/v1/info에이전트 정보, 버전, 수집기
health_alarm_notify.conf 편집이메일, Slack, PagerDuty, Discord 등 연결

유용한 API 끝점

끝점반환값
/api/v1/charts노드의 모든 사용 가능한 차트
/api/v1/data?chart=system.cpu차트의 시계열 데이터
/api/v1/allmetrics?format=prometheusPrometheus용 스크래이프 대상
/api/v1/badge.svg?chart=system.cpu&value_color=green포함 가능한 상태 배지

Netdata Cloud (선택 사항)

# 노드를 Netdata Cloud에 연결(요청)하여 다중 노드 대시보드
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud

이를 요청하지 않으면 에이전트는 독립 실행형으로 계속 완전히 작동합니다. Cloud는 교차 노드 뷰 및 중앙 집중식 경고만 추가합니다.

일반적인 워크플로우

# 셸에서 빠른 상태 확인
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'

# 기존 Prometheus 스택에 메트릭 노출
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head

# 작은 VM에서 CPU/디스크 사용량 감소 (netdata.conf)
#   [global] update every = 2
#   [db] mode = ram         # keep metrics in memory only

# 보존 감소하되 초당 세분성 유지, 후 다시 로드
sudo systemctl restart netdata

Netdata vs Prometheus + Grafana

측면NetdataPrometheus + Grafana
설정분 단위, 자동 감지수동 내보내기 + 대시보드
세분성기본값으로 초당일반적으로 15초 스크래이프
저장소로컬 계층화 db (dbengine)중앙 TSDB
최적 용도단일 노드 깊이, 빠른 분류큰 플릿, 장기 쿼리
상호운용성Prometheus 형식 내보내기Netdata 스크래이프 가능

자료