Y digo 5 minutos por decir algo, pues realmente se tarda incluso menos. Lo primero es aclarar que el objetivo de este artículo no es, mi mucho menos competir con otros sistemas de monitorización centralizada y métricas tipo Nagios/Icinga, Cacti o Grafana, sino disponer de un as en la manga cuando se necesita disponer de monitorización, gráficas y métricas de un servidor en apenas unos minutos y con carácter urgente.
Netdata es un demonio que corre sobre Linux y que ofrece monitorización a tiempo real tanto del propio sistema operativo como de aplicaciones y soporte SNMP. Todo ello a través de una interfaz web muy amigable que muestra un dashboard personalizable con toda la información a golpe de click. Netdata está escrito en C y su optimización permite que utilice apenas unos MB de RAM y un pequeño porcentaje de ciclos de CPU.
Cuando digo que se instala en menos de 5 minutos es porque únicamente tiene unas pocas dependencias y la instalación se realiza a través de un único script ejecutable que realiza todas las tareas de compilación e instalación. También cuenta con una API para la creación de plugins e integración con aplicaciones/servicios.
Instalación de netdata
Para instalar netdata, primero revisamos las dependencias:
Debian y derivados:
# apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autogen automake pkg-config # Opcionales # apt-get install curl jq nodejs
RHEL, CentOS y derivados:
# yum install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autogen automake pkgconfig # Opcionales # yum install curl jq nodejs
Para instalarlos, descargamos desde git y ejecutamos el instalador:
# git clone https://github.com/firehol/netdata.git --depth=1 # cd netdata # ./netdata-installer.sh Welcome to netdata! Nice to see you are giving it a try! You are about to build and install netdata to your system. It will be installed at these locations: - the daemon at /usr/sbin/netdata - config files at /etc/netdata - web files at /usr/share/netdata - plugins at /usr/libexec/netdata - cache files at /var/cache/netdata - db files at /var/lib/netdata - log files at /var/log/netdata - pid file at /var/run This installer allows you to change the installation path. Press Control-C and run the same command with --help for help. Press ENTER to build and install netdata to your system > [...] ------------------------------------------------------------------------------- OK. NetData is installed and it is running (listening to *:19999). ------------------------------------------------------------------------------- Hit http://localhost:19999/ from your browser. To stop netdata, just kill it, with: killall netdata To start it, just run it:
Tras la instalación el demonio levanta automáticamente:
# ps -fu netdata UID PID PPID C STIME TTY TIME CMD netdata 18283 1 2 11:01 ? 00:00:21 /usr/sbin/netdata -pidfile /var/run/netdata.pid netdata 18290 18283 1 11:01 ? 00:00:14 /bin/bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1 netdata 18292 18283 3 11:01 ? 00:00:27 /usr/libexec/netdata/plugins.d/apps.plugin 1 netdata 18294 18283 11 11:01 ? 00:01:18 /bin/bash /usr/libexec/netdata/plugins.d/charts.d.plugin 1 netdata 26066 18294 0 11:13 ? 00:00:00 /bin/date +%s * 1000 + %-N / 1000000 netdata 26067 18290 0 11:13 ? 00:00:00 /bin/bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1
Acceso web
Ya podemos acceder a la interfaz web (http://$IP_SERVIDOR:19999/) y disfrutar de la monitorización: cpu, red, memoria, disco, procesos, servicios, netfilter… de primeras, entre otras cosas netdata monitoriza todo lo que se puede extraer del sistema de archivos virtual /proc, así que imaginaros toda la información que disponemos sin necesidad de configurar nada. Además, establece relación entre todas las métricas. También presentará los servicios activos y monitorizará lo que detecte de cada uno (MySQL, Postfix, Apache, etc).
Francamente, merece la pena que lo probéis porque es realmente impresionante. Podéis acceder a una demo haciendo click aquí.