Grafana+Zabbix: Visualización da liña de produción

Neste artigo, quero compartir a miña experiencia no uso de sistemas Zabbix e Grafana de código aberto para visualizar o traballo das liñas de produción. A información pode ser útil para aqueles que buscan unha forma rápida de mostrar ou analizar visualmente os datos recollidos en proxectos de automatización industrial ou IoT. O artigo non é unha guía detallada, senón un concepto de sistema de monitorización baseado en software de código aberto para unha empresa de manufactura.

Kit de ferramentas

Zabbix – usámolo desde hai moito tempo para supervisar a infraestrutura informática da planta. O sistema resultou ser tan cómodo e versátil que comezamos a introducir datos das liñas de produción, sensores e controladores. Isto permitiunos recoller todos os datos de métricas nun só lugar, facer gráficos sinxelos de consumo de recursos e rendemento dos equipos, pero realmente carecíamos de análises e gráficos bonitos.

grafana é unha poderosa ferramenta de análise e visualización de datos. Unha gran cantidade de complementos permítenche tomar datos de diversas fontes (zabbix, clickhouse, influxDB), procesalas sobre a marcha (calcular a media, suma, diferenza, etc.) e debuxar todo tipo de gráficos (de liñas simples, velocímetros). , táboas a diagramas complexos ).

Debuxar.io - un servizo que che permite debuxar nun editor en liña desde un simple diagrama de bloques ata un plano. Hai moitos modelos preparados e obxectos debuxados. Os datos pódense exportar a todos os principais formatos gráficos ou xml.

Poñer todo isto en conxunto

Escribíronse moitos artigos sobre como instalar e configurar Grafana e Zabbix, falarei dos puntos principais da configuración.

No servidor Zabbix créase un "nodo de rede" (anfitrión), que será propietario de "elementos de datos" (elemento) con métricas dos nosos sensores. É aconsellable pensar previamente nos nomes dos nodos e elementos de datos e facelos o máis estruturados posible, xa que accederemos a eles desde graphana a través de expresións regulares. Este enfoque é conveniente porque pode obter datos dun grupo de elementos cunha única solicitude.

Para configurar grafana, terás que instalar complementos adicionais:

  • Zabbix de Alexander Zobnin (alexanderzobnin-zabbix-app) - integración con zabbix
  • natel-discrete-panel - complemento para visualización discreta nun gráfico horizontal
  • pierosavi-imageit-panel - complemento para mostrar datos enriba da túa imaxe
  • agenty-flowcharting-panel: complemento para a visualización dinámica de diagramas de draw.io

A integración co propio Zabbix está configurada en grafana, elemento de menú ConfigurationData sourcesZabbix. Alí cómpre especificar o enderezo da API do servidor zabbix, teño isto http://zabbix.local/zabbix/api_jsonrpc.php, e un inicio de sesión cun contrasinal para acceder. Se todo está feito correctamente, ao gardar a configuración, aparecerá unha mensaxe co número de versión da API: zabbix Versión da API: 5.0.1

Creando un panel de control

Aquí é onde comeza a propia maxia de grafana e os seus complementos.

complemento natel-discrete-panel
Temos datos sobre o estado dos motores nas liñas (funcionando = 1, non funcionando =0). Usando o gráfico discreto, podemos debuxar unha escala que mostrará: o estado do motor, cantos minutos/horas ou % funcionou e con que frecuencia se iniciou.

Grafana+Zabbix: Visualización da liña de produción
Visualización do estado do motor

Na miña opinión, este é un dos mellores gráficos para visualizar o rendemento do hardware. Podes ver inmediatamente canto tempo está inactivo, en que modos funciona con máis frecuencia. Pode haber moitos datos, é posible agregalos por intervalos, convertelos por valores (se o valor é "1", entón móstrase como "ON")

complemento pierosavi-imageit-panel

Imaxe é conveniente usar cando xa tes un diagrama ou plano debuxado da sala na que queres aplicar os datos dos sensores. Na configuración de visualización, cómpre especificar o enderezo URL da imaxe e engadir os elementos sensores que necesita. O elemento aparece na imaxe e pódese colocar no lugar correcto co rato.

Grafana+Zabbix: Visualización da liña de produción
Esquema do forno con métricas de temperatura e presión

Complemento agenty-flowcharting-panel

Gustaríame contarche máis sobre a creación dunha visualización de diagramas de fluxo, xa que é unha ferramenta incriblemente funcional. Permítelle facer unha mnemotécnica dinámica, cuxos elementos responderán aos valores das métricas (cambiar cor, posición, nome, etc.).

Obtención de datos

A creación de calquera elemento de visualización en grafana comeza cunha solicitude de datos da fonte, no noso caso é zabbix. Usando consultas, necesitamos obter todas as métricas que queremos usar no diagrama. Os detalles das métricas son os nomes dos elementos de datos en Zabbix. Podes especificar unha métrica separada e un conxunto con filtrado a través dunha expresión regular. No meu exemplo, o campo Elemento contén a expresión: "/(^liña 1)|(dispoñibilidade)|(cabaciño)/" - isto significa: seleccione todas as métricas cuxo nome comece estrictamente por "liña 1" ou conteña a palabra "dispoñibilidade". " ou contén a palabra "cabacín"

Grafana+Zabbix: Visualización da liña de produción
Un exemplo de configuración dunha solicitude de datos sobre os motores de primeira liña e a dispoñibilidade de materias primas

Conversión de datos

Os datos de orixe poden non estar sempre na forma na que necesitamos mostralos. Por exemplo, temos datos minuto a minuto sobre o peso dun produto nun recipiente (kg) e queremos mostrar a taxa de enchido en t/h. Fágoo deste xeito: tomo os datos de peso e convértoos coa función delta graphana, que calcula a diferenza entre os valores métricos, polo que o peso actual convértese a kg/min. Despois multiplico por 0.06 para levar o resultado a toneladas/hora. Dado que a métrica de peso utilízase en varias consultas, darei un novo alias (setAlias) e usarei na regra de renderizado.

Grafana+Zabbix: Visualización da liña de produción
Un exemplo de uso do parámetro delta e dun multiplicador e cambio de nome dunha métrica nunha consulta

Aquí tes outro exemplo de transformación de datos: necesitaba calcular o número de lotes (inicio do ciclo = arranque do motor). A métrica calcúlase en función do estado do motor "liña 1 - bomba do tanque 1 (estado)". Transformación: cambiamos os datos da métrica orixinal coa función delta (diferenza de valor), polo que a métrica terá o valor "+1" para iniciar o motor, "-1" para parar e "0" cando o motor non cambiar o seu estado. A continuación, elimine todos os valores inferiores a 1 e os resumo. O resultado é o número de arranques do motor.

Grafana+Zabbix: Visualización da liña de produción
Exemplo de conversión de datos do estado actual ao número de inicios

Agora sobre a propia visualización

Na configuración de visualización hai un botón "Editar Debuxo", abre un editor no que podes debuxar un diagrama. Cada obxecto do diagrama ten os seus propios parámetros. Por exemplo, se especifica a configuración da fonte no editor, aplicaranse á visualización de datos en grafana.

Grafana+Zabbix: Visualización da liña de produción
Este é o aspecto do editor en Draw.io

Despois de gardar o esquema, aparecerá na graphana e será posible crear regras para cambiar elementos.

Nos parámetros () especificamos:

  • Opcións: define o nome da regra (nome da regra), o nome ou o alias da métrica cuxos datos se utilizarán (Aplicar ás métricas). O tipo de agregación de datos (Agregación) afecta o resultado final da métrica, polo que Last significa que se seleccionará o último valor, avg significa o valor medio para o período seleccionado na esquina superior dereita.
  • Limiares - parámetro de valores de limiar, describe a lóxica da aplicación da cor, é dicir, a cor seleccionada aplicarase aos elementos do diagrama, dependendo dos datos métricos. No meu exemplo, se o valor da métrica é "0", o estado será "Ok", a cor será verde, se o valor é ">1", o estado será Crítico e a cor vermella.
  • Asignacións de cores/información sobre ferramentas” e “Asignacións de etiquetas/texto”: selección dun elemento de circuíto e o seu escenario de comportamento. No primeiro escenario, o obxecto pintarase, no segundo, terá texto con datos da métrica. Para seleccionar un obxecto no diagrama, cómpre premer o sinal do circuíto e premer no diagrama co rato.

Grafana+Zabbix: Visualización da liña de produción
Neste exemplo, estou pintando a bomba e a súa frecha en vermello se está a funcionar e en verde se non.

Coa axuda do complemento de diagramas de fluxo, conseguín debuxar un diagrama de toda a liña, no que:

  1. a cor dos agregados cambia segundo o seu estado
  2. hai unha alarma pola falta de produto nos envases
  3. móstrase a configuración da frecuencia do motor
  4. taxa de enchido/descarga do primeiro tanque
  5. cóntase o número de ciclos de operación de liña (lote).

Grafana+Zabbix: Visualización da liña de produción
Visualización da liña de produción

Resultado

O máis difícil para min foi obter os datos dos controladores. Grazas á versatilidade de Zabbix en canto á adquisición de datos e á flexibilidade de Grafana a través de complementos, só levou un par de días crear unha pantalla completa para supervisar a liña de produción. A visualización permitiu ver gráficos e estatísticas de estado, ademais de acceder facilmente a través da web a calquera persoa interesada; todo isto permitiu identificar rapidamente os pescozos de botella e o uso ineficiente dos agregados.

Conclusión

Gustoume moito o paquete Zabbix + Grafana e recomendo que lle prestes atención se necesitas procesar rapidamente os datos de controladores ou sensores sen programar nin implementar produtos comerciais complexos. Por suposto, isto non substituirá os sistemas SCADA profesionais, pero será suficiente como ferramenta para o seguimento centralizado de toda a produción.

Fonte: www.habr.com

Engadir un comentario