Instalación de netdata en CentOS 7
Netdata es una herramienta compatible con Linux, FreeBSD y MacOS que se utiliza para monitorear el estado y el rendimiento distribuido en tiempo real de los sistemas. Netdata es una de las mejores herramientas de monitoreo en tiempo real que funciona con máquinas virtuales, servidores físicos, contenedores y dispositivos IOT. Utiliza modernos paneles web interactivos.
Algunas buenas características de netdata en su versión reciente incluyen:
- Escala automática de unidades de gráficos
- Listas de acceso IP para filtrar el acceso a netdata
- Monitoreo mejorado de máquinas virtuales y contenedores
- Marcos de tiempo resaltados en todos los gráficos del panel
- Instantáneas del panel, para cargar/guardar períodos de tiempo seleccionados
- Conversión de zona horaria en el panel para permitir comparar gráficos con registros del servidor
- Cero mantenimiento, configuración y dependencias.
- Es fácilmente personalizable, extensible e integrable.
- Escala al infinito
- Se admiten back-ends de series temporales: puede archivar sus métricas en bases de datos de documentos Graphite, opentsdb, Prometheus, JSON, con el mismo o menor detalle.
Instalación de Netdata en CentOS 7
Primero, comience instalando las dependencias faltantes que requiere netdata. Esto se hace corriendo.
# yum -y install curl git
# curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh'
Luego ejecute el script descargado.
# bash install-required-packages.sh
Esto descargará una cantidad de paquetes que necesita netdata. Una vez finalizado, puede proceder a clonar el código fuente de netdata desde Github.
# git clone https://github.com/firehol/netdata.git --depth=1
Cloning into 'netdata'...
remote: Counting objects: 736, done.
remote: Compressing objects: 100% (676/676), done.
remote: Total 736 (delta 99), reused 265 (delta 43), pack-reused 0
Receiving objects: 100% (736/736), 2.54 MiB | 149.00 KiB/s, done.
Resolving deltas: 100% (99/99), done.
Luego inicie la instalación de netdata ejecutando el script netdata-installer.sh.
# cd netdata/
# ./netdata-installer.sh
^
|.-. .-. .-. .-. . netdata
| '-' '-' '-' '-' real-time performance monitoring, done right!
+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->
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 in /etc/netdata
- web files in /usr/share/netdata
- plugins in /usr/libexec/netdata
- cache files in /var/cache/netdata
- db files in /var/lib/netdata
- log files in /var/log/netdata
- pid file at /var/run/netdata.pid
- logrotate file at /etc/logrotate.d/netdata
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 >
Para iniciar el proceso de instalación, presione
Después de una instalación exitosa, debería recibir un mensaje como el siguiente:
.....
Uninstall script generated: ./netdata-uninstaller.sh
Update script generated : ./netdata-updater.sh
netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything when it can update netdata).
Run this to automatically check and install netdata updates once per day:
sudo ln -s /root/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater
--- We are done! ---
^
|.-. .-. .-. .-. .-. . netdata .-. .-
| '-' '-' '-' '-' '-' is installed and running now! -' '-'
+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->
enjoy real-time performance and health monitoring...
Configurar la deduplicación de memoria
Si tiene un desduplicador de memoria del kernel (llamado Kernel Same-page Merging o KSM) disponible, pero no está habilitado actualmente. Debes habilitarlo ejecutando los comandos:
echo 1 >/sys/kernel/mm/ksm/run
echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs
Reducirá la utilización de la memoria de netdata en un 40-60 %.
Para iniciar netdata ejecute:
# systemctl start netdata
# systemctl status netdata
Abrir puerto netdata en firewalld
Ahora que hemos confirmado que el servicio netdata se está ejecutando, abra su puerto de servicio en el firewall para poder acceder a él desde afuera. Utilice los comandos:
# firewall-cmd --add-port=19999/tcp --permanent
# firewall-cmd --reload
Configurar SELinux
Puede optar por desactivar SELinux, ponerlo en modo permisivo o configurar el puerto 19999 para que funcione con SELinux. Para poner SELinux en modo permisivo, ejecute
# setenforce 0
# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
# cat /etc/selinux/config | grep -v ^# | grep SELINUX=
SELINUX=permissive
Para deshabilitar SELinux, cambie la línea a SELINUX=disabled y reinicie el servidor.
Si SELinux está configurado para hacer cumplir. Es posible que necesites instalar la herramienta semanage para esto:
# yum -y install policycoreutils-python
Ahora puede utilizar la herramienta de línea de comandos semanage para etiquetar el puerto netdata.
# semanage port -a -t ssh_port_t -p tcp 19999
# systemctl restart netdata
# systemctl status netdata
● netdata.service - Real time performance monitoring
Loaded: loaded (/etc/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-02-21 11:14:43 EAT; 3h 43min ago
Process: 8600 ExecStartPre=/bin/chown -R netdata:netdata /var/cache/netdata (code=exited, status=0/SUCCESS)
Process: 8598 ExecStartPre=/bin/mkdir -p /var/cache/netdata (code=exited, status=0/SUCCESS)
Main PID: 8603 (netdata)
CGroup: /system.slice/netdata.service
├─ 8603 /usr/sbin/netdata -P /run/netdata/netdata.pid -D
├─ 8639 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.pl...
├─ 8640 /usr/libexec/netdata/plugins.d/apps.plugin 1
└─23394 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1
Visita la dirección IP y el puerto de tu servidor 19999. Deberías tener netdata ejecutándose.