Netdata는 리눅스 시스템, 응용 프로그램, SNMP 장치에 대한 성능 모니터링 (초당)을 실시간으로 제공하고 절대적를 분석하기 위해 웹 브라우저를 통해 수집 된 모든 값을 렌더링하여, 전체 대화 형 차트를 보여주는 매우 최적화 된 리눅스 유틸리티이다.
이것은 현재 실행중인 프로그램을 중단하지 않고, 리눅스 시스템에 설치하기 위해서 개발된 오픈소스이다. 모니터링중 리눅스 시스템과 응용 프로그램에 실시간으로 무슨 일이 일어나고 있는지를 확인 할 수 있다.
Netdata 특징
- 코어당 CPU 사용량, 인터럽트, 현재 softirq 및 주파수.
- 전체 메모리, RAM, 스왑 및 커널 사용.
- 디스크 I / O.(디스크 : 대역폭, 운영, 백 로그, 이용 등)
- 대역폭, 패킷, 오류, 삭제 등을 포함하는 네트워크 인터페이스를 모니터.
- 넷 필터 / iptables에서 모니터. 리눅스 방화벽 연결, 이벤트, 오류 등 확인
- 프로세스 (실행 차단, 포크, 활성 등).
- 프로세스 트리 (CPU, 메모리, 스왑, 디스크 등, 스레드, 읽기 / 쓰기)와 시스템 응용 프로그램.
- mod_status를 아파치와 Nginx의 상태 모니터링.
- MySQL 데이터베이스 모니터링 : 쿼리, 업데이트, 잠금, 문제, 스레드 등
- postfix 메일서비스 관련정보.
- 프록시 서버 대역폭과 요청 모니터링.
- 하드웨어 센서 (온도, 전압, 팬, 전원, 습도 등).
- SNMP 장치.
설치 및 구성
설치에 앞서 의존성 라이브러리를 설치해야 된다.
Debian / Ubuntu
apt-get install zlib1g-dev gcc make git autoconf autogen automake pkg-config
Centos / Fedora / Redhat / Sulinux
yum install zlib-devel gcc make git autoconf autogen automake pkgconfig
다음은 netdata repository 에서 스크립트를 다운받아 설치를 진행한다.
wget https://firehol.org/download/netdata/latest/netdata-1.0.0.tar.gz
git clone https://github.com/firehol/netdata.git --depth=1
cd netdata
./netdata-installer.sh
설치가 완료되었다. 데몬을 실행하도록 하자.
/usr/sbin/netdata &
환경설정파일 수정
vi /etc/netdata/netdata.conf
[global]
config directory = /etc/netdata
plugins directory = /usr/libexec/netdata/plugins.d
web files directory = /usr/share/netdata/web
cache directory = /var/cache/netdata
log directory = /var/log/netdata
# host access prefix =
# debug flags = 0x00000000
# memory deduplication (ksm) = yes
debug log = /var/log/netdata/debug.log
error log = /var/log/netdata/error.log
access log = /var/log/netdata/access.log
memory mode = save
hostname = dslee.kr
history = 3600
update every = 1
pthread stack size = 10485760
run as user = netdata
web files owner = netdata
http port listen backlog = 100
port = 19999
ip version = any
bind socket to IP = *
disconnect idle web clients after seconds = 60
# enable web responses gzip compression = yes
[plugins]
tc = yes
idlejitter = yes
proc = yes
checks = no
plugins directory = /usr/libexec/netdata/plugins.d
enable running new plugins = yes
check for new plugins every = 60
charts.d = yes
apps = yes
node.d = yes
환경설정파일은 초기에 기본값으로 설정되어있는데, 이 기본값으로는 정상적인 서비스 확인이 불가능하다.
httpd-vhost 수정
vi /usr/local/apache/conf/extra/httpd-vhost.conf
<VirtualHost *:80>
DocumentRoot "/usr/share/netdata/web"
ServerName netdata.도메인
</VirtualHost>
/usr/local/apache/bin/apachectl start
방화벽 포트설정
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 19999 -j ACCEPT
최종 테스트 확인
http://netdata.도메인:19999
설치를 완료하고 나서 netdata 에 대해서 느낀점은 보여주기 위한 자료로 훌륭한거 같다. 하지만 기존에 가지고있는 여러 모니터링 툴 top,vnstat, sar, iostat 등 과 포지션이 겹치는 성향이 있다.
그런 모든 모니터링 툴을 한곳에 모아둬서 좋아보일수는 있지만, 세부적인것까지는 컨트롤 할수 없다는점이 조금은 아쉬웠었다. 아직 조금더 살펴보고 분석이 필요한 어플리케이션인거 같다.