노드가 한두 대에서 다섯 대 정도이고 알림도 필요 없이 "지금 상태만 보면 되는" 경우에는 Prometheus + Grafana 조합이 과하다. 목적에 따라 도구를 고른다.
| 상황 | 선택 |
|---|---|
| 지금 상태만 웹으로 본다. 노드 1~5대 | Netdata |
| OS·서비스 관리까지 웹으로 한다 | Cockpit |
| 장기 보관, 알림, 대시보드 구성이 필요하다 | Prometheus + node_exporter + Grafana |
| 터미널에서 즉석 확인 | top · htop · atop |
공식 kickstart 스크립트를 쓴다.
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sudo sh /tmp/netdata-kickstart.sh
옛 문서에는 https://my-netdata.io/kickstart.sh 가 나온다. 이 주소는 죽지 않았고 get.netdata.cloud 로 307 리다이렉트된다. 문제는 주소가 아니라 내려받는 방식이다. 다음처럼 리다이렉트를 따라가지 않는 명령으로 받으면 스크립트 대신 리다이렉트 안내 HTML 이 셸로 들어간다.
# 실패한다 - curl 에 -L 이 없어 307 응답 본문(HTML)을 그대로 받는다
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
/dev/fd/63: line 1: html: No such file or directory
/dev/fd/63: line 2: syntax error near unexpected token `<'
curl 은 기본적으로 리다이렉트를 따라가지 않는다. -L 을 주면 옛 주소로도 스크립트가 제대로 내려온다[1].
curl -sSL https://my-netdata.io/kickstart.sh | head -1
#!/bin/sh
받은 것이 스크립트가 맞는지 확인하지 않고 곧바로 셸에 넘기면 이런 사고가 난다. 파일로 내려받아 첫 줄을 확인한 뒤 실행하는 편이 낫다. 현재 주소인 get.netdata.cloud 를 쓰면 리다이렉트 자체가 없어 더 안전하다.
sudo systemctl status netdata
ss -ntlp | grep 19999
기본 포트는 19999 다.
sudo firewall-cmd --permanent --add-port=19999/tcp
sudo firewall-cmd --reload
기본 설정은 모든 인터페이스에서 대기하며 인증이 없다. 사내망이라도 그대로 열어 두면 호스트 구성과 실행 중인 프로세스가 노출된다. 대기 주소를 루프백으로 묶고 SSH 터널이나 리버스 프록시 뒤에 두는 편이 안전하다.
sudo vi /etc/netdata/netdata.conf
[web]
bind to = 127.0.0.1
sudo systemctl restart netdata
접속하는 쪽에서 터널을 연다.
ssh -L 19999:127.0.0.1:19999 user@192.168.0.10
Netdata Agent 는 오픈소스로 공개돼 있고 자체 호스팅으로 쓸 수 있다. 내려받은 kickstart 스크립트 머리에는 SPDX-License-Identifier: GPL-3.0-or-later 가 붙어 있다[1:1]. 다만 여러 노드를 한 화면에서 보는 Netdata Cloud 는 별도 서비스이며, 에이전트를 여기에 연결하면 메타데이터가 외부로 나간다.
폐쇄망이나 반출이 제한된 환경에서는 클라우드 연결을 하지 않는다. kickstart 실행 중 연결을 묻는 단계를 건너뛰고, 설치 후 설정을 확인한 뒤 기동한다. 위 라이선스 표기는 설치 스크립트 파일에서 직접 확인한 것이고, 배포물 전체의 구성 요소별 라이선스와 Cloud 기능 구분은 버전에 따라 달라지므로 도입 전 저장소의 LICENSE 를 다시 본다. 이 항목은 확인 필요.
RHEL 계열은 배포판이 직접 제공한다. 지표뿐 아니라 서비스 제어, 로그, 스토리지, 컨테이너 관리까지 웹에서 한다.
sudo dnf install -y cockpit
sudo systemctl enable --now cockpit.socket
sudo firewall-cmd --permanent --add-service=cockpit
sudo firewall-cmd --reload
브라우저에서 9090 포트로 접속한다. OS 계정으로 로그인하며 권한도 그 계정을 따르므로 별도 인증 체계를 만들 필요가 없다.
노드가 늘어나거나 기록을 남겨야 하면 이쪽으로 간다. 각 노드에 node_exporter 를 올린다.
tar xzf node_exporter-*.linux-amd64.tar.gz
sudo install -m 755 node_exporter-*/node_exporter /usr/local/bin/
내려받을 파일은 GitHub 릴리스 페이지에서 현재 버전을 확인해 고른다. 서비스 등록은 systemd 서비스 유닛 직접 작성 을 따른다.
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets:
- 192.168.0.11:9100
- 192.168.0.12:9100
curl -sSL https://my-netdata.io/kickstart.sh 가 https://get.netdata.cloud/kickstart.sh 로 307 리다이렉트되며 #!/bin/sh 로 시작하는 스크립트를 반환하고, 그 머리에 SPDX-License-Identifier: GPL-3.0-or-later 가 있음을 확인 — 2026-09-20 확인. 설치 문서는 https://learn.netdata.cloud/docs/netdata-agent/installation/linux ↩︎ ↩︎