Monitorizar o seu gato com Zabbix

Neste artigo de blog, será instruído sobre como estabelecer a monitorização para o seu Litter Robot 3. Existem scripts notáveis disponíveis na comunidade para se conectar ao Litter Robot através de uma API caseira, os quais empregaremos em conjunto com alguns scripts em Python e o Zabbix.

A presença generalizada da tecnologia é notória, estendendo-se desde as ruas até aos nossos locais de trabalho e lares. Esta disseminação tecnológica abrange desde a iluminação até aos eletrodomésticos, câmaras e outros dispositivos considerados “inteligentes”. Apesar da minha reserva inicial em relação a estas automações domiciliares, percebo que, por vezes, os engenheiros de TI sentem a necessidade de construir e automatizar de forma progressiva. Neste contexto, a minha residência também passou por um discreto processo de atualização para integrar a automação residencial, com a implementação do Zabbix para monitorizar todos os dispositivos “inteligentes”.

Um elemento crucial na nossa residência é a caixa de areia inteligente, cuja função primordial consiste em manter a higiene da caixa e contribuir para um ambiente agradável na casa. Ademais, esta proporciona informações valiosas sobre os padrões comportamentais “higiénicos” dos felinos residentes.

Então, vamos integrar o Zabbix! Apesar de o Litter Robot ter uma aplicação onde posso ver a utilização, quero receber alertas do Zabbix se a utilização do Litter Robot ultrapassar um determinado limiar, alertando-me antecipadamente se surgirem problemas. Vamos configurar tudo.

Como fazer: Configuração do Script

Para tornar tudo isto possível, precisaremos de obter algumas informações do nosso Litter Robot ou Litter Robots, caso tenhamos mais do que um na nossa conta. Não há uma API oficial documentada disponível para o Litter Robot, mas existe uma forma de obter informações do dispositivo ao conectar aos serviços Whisker. Para facilitar, vamos utilizar uma biblioteca Python feita pela comunidade para estabelecer a conexão e executar algumas funções:

GitHub – natekspencer/pylitterbot: Python package for controlling a Whisker connected self-cleaning litter boxes and feeders
Python package for controlling a Whisker connected self-cleaning litter boxes and feeders – GitHub – natekspencer/pylitterbot: Python package for controlling a Whisker connected self-cleaning litter boxes and feeders
github.com

Esta biblioteca contém várias funções que podemos utilizar para obter informações da caixa de areia, mas também para efetuar alterações nela:

  • refresh()
  • start_cleaning()
  • reset_settings()
  • set_panel_lockout()
  • set_night_light()
  • set_power_status()
  • set_sleep_mode()
  • set_wait_time()
  • set_name()
  • reset_waste_drawer()
  • get_activity_history()
  • get_insight()

Utilizando esta biblioteca, disponibilizamos alguns scripts na página do Github abaixo:

GitHub – OpensourceICTSolutions/zabbix-litterrobot: This repository contains some files, scripts and a Zabbix template which enables a user to start monitoring a Litter-Robot by Whisker.
This repository contains some files, scripts and a Zabbix template which enables a user to start monitoring a Litter-Robot by Whisker. – GitHub – OpensourceICTSolutions/zabbix-litterrobot: This repository contains some files, scripts and a Zabbix template which enables a user to start monitoring a Litter-Robot by Whisker.
github.com

Faça login no seu ambiente Zabbix e instale a biblioteca Python no seu servidor ou proxy Zabbix primeiro com:

Bash
pip install pylitterbot

Em seguida, execute o seguinte comando para fazer o download dos scripts e colocá-los no local correto.

Bash
mkdir /usr/lib/zabbix/
mkdir /usr/lib/zabbix/litterrobot/
cd /usr/lib/zabbix/litterrobot/

wget https://raw.githubusercontent.com/OpensourceICTSolutions/zabbix-litterrobot/main/litterrobot_get_robots.py
wget https://raw.githubusercontent.com/OpensourceICTSolutions/zabbix-litterrobot/main/litterrobot_get_insights.py
wget https://raw.githubusercontent.com/OpensourceICTSolutions/zabbix-litterrobot/main/litterrobot_get_activity.py

Estes scripts terão de ser executados pelo agente Zabbix local do servidor (ou proxy), e assim também teremos de fazer o download dos ficheiros UserParameter corretos.

Bash
cd /etc/zabbix/zabbix_agent2.d/
ou
cd /etc/zabbix/zabbix_agentd.d/

wget https://raw.githubusercontent.com/OpensourceICTSolutions/zabbix-litterrobot/main/litterrobot_userparams.conf

Em seguida, certificamo-nos de que o agente Zabbix conseguirá usar estes novos parâmetros, ativando a opção de parâmetros de utilizador inseguros (pois há um @ no nome de utilizador). Edite /etc/zabbix/zabbix_agent2.conf ou /etc/zabbix/zabbix_agentd.conf e adicione o seguinte:

Bash
UnsafeUserParameters=1

Em seguida, reiniciamos o agente com o seguinte comando:

Bash
systemctl restart zabbix-agent
ou
systemctl restart zabbix-agent2

Configuração do Zabbix

Com os scripts no lugar e o agente Zabbix pronto para executá-los, podemos configurar o nosso monitoramento no frontend do Zabbix. Para fazer isto, teremos de fazer o download e importar o modelo. Pode encontrar o modelo da versão 6.2 aqui: https://github.com/OpensourceICTSolutions/zabbix-litterrobot/blob/main/zabbix_litterrobot_python_template.yaml

Após o download do modelo, importe-o no Zabbix.

Criar um novo host para o seu Litter Robot

Em seguida, certifique-se de adicionar o seu nome de utilizador e palavra-passe como macros

O resultado

O resultado é que agora podemos encontrar todas as informações importantes sobre o Litter Robot 3 no Zabbix:

Não apenas isso, depois de termos uma ideia de quantas vezes por dia os nossos gatos geralmente vão à casa de banho, podemos começar a usar os triggers:

Há uma mensagem para quando a gaveta está cheia, mas também um trigger de Aviso e um de Alto quando há mais de 12 ou 15 ciclos, respetivamente.

Conclusão

Os nossos animais de estimação são uma parte significativa das nossas vidas e, por vezes, pode ser difícil comunicar com eles. Os gatos têm uma propensão para esconder os seus sentimentos, mas um dos sinais reveladores de que algo está errado é o número de vezes que eles visitam a caixa de areia.

Fonte

Artigos Relacionados