martes, 5 de noviembre de 2019

¿Como monitorear NiFi con Graphite?

Si bien NiFi o a través de Cloudera Manager tienes la oportunidad de monitorear el servicio, no siempre es suficiente en una organización. Una forma fácil de hacerlo, es a través del uso de Graphite y la parte visual puede ser a través de Grafana.

¿Cómo instalar Graphite en Linux?
La instalación de esta herramienta es bastante sencillo. Abajo una receta simple para instalar sobre CentOS 7.5 sobre el puerto 80.

# Install EPEL Repo
sudo yum install -y epel-release
# Update the OS
sudo yum -y update
# Install HTOP to monitor processes
sudo yum install -y htop
# Install Graphite and Carbon
sudo yum install -y graphite-web python-carbon
# Configuration - Change TimeZone and Security
sudo bash -c 'sed -i "s/Los_Angeles/Mexico_City/g" /etc/graphite-web/local_settings.py'
sudo bash -c 'sed -i "s/#TIME_ZONE/TIME_ZONE/g" /etc/graphite-web/local_settings.py'
sudo bash -c 'sed -i "s/Require local/Require all granted/g" /etc/httpd/conf.d/graphite-web.conf'
# Configuration - Initialize db
sudo /usr/lib/python2.7/site-packages/graphite/manage.py syncdb
# Restart and Check Port 80
sudo chown -R apache. /var/lib/graphite-web
sudo systemctl start carbon-cache
sudo systemctl enable carbon-cache
sudo systemctl restart httpd
view raw install.sh hosted with ❤ by GitHub

Habilitando el envio de estadisticas desde NiFi a Graphite

Lo primero que tenemos que agregar, es un servicio de GraphiteMetricReporterService en Controller Settings. Para entrar en Controller Settings tenemos que ir al menu de la hamburguesa en NiFi (Derecha arriba del menu).


Una vez alli, con el botón del signo +, agregamos nuestro servicio de GraphiteMetricReporterService

Para configurar este servicio, necesitamos el nombre del host donde estan corriendo Graphite y Carbon. El port default de Carbon, que es el proceso que escucha por las métricas para ser enviadas a Graphite, corre en el puerto 2003. Otra configuración importante, puede ser el prefijo que queremos dentro de Graphite. Las metricas se arman en formato de arbol, como una URL en Internet, separada por puntos. Entonces, este prefijo es la raíz de nuestro envio. En nuestro caso lo mantenemos simple, como NiFi.


Una vez que tenemos el controlador del servicio, ahora necesitamos configurar en el tab del Report Task. 


En nuestro caso, vamos a agregar la tarea de MetricReportingTask para enviar todas las estadísticas de la JVM (Java Virtual Machine) y las estadisticas de la Instancia de NiFi. 


Luego de configurar estos pasos, solo es habilitar los servicios y task para empezar a enviar las estadisticas. En nuestro Graphite, deberiamos ver algo parecido a esto en la consola.


 

No hay comentarios.:

Publicar un comentario