Netdata
Netdata es un excelente monitor de recursos de sistema. Según Wikipedia sirve para " visualizar y monitorear métricas en tiempo real, optimizada para acumular todo tipo de datos, como uso de CPU, actividad de disco, consultas SQL, visitas a un sitio web, etc.".
Sin embargo a veces puede ser muy engorroso instalarlo o eliminarlo de nuestro sistema. A continuación los métodos más comunes:
Instalación del canal nightly:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Instalación del canal stable:
bash <(curl -Ss https://my-netdata.io/kickstart.sh) --stable-channel
Eliminar este tipo de instalación:
sudo /usr/libexec/netdata/netdata-uninstaller.sh --force --yes
Instalación apt-get
Para los amantes de
apt-get
, lamentamos informarle que, a pesar de que netdata se encuentra en los repositorios oficiales de Ubuntu/Debian, la versión es antigua y con muchos errores, por tanto no se recomienda y si ya la tienen instalada, deben eliminarla, así como cualquier rastro de sus carpetas y archivos: sudo apt -y purge netdata netdata-core sudo rm -rf /var/log/netdata /etc/init.d/netdata /etc/netdata /var/lib/netdata /usr/libexec/netdata /usr/sbin/netdata /usr/share/netdata /usr/share/doc/netdata* /var/cache/netdata /var/lib/dpkg/info/netdata* /usr/share/lintian/overrides/netdata* /var/crash/_usr_sbin_netdata* /var/crash/netdata* /etc/logrotate.d/netdata /etc/apt/sources.list.d/netdata_netdata.list &> /dev/null sudo apt clean && sudo apt autoclean && sudo apt autoremove && sudo sync && sudo updatedbY actualizar su sistema:
sudo apt update && sudo apt upgrade
Si no la tienen instalada o la tenían y ya la eliminaron, instalen la última versión:
curl -s https://packagecloud.io/install/repositories/netdata/netdata/script.deb.sh | sudo bash sudo apt -y install netdata
Es mejor asegurarse de que se crearon correctamente los archivos
.log
, con los permisos correspondientes: if [ ! -d /var/log/netdata ]; then sudo mkdir -p /var/log/netdata && sudo touch /var/log/netdata/{access,error,debug}.log && sudo chown -R root:root /var/log/netdata; fi
Al finalizar la instalación, verificamos que el servicio esté
active (running)
, sin errores: sudo systemctl status netdata netdata.service - Real time performance monitoring Loaded: loaded (/lib/systemd/system/netdata.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2021-06-23 10:13:41 -05; 6s ago Main PID: 1485503 (netdata) Tasks: 56 (limit: 18941) Memory: 70.7M CGroup: /system.slice/netdata.service ├─1485503 /usr/sbin/netdata -D ├─1485513 /usr/sbin/netdata --special-spawn-server ├─1485705 /usr/libexec/netdata/plugins.d/go.d.plugin 1 ├─1485713 /usr/libexec/netdata/plugins.d/nfacct.plugin 1 ├─1485719 /usr/libexec/netdata/plugins.d/apps.plugin 1 ├─1485720 /usr/libexec/netdata/plugins.d/ebpf.plugin 1 ├─1485721 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1 └─1485728 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1 jun 23 10:13:41 server netdata[1485503]: bla bla bla...O más sencillo:
sudo systemctl | grep -i netdata loaded active running Real time performance monitoring
Y verificamos el puerto tcp
19999
(la salida puede variar en su PC): sudo netstat -nat | grep 19999 # or sudo netstat -lnp | grep 19999 # or sudo ss -tulwn | grep 19999 # or sudo lsof -i:19999 tcp 0 0 127.0.1.1:19999 0.0.0.0:* ESCUCHAR tcp 0 0 127.0.0.1:19999 0.0.0.0:* ESCUCHAR tcp 0 0 127.0.0.1:19999 127.0.0.1:56114 ESTABLECIDO tcp 0 0 127.0.0.1:56114 127.0.0.1:19999 ESTABLECIDOAccediendo por su navegador (
localhost
o 127.0.0.1
):
http://localhost:19999/
Nota: Tenga en cuenta que netdata por defecto no trae activado conexiones TLS (https) por que para esto es necesario un certificado. Para mayor información consulte AQUÍ.
Si quiere reemplazar
localhost
por su IP (no recomendado), edite el archivo:
/etc/netdata/netdata.confY reemplace la línea
localhost
por su IP:
bind to = localhostY reiniciamos
sudo systemctl restart netdata # o /etc/init.d/netdata {start|stop|status|restart|force-reload} sudo /etc/init.d/netdata restart
En caso de que no pueda iniciarlo/detenerlo con
systemctl
o con el script de init.d
, o suceda alguna cosa rara que traiga como resultado la caída de netstat, puede iniciarlo manualmente (Para mayor información sobre el demonio pulse AQUÍ):
Nota: Tenga en cuenta que, en algunos escenarios, netdata deja procesos abiertos, incluso después de cerrado, tales como:
root 141936 4.0 0.0 453868 3572 ? Sl 08:14 0:02 /usr/libexec/netdata/plugins.d/ebpf.plugin 1 netdata 141943 21.5 0.0 70220 25432 ? Sl 08:14 0:00 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1
# cerrando netdata sudo killall -s SIGTERM netdata # o for pid in $(ps -ef | grep "netdata" | awk '{print $2}'); do sudo kill -9 $pid; done &> /dev/null # o sudo pkill -f netdata # cerrando el puerto TCP 19999 sudo kill $(lsof -t -i:19999) &> /dev/null # Verifique que no queden procesos abiertos: ps aux | grep netdata # Y luego inicia netdata con: sudo /usr/sbin/netdata # o sudo netdata
Si no quiere hacerlo manualmente, puede ejecutar el siguiente script:
#!/bin/bash l1=("Set process name" "Establezca el nombre del proceso") l2=("e.g." "ej.") l3=("There are no records of:" "No hay registros de:") l4=("Done" "Terminado") test "${LANG:0:2}" == "en" en=$? clear read -p "${l1[${en}]} (${l2[${en}]} netdata): " PS f() { ps ax | grep "$1" | grep -v grep | awk '{print $1}' | xargs kill -9 &> /dev/null; } f $PS if [ $? -gt 0 ]; then echo "${l3[${en}]}" $PS else echo "${l4[${en}]}" fi
O algo mejor. Creamos un script "vigilante" (con privilegios, en
init.d
y con permisos chmod +x
), que en caso de no detectar netdata, mata cualquier proceso relacionado (si existe), inicia el servicio y deja constancia en syslog
: #!/bin/bash # Netdata Alert DATE=`date +%d/%m/%Y" "%H:%M:%S` SLEEP_TIME="20" if [[ `ps -A | grep netdata` != "" ]];then echo -e "\nONLINE" else echo -e "\n" /etc/init.d/netdata stop &> /dev/null pkill -f netdata &> /dev/null sleep ${SLEEP_TIME} /etc/init.d/netdata start echo "NetData start: $DATE" >> /var/log/syslog fi
Y lo programamos en el crontab para que se ejecute regularmente (por ejemplo cada hora):
@hourly /etc/init.d/netdataalert.sh
Post a Comment