Grafana+Zabbix: Visualización de la línea de producción

En este artículo, quiero compartir mi experiencia en el uso de los sistemas Zabbix y Grafana de código abierto para visualizar el trabajo de las líneas de producción. La información puede ser útil para aquellos que buscan una forma rápida de mostrar o analizar visualmente los datos recopilados en proyectos de automatización industrial o IoT. El artículo no es una guía detallada, sino más bien un concepto de un sistema de monitoreo basado en software de código abierto para una empresa manufacturera.

Kit de herramientas

Zabbix – Lo hemos estado usando durante mucho tiempo para monitorear la infraestructura de TI de la planta. El sistema resultó ser tan conveniente y versátil que comenzamos a ingresar datos de líneas de producción, sensores y controladores en él. Esto nos permitió recopilar todos los datos de métricas en un solo lugar, hacer gráficos simples de consumo de recursos y rendimiento del equipo, pero realmente carecíamos de análisis y gráficos hermosos.

Grafana es una poderosa herramienta para análisis y visualización de datos. Una gran cantidad de complementos le permiten tomar datos de varias fuentes (zabbix, clickhouse, influxDB), procesarlos sobre la marcha (calcular el promedio, la suma, la diferencia, etc.) y dibujar todo tipo de gráficos (desde líneas simples, velocímetros , tablas a diagramas complejos).

Draw.io - un servicio que le permite dibujar en un editor en línea desde un diagrama de bloques simple hasta un plano de planta. Hay muchas plantillas listas para usar y objetos dibujados. Los datos se pueden exportar a todos los principales formatos gráficos o xml.

Poniendo todo junto

Se han escrito muchos artículos sobre cómo instalar y configurar Grafana y Zabbix, hablaré sobre los puntos principales de la configuración.

Se crea un "nodo de red" (host) en el servidor Zabbix, que poseerá "elementos de datos" (elemento) con métricas de nuestros sensores. Es recomendable pensar previamente en los nombres de los nodos y elementos de datos y hacerlos lo más estructurados posible, ya que accederemos a ellos desde graphana a través de expresiones regulares. Este enfoque es conveniente porque puede obtener datos de un grupo de elementos con una sola solicitud.

Para configurar grafana, deberá instalar complementos adicionales:

  • Zabbix de Alexander Zobnin (alexanderzobnin-zabbix-app) - integración con zabbix
  • natel-discrete-panel - complemento para visualización discreta en un gráfico horizontal
  • pierosavi-imageit-panel: complemento para mostrar datos en la parte superior de su imagen
  • agenty-flowcharting-panel: complemento para la visualización dinámica de diagramas de draw.io

La integración con el propio Zabbix se configura en grafana, elemento del menú ConfiguraciónFuentes de datosZabbix. Allí debe especificar la dirección api del servidor zabbix, tengo esto http://zabbix.local/zabbix/api_jsonrpc.php, y un inicio de sesión con una contraseña de acceso. Si todo se hace correctamente, al guardar la configuración, aparecerá un mensaje con el número de versión de api: zabbix API version: 5.0.1

Creación de un tablero

Aquí es donde comienza la magia misma de grafana y sus complementos.

Complemento de panel discreto de Natel
Tenemos datos sobre los estados de los motores en las líneas (funcionando = 1, no funcionando = 0). Usando el gráfico discreto, podemos dibujar una escala que mostrará: el estado del motor, cuántos minutos/horas o % ha funcionado y con qué frecuencia se ha encendido.

Grafana+Zabbix: Visualización de la línea de producción
Visualización del estado del motor

En mi opinión, este es uno de los mejores gráficos para visualizar el rendimiento del hardware. Puede ver de inmediato cuánto tiempo está inactivo, en qué modos funciona con más frecuencia. Puede haber muchos datos, es posible agregarlos por rangos, convertir por valores (si el valor es "1", luego se muestra como "ON")

Complemento pierosavi-imageit-panel

Imageit es conveniente de usar cuando ya tiene un diagrama o plano dibujado de la habitación en la que desea aplicar los datos de los sensores. En la configuración de visualización, debe especificar la dirección URL de la imagen y agregar los elementos del sensor que necesita. El elemento aparece en la imagen y se puede colocar en el lugar correcto con el mouse.

Grafana+Zabbix: Visualización de la línea de producción
Esquema del horno con métricas de temperatura y presión.

Complemento del panel de diagramas de flujo de agentes

Me gustaría contarles más sobre la creación de una visualización de FlowCharting, ya que es una herramienta increíblemente funcional. Te permite hacer una mnemotécnica dinámica, cuyos elementos responderán a los valores de las métricas (cambio de color, posición, nombre, etc.).

Obtener datos

La creación de cualquier elemento de visualización en grafana comienza con una solicitud de datos a la fuente, en nuestro caso es zabbix. Usando consultas, necesitamos obtener todas las métricas que queremos usar en el diagrama. Los detalles de la métrica son los nombres de los elementos de datos en Zabbix, puede especificar una métrica separada y un conjunto con filtrado a través de una expresión regular. En mi ejemplo, el campo Elemento contiene la expresión: "/(^línea 1)|(disponibilidad)|(calabacín)/" - esto significa: seleccione todas las métricas cuyo nombre comience estrictamente con "línea 1" o contenga la palabra "disponibilidad " o contiene la palabra "calabacín"

Grafana+Zabbix: Visualización de la línea de producción
Un ejemplo de configuración de una solicitud de datos sobre los motores de primera línea y la disponibilidad de materias primas.

Conversión de datos

Es posible que los datos de origen no siempre estén en la forma en que necesitamos mostrarlos. Por ejemplo, tenemos datos minuto a minuto sobre el peso de un producto en un contenedor (kg) y queremos mostrar la tasa de llenado en t/h. Lo hago de esta manera: tomo los datos del peso y los convierto con la función delta graphana, que calcula la diferencia entre los valores métricos, por lo que el peso actual se convierte a kg/min. Luego multiplico por 0.06 para llevar el resultado a toneladas/hora. Dado que la métrica de peso se usa en varias consultas, le daré un nuevo alias (setAlias) y lo usaré en la regla de representación.

Grafana+Zabbix: Visualización de la línea de producción
Un ejemplo del uso del parámetro delta y un multiplicador y el cambio de nombre de una métrica en una consulta

Aquí hay otro ejemplo de transformación de datos: necesitaba calcular la cantidad de lotes (inicio de ciclo = inicio del motor). La métrica se calcula en función del estado del motor "línea 1 - bomba del tanque 1 (estado)". Transformación: cambiamos los datos de la métrica original con la función delta (diferencia de valor), por lo que la métrica tendrá el valor "+1" para arrancar el motor, "-1" para parar y "0" cuando el motor no. cambiar su estado. Luego elimino todos los valores menores a 1 y los sumo. El resultado es el número de arranques del motor.

Grafana+Zabbix: Visualización de la línea de producción
Ejemplo de conversión de datos del estado actual al número de inicios

Ahora sobre la visualización en sí

En la configuración de visualización hay un botón "Editar dibujo", inicia un editor en el que puede dibujar un diagrama. Cada objeto en el diagrama tiene sus propios parámetros. Por ejemplo, si especifica la configuración de fuentes en el editor, se aplicarán a la visualización de datos en grafana.

Grafana+Zabbix: Visualización de la línea de producción
Así es como se ve el editor en Draw.io

Después de guardar el esquema, aparecerá en Graphana y será posible crear reglas para cambiar elementos.

En los parámetros () especificamos:

  • Opciones: establezca el nombre de la regla (Nombre de la regla), el nombre o alias de la métrica cuyos datos se utilizarán (Aplicar a métricas). El tipo de agregación de datos (Agregación) afecta el resultado final de la métrica, por lo que Último significa que se seleccionará el último valor, avg significa el valor promedio para el período seleccionado en la esquina superior derecha.
  • Umbrales: parámetro de valor de umbral, describe la lógica de la aplicación del color, es decir, el color seleccionado se aplicará a los elementos del diagrama, según los datos métricos. En mi ejemplo, si el valor de la métrica es “0”, el estado será “Ok”, el color será verde, si el valor es “>1”, el estado será Crítico y el color será rojo.
  • Asignaciones de color/información sobre herramientas” y “Asignaciones de etiquetas/texto”: selección de un elemento de circuito y su escenario de comportamiento. En el primer escenario, el objeto se pintará encima, en el segundo, tendrá texto con datos de la métrica. Para seleccionar un objeto en el diagrama, debe presionar el signo del circuito y hacer clic en el diagrama con el mouse.

Grafana+Zabbix: Visualización de la línea de producción
En este ejemplo, pinto la bomba y su flecha de rojo si funciona y de verde si no.

Con la ayuda del complemento de diagrama de flujo, logré dibujar un diagrama de toda la línea, en el que:

  1. el color de los agregados cambia según su estado
  2. hay alarma por falta de producto en los contenedores
  3. se muestra el ajuste de frecuencia del motor
  4. tasa de llenado/descarga del primer tanque
  5. se cuenta el número de ciclos de operación de la línea (lote)

Grafana+Zabbix: Visualización de la línea de producción
Visualización de la línea de producción

resultado

La parte más difícil para mí fue obtener los datos de los controladores. Gracias a la versatilidad de Zabbix en términos de adquisición de datos y la flexibilidad de Grafana a través de complementos, tomó solo un par de días crear una pantalla integral para monitorear la línea de producción. La visualización posibilitó la visualización de gráficos y estadísticas de estado, además de un fácil acceso a través de la web para cualquier interesado, todo esto permitió identificar rápidamente los cuellos de botella y el uso ineficiente de los agregados.

Conclusión

Me gustó mucho el paquete Zabbix + Grafana y recomiendo prestarle atención si necesita procesar rápidamente datos de controladores o sensores sin programar o implementar productos comerciales complejos. Por supuesto, esto no reemplazará a los sistemas SCADA profesionales, pero será suficiente como herramienta para el monitoreo centralizado de toda la producción.

Fuente: habr.com

Añadir un comentario