Grafana+Zabbix: Visualização do desempenho da linha de produção

Neste artigo, quero compartilhar minha experiência com sistemas de código aberto Zabbix e Grafana para visualizar o funcionamento das linhas de produção. As informações podem ser úteis para quem busca uma maneira rápida de exibir visualmente ou analisar os dados coletados em projetos de automação industrial ou IoT. O artigo não é um guia detalhado, mas sim uma proposta de sistema de monitoramento baseado em software livre para uma empresa de manufatura.

Ferramentas

Zabbix – temos usado há muito tempo para monitorar a infraestrutura de TI da fábrica. O sistema se mostrou tão conveniente e versátil que começamos a inserir dados das linhas de produção, sensores e controladores. Isso nos permitiu reunir todas as métricas em um só lugar, criar gráficos simples de consumo de recursos e desempenho dos equipamentos, mas sentíamos falta de análises e gráficos mais bonitos.

Grafana – é uma poderosa ferramenta para análise e visualização de dados. Um grande número de plugins permite coletar dados de várias fontes (zabbix, clickhouse, influxDB), processá-los em tempo real (calcular médias, somas, diferenças, etc.) e criar diversos gráficos (de linhas simples, medidores, tabelas a esquemas complexos).

Draw.io – um serviço que permite desenhar no editor online desde um simples diagrama de bloco até um plano de salas. Há muitos modelos prontos e objetos pré-desenhados. Os dados podem ser exportados para todos os principais formatos gráficos ou xml.

Reunindo tudo

Muitos artigos explicam como instalar e configurar o Grafana e o Zabbix, eu falarei sobre os principais pontos da configuração.

No Zabbix servidor cria-se um “nó da rede” (host), ao qual pertencem os “itens de dados” (item) com métricas de nossos sensores. É recomendável planejar os nomes dos nós e dos itens de dados com antecedência e torne-os o mais estruturados possível, uma vez que nos referiremos a eles no Grafana por meio de expressões regulares. Essa abordagem é conveniente, pois permite obter dados de um grupo de itens com uma única consulta.

Para configurar o Grafana, será necessário instalar plugins adicionais:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) – integração com o Zabbix
  • natel-discrete-panel – plugin para visualização discreta em um gráfico horizontal
  • pierosavi-imageit-panel – plugin para exibir dados sobre sua própria imagem
  • agenty-flowcharting-panel – um plugin para visualização dinâmica de diagramas do draw.io

A integração com o Zabbix é configurada no Grafana, no menu ConfigurationData sourcesZabbix. Você deve especificar o endereço da API do servidor Zabbix, que é http://zabbix.local/zabbix/api_jsonrpc.php, e o login com a senha para acesso. Se tudo estiver correto, ao salvar as configurações, aparecerá uma mensagem com o número da versão da API: zabbix API version: 5.0.1

Criando um Dashboard

É aqui que começa a mágica do Grafana e seus plugins.

Plugin natel-discrete-panel
Temos dados sobre o status dos motores nas linhas (funcionando = 1, não funcionando = 0). Com o gráfico discreto, podemos desenhar uma escala que indica: status do motor, quanto tempo ele funcionou em minutos/horas ou %, e com que frequência foi acionado.

Grafana+Zabbix: Visualização do desempenho da linha de produção
Visualização dos status dos motores

Na minha opinião, este é um dos melhores gráficos para visualizar o desempenho do equipamento. Fica imediatamente visível quanto tempo ele está inativo e em quais modos opera mais frequentemente. Podem haver muitos dados, e há possibilidade de agregação por intervalos, transformação pelos valores (se o valor for '1', exibir como 'ON')

Plugin pierosavi-imageit-panel

Imageit é conveniente de usar quando você já tem um diagrama ou plano do espaço desenhado, no qual deseja aplicar os dados dos sensores. Nas configurações de visualização, você deve especificar o endereço URL da imagem e adicionar os elementos de sensor necessários. O elemento aparece na imagem e pode ser posicionado onde desejar com o mouse.

Grafana+Zabbix: Visualização do desempenho da linha de produção
Diagrama do forno com métricas de temperatura e pressão

Plugin agenty-flowcharting-panel

Gostaria de falar mais sobre a criação de visualizações FlowCharting, pois é uma ferramenta incrivelmente funcional. Ela permite criar um fluxograma dinâmico, cujos elementos reagem aos valores das métricas (mudando de cor, posição, nome, etc.).

Obtenção de dados

A criação de qualquer elemento de visualização no Grafana começa com a consulta de dados de uma fonte, que neste caso é o Zabbix. Com as consultas, precisamos obter todas as métricas que desejamos utilizar no esquema. As descrições das métricas são os nomes dos elementos de dados no Zabbix; podemos especificar uma métrica única ou um conjunto com filtragem através de expressões regulares. No meu exemplo, o campo Item contém a expressão: "\/([^linha 1]|(presença)|(abobrinha)\)" — isso significa: selecionar todas as métricas cujo nome começa estritamente com "linha 1" ou contém a palavra "presença" ou contém a palavra "abobrinha".

Grafana+Zabbix: Visualização do desempenho da linha de produção
Exemplo de configuração de consulta de dados sobre os motores da primeira linha e a disponibilidade de matérias-primas.

Transformação de Dados

Os dados de origem podem nem sempre estar na forma em que precisamos apresentá-los. Por exemplo, temos dados a cada minuto sobre o peso do produto em um recipiente (kg), e precisamos exibir a taxa de preenchimento em t/h. Eu faço isso da seguinte maneira: pego os dados de peso e os convierto usando a função delta do Grafana, que calcula a diferença entre os valores da métrica; assim, o peso atual se transforma em kg/min. Em seguida, multiplico por 0,06 para converter o resultado em toneladas/hora. Como a métrica de peso é usada em várias consultas, eu atribuo um novo alias a ela (setAlias) e o utilizarei na regra de visualização.

Grafana+Zabbix: Visualização do desempenho da linha de produção
Exemplo de utilização do parâmetro delta e do multiplicador, e de renomeação da métrica na consulta.

Aqui está mais um exemplo de transformação de dados: eu precisava contar o número de misturas (início do ciclo = partida do motor). A métrica é calculada com base no status do motor "linha 1 — bomba de esvaziamento do tanque 1 (status)". A transformação: mudamos os dados da métrica original usando a função delta (diferença de valores), assim, na métrica haverá o valor “+1” para cada partida do motor, “-1” para a parada e “0” quando o motor não muda de status. Depois, removo todos os valores abaixo de 1 e somo-os. O resultado é o número de partidas do motor.

Grafana+Zabbix: Visualização do desempenho da linha de produção
Exemplo de transformação de dados do status atual para o número de partidas.

Agora sobre a própria visualização.

Nas configurações de exibição, há um botão "Edit Draw" que abre o editor onde podemos desenhar o esquema. Cada objeto do esquema possui seus próprios parâmetros. Por exemplo, se especificarmos as configurações de fonte no editor, elas serão aplicadas à visualização dos dados no Grafana.

Grafana+Zabbix: Visualização do desempenho da linha de produção
Assim se parece o editor no Draw.io

Depois de salvar o diagrama, ele aparecerá na Grafana e será possível criar regras para alterar os elementos.

Nos parâmetros () especificamos:

  • Options — define o nome da regra (Rule name), o nome ou pseudônimo da métrica cujos dados serão utilizados (Apply to metrics). O tipo de agregação de dados (Aggregation) impacta o resultado final da métrica, assim, Last — significa que o último valor será escolhido, avg — valor médio durante o período selecionado no canto superior direito.
  • Thresholds — parâmetro de valores limites, descreve a lógica de aplicação da cor, ou seja, a cor escolhida será aplicada aos elementos no diagrama com base nos dados da métrica. No meu exemplo, com valor de métrica "0" — status "Ok" a cor será verde, com valor ">1" o status será Critical e a cor será vermelha.
  • Color/Tooltip Mappings e Label/Text Mappings — seleção do elemento do diagrama e o cenário de seu comportamento. No primeiro cenário, o objeto será colorido, no segundo – haverá um texto com dados da métrica. Para selecionar o objeto no diagrama, é necessário clicar no ícone de cadeado e clicar no diagrama.

Grafana+Zabbix: Visualização do desempenho da linha de produção
Neste exemplo, eu estou colorindo a bomba e sua seta de vermelho se ela estiver operando e de verde se não estiver.

Com o plugin flowcharting, consegui desenhar o diagrama de toda a linha, onde:

  1. a cor dos agregados muda conforme seu status
  2. há sinalização de ausência de produto nos tanques
  3. é exibida a configuração das frequências dos motores
  4. a velocidade de enchimento/descarregamento do primeiro tanque
  5. é contado o número de ciclos de operação da linha (misturas)

Grafana+Zabbix: Visualização do desempenho da linha de produção
Visualização do funcionamento da linha de produção

Resultado

O mais difícil para mim foi obter dados dos controladores. Graças à versatilidade do Zabbix em termos de captura de dados e à flexibilidade do Grafana através de plugins, foram necessários apenas alguns dias para criar uma tela de monitoramento abrangente da linha de produção. A visualização possibilitou a visualização de gráficos e estatísticas de estados, além de fácil acesso via web para todos os interessados – tudo isso permitiu identificar rapidamente gargalos e o uso ineficiente de agregados.

Conclusão

Eu gostei muito da combinação Zabbix+Grafana e recomendo que você preste atenção, se precisa processar rapidamente dados de controladores ou sensores sem programação ou a implementação de produtos comerciais complexos. Sem dúvida, isso não substitui sistemas SCADA profissionais, mas é suficiente como uma ferramenta de monitoramento centralizado de toda a produção.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster