Monitoramento de ativos de rede simplificado com Uptime Kuma

Há vários sistemas para monitoramento de disponibilidade de serviços. Os mais conhecidos são o Zabbix e o Nagios, mas existe um que me apresentaram, há não muitos meses atrás, chamado “Uptime Kuma” e que permite o mesmo monitoramento usando uma interface web tão simples que comparado àqueles dois, dispensa qualquer aprendizado, tanto para sua instalação quando para o uso.

Muitas pessoas deixam de monitorar a situação da sua rede ou de seus ativos porque – sejamos honestos – não é nada trivial instalar e configurar o Nagios ou Zabbix.

Depois de fazer isso algumas dezenas de vezes você acaba se habituando, mas é inegável que as telas são poluídas demais, as informações são demasiadas e muitas vezes desnecessárias.

Elas são ótimas ferramentas quando se precisa de um monitoramento detalhado incluindo o espaço em disco, consumo de memória, processamento, ou talvez o host físico onde determinada instância virtual está em execução etc.

Mas para a maioria das pessoas que só gostaria de algo como uma tela bonita mostrando o resultado de um ping, ou saber se um servidor web está no ar, instalar essas ferramentas é uma verdadeira tortura e perda de tempo. É ai que entra o Uptime Kuma.

Esta é uma ferramenta relativamente nova comparada com as demais. Ela foi inspirada pelo “Uptime Robot“, porém desenvolvida de forma coletiva com código disponível no Github e escrita usando os conceitos e ferramentas de desenvolvimento mais recentes do mercado, como Vue 3, Bootstrap 5, containers etc.

Fig 1: Página de exemplo da ferramenta demonstrada no repositório da aplicação

Na imagem acima vemos um dashboard de exemplo da aplicação, com detalhe para para o status do site do autor com acompanhamento bem simples do tempo de resposta e validade do certificado SSL.

Neste caso ele está monitorando o acesso por HTTP(S) mas o monitoramento não se limita a a este protocolo. Você pode monitorar por ICMP (ping), DNS, MQTT (usado por sistemas IoT) entre outros.

Páginas de status

Uma vez que você tenha instalado a ferramenta e adicionado os ativos a serem monitorados (servidores, switchs, appliances, sites etc), você poderá criar também páginas de status personalizadas como a mostrada abaixo.

As páginas de status permitem agrupar seus equipamentos da forma que você preferir. Por exemplo, você pode criar várias páginas de status, agrupando seus ativos por setor, por aplicação, por criticidade, por tipo etc.

Fig2: Página de status do Uptime Kuma

Assim, você pode ter uma visão focada apenas nos seus switchs, ou somente os servidores físicos, ou nos servidores web, ou apenas servidores relacionados a alguma aplicação específica etc.

A organização é por sua conta e ajuda bastante a achar o item que se quer monitorar.

Notificações

As ferramentas de monitoramento foram criadas para serem observadas constantemente e de acordo com o status dos serviços alguém atuar e tratar a situação. De nada adianta ter uma ferramenta de monitoramento que ninguém olha ou acompanha seu status.

Mas e se o responsável pelo monitoramento não estiver olhando, fora do escritório, ou não pode dispor deste tempo precioso para ficar olhando constantemente para a tela?

Para isso existem as notificações que permitem receber alertas quando algo estiver se comportando mal.

Fg 3: Notificações pelo Telegram

A lista de serviços para onde o Uptime Kuma pode enviar notificações é bem extensa contando com algumas dezenas de serviços. Indo desde os tradicionais Telegram, Discord, Google Chat, Slack, Microsoft Teams e e-mails até coisas mais esotéricas e menos conhecidas como LunaSea, Bark e DingDing.

O legal de se poder enviar notificações para ferramentas com API aberta como Telegram e emails, por exemplo, é que você pode receber esta mensagem de alerta usando alguma ferramenta de automação desenvolvida pela sua empresa e então atuar sem qualquer intervenção para resolver algum problema.

Claro que esta forma automação não é um recurso do Uptime Kuma e em qualquer outra ferramenta que possua integração com um comunicador de API aberta pode implementa-la, mas saber que com o Uptime Kuma podemos contar com esta integração também pode ser um diferencial, caso você esteja procurando por alternativas e precise deste tip ode recurso.

Servidor Demo

Para não ficar só na teoria e fantasiando como seria ver esta ferramenta rodando na prática, você poderá testá-la sem instalação a partir do site oficial no link, entretanto a experiência poderá não ser das melhores.

Como esta é uma ferramenta bem simples e rápida de se instalar, eu recomendo fortemente que você instale em sua máquina para testes.

Instalação com container docker

O processo de instalação padrão com contêineres, não causará impactos e nem deixará sujeira em sua máquina se após os testes você o remover.

Ele é bem simples já que a imagem do contêiner está pronta para uso com uma única linha de comandos:

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Nesta única linha já estaremos baixando a imagem atualizada com a última versão da ferramenta, criando um volume chamado “uptime-kuma” para persistência dos dados durante as atualizações e então iniciando o contêiner na porta 3001 da máquina onde ela for iniciada.

Após rodar o comando acima na sua máquina, você poderá abrir a tela de administração e monitoramento a partir do seu navegador preferido apontando-o para o endereço “http://localhost:3001”.

No primeiro acesso você deverá criar um usuário administrativo e senha e em seguida já poderá adicionar seus hosts e appliances que serão monitorados.

Usando o docker compose

Particularmente eu não sou muito fã de subir conteineres manualmente com docker, então eu deixo aqui o docker-compose.yml que uso para subir esta aplicação.

---
version: '3'

volumes:
  dados:

services:
  uptime:
    image: louislam/uptime-kuma
    volumes:
      - dados:/app/data
    ports:
      - 3001:3001

Uma vez salvo este arquivo em qualquer pasta, basta subir o docker-compose da forma convencional

docker-compose up -d

Tal como usando o docker diretamente, após executar este comando, o serviço estará disponível no mesmo endereço a partir do seu navegador.

Se necessário este composer poderá ser expandido para adicionar um nginx ou apache como proxy na frente onde terá maior flexibilidade para uso de certificados SSL, ou fazer controle de acesso, ou instalar qualquer outro container que julgue necessário.

Outras formas de instalação

A partir do repositório você tem as instruções também para instalar também diretamente em um servidor nodeJs.

Nota: Se você pensa em instalar sem container apenas porque ainda tem medo ou algum receio desta forma de distribuição de aplicações, eu te convido a aproveitar a simplicidade do Uptime Kuma, para também testar a instalação e uso de contêineres.

Você verá como as coisas são simples quando você se torna “amigo” deles. Assim como um dias máquinas virtuais foram criticadas e hoje é impensável não as usarmos, os contêineres também vieram para ficar então dê uma chance dos contêineres entrarem na lista de coisas a serem aprendidas. Será bom para você e para sua carreira na área de TI.

Monitorando

Uma vez instalado, você pode adicionar seus switchs, access point, roteadores, servidores, desktop, impressoras de rede ou qualquer outro equipamento da sua rede para acompanhar sua disponibilidade.

Apesar da inspiração no Uptime Robot, um recurso que senti falta foi e permitir que determinada página de status possa se tornar pública e acessível sem necessidade de login/senha.

Pelo menos até a versão que testei quando este texto foi escrito o recurso não estava disponível. Quem sabe em uma nova versão.

Por hora é isso. Com uma instalação simples como esta e que pode ser feita até em máquinas com pouco recursos, agora a sua rede só continua sem monitoramento se você quiser.

2 comentários em “Monitoramento de ativos de rede simplificado com Uptime Kuma”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.