Como garantir que seu site esteja sempre online com ferramentas de monitoramento

Como garantir que seu site esteja sempre online com ferramentas de monitoramento

Meu site está fora?!?!?!

É inegável que hoje o termo Monitoramento é uma palavra presente em todas as organizações e a tecnologia cada vez mais está inserida no dia a dia de processos à xícaras de café. Ter sistemas ativos e disponíveis é uma tarefa contínua de operação e segurança, neste post vamos ver como podemos facilitar nossas ações para que essa tarefa se torne simples.Hoje em sua grande maioria empresas possuem sites e sistemas web, não como opção mas sim como necessidade. Então é só criar um site, hospedá-lo e pronto? Será que é só isso?

Não, não é somente isso! Manter um sistema ativo requer muitas ações de Deploy, Update, HotFix, New Features… e o mais essencial garantir o seu funcionamento, ter ferramentas que possibilitem o conhecimento de falhas e ações preventivas.

Bom acho que já podemos dizer: “É aqui que entra o monitoramento!” Umas das premissas de ter um monitoramento é ter o conhecimento de tudo que acontece com seu sistema e assim poder garantir que sua organização estará presente online e que as oportunidades de negócio serão aproveitadas.

Abordamos anteriormente no Blog um post falando sobre a importância de ter observabilidade em seu ambiente, clica aqui

Agora que já sabemos um pouco sobre monitoramento, vamos fazer sobre como reconhecer que seu site está fora do ar!!

Monitoramento de sites

No mercado de ferramentas para monitoramento há uma categoria que especialmente acho muito bacana, que são as ferramentas para Status Page. Estas ferramentas proporcionam o conhecimento sintético do funcionamento e o Status Available de todos sites e aplicações WEB nelas cadastradas.

No mundo opensource há uma gama gigantesca de ferramentas para esta finalidade, abaixo vamos conhecer algumas delas e também aprender como podemos instalar uma StatusPage!

 

 

 

 

Cachet é um sistema de Status Page gratuito e auto-hospedado . A Status Page permite que as empresas informem aos clientes sobre interrupções do sistema e manutenções programadas, também ajuda a melhorar o tempo de inatividade e se comunicar melhor com clientes e equipes. Além disso, um usuário pode acessar um ou todos os componentes/sites para receber notificações por e-mail. O Cachet vem com recursos excelentes, como interface do usuário responsiva, multilíngue, métricas, autenticação de dois fatores e muito mais.

O Cachet tem uma bela interface de usuário responsiva e o administrador pode personalizar a aparência da página de status no back-office. A autenticação do usuário é a primeira e necessária etapa para cada aplicativo da web. O Cachet possui um poderoso mecanismo de autenticação e autorização de usuários. Além disso, o administrador pode habilitar a autenticação por duplo-fator para as contas de usuário para aplicar uma camada de segurança adicional. O sistema de Status Page Cachet vem com uma poderosa API pronta para uso que pode ser usada para executar diferentes operações CRUD para componentes, incidentes e muito mais. Existem várias bibliotecas de terceiros disponíveis para monitoramento de aplicativos da Web e usam a API integrada para atualizar o Cachet.

A página de status do Cachet é uma alternativa auto-hospedada ao software StatusPage.io e Status.io. Ele é escrito no framework PHP Laravel e usa MySQL para armazenar dados. A licença para este sistema de página de status auto-hospedado é BSD-3-Clause.

Para saber mais sobre esta ferramenta acesse Cachet – Status Page System

 

UPTime

 

Upptime é um sistema de Status Page de código aberto. Oferece serviço gratuito de monitoramento de sites. O Upptime é desenvolvido pelo GitHub e usa seus recursos para realizar diferentes operações. Portanto, é diferente dos sistemas tradicionais de Status Page porque não requer um servidor. O Upptime usa três recursos principais do GitHub, como Actions, Issues e Pages. O GitHub Actions é usado como um monitor de tempo de atividade. Os problemas do GitHub são usados ​​para relatórios de incidentes e as páginas do GitHub são usadas para o site de status.

O GitHub Actions permite que os usuários programem fluxos de trabalho para serem executados automaticamente a cada 5 minutos ou mais. Upptime verifica o estado de saúde do site a cada 5 minutos ou o que for definido. Os problemas do GitHub funcionam como relatórios de incidentes. O Upttime abre um novo problema no repositório do GitHub quando o site/endpoint fica inativo. O problema pode ser atribuído a um membro da equipe e enviar notificação usando um dos canais de notificação configurados. O Upptime usa as páginas do GitHub para renderizar o site de status. A página de status do GitHub mostra informações dos usuários, como status do site, histórico de incidentes e gráficos de tempo de resposta.

Este software de página de status gratuito vem com vários canais para enviar notificações, como Slack, Telegram, Discord, Email e SMS. Envie uma notificação aos membros da equipe se o site ficar inativo ou apresentar desempenho degradado. Além disso, os usuários podem executar gatilhos manualmente junto com fluxos de trabalho automatizados. Além disso, esse sistema de página de status de código aberto consiste em três pacotes, incluindo @upptime/uptime-monitor, @upptime/status-page e @upptime/graphs.

Para saber mais sobre a ferramenta StatusFY acesse StatusFy – Complete Solution for Publishing

 

Statping é um software OpenSource para monitorar seus sites, serviços, APIs e aplicativos com excelentes recursos como gráficos, análises e plugins. Você também pode monitorar serviços HTTP, TCP, UDP e gRPC.

É um software fácil de usar para sites e aplicativos. O Statping buscará automaticamente os aplicativos para monitoramento e você não precisa instalar e configurar software de terceiros para monitoramento. O servidor de banco de dados pode ser: MySQL, Postgres ou SQLite e servirá para armazenar informações da aplicação.

Características

Statping tem muitos recursos e os mais importantes são:

Monitoramento

O Statping pode monitorar todos os seus serviços como HTTP, TCP, UDP, você pode definir o código de status ou a correspondência utilizando Regex para o seu serviço. O Statping possui um recurso integrado que monitora automaticamente o tempo de inatividade, o tempo de atividade dos serviços e não há necessidade de configurar plugins de terceiros para isso.

Aplicativo móvel

Você pode usar o aplicativo móvel gratuito para dispositivos iPhone e Android. O aplicativo móvel pode ser baixado na App Store e no Google Play. Além disso, você pode configurar notificações push usando o Mobile Notifier.

Autenticação oAuth

O Statping tem suporte de autenticação o Auth para Github, Google, Slack e um provedor OpenID personalizado de sua escolha.

Outras características

  • Notificações
  • Gerenciar serviços
  • Gerenciar incidentes
  • Anúncios
  • Comunicação
  • Gráficos
  • Logs
  • Editor de temas
  • API REST
  • Web Hooks
  • Leve e Rápido
  • Estilo SASS personalizado

Para saber mais sobre a ferramenta StatPing acesse Statping – Status Page & Monitoring Server

Vamos à prática?!?!

Iremos instalar a ferramenta StatPing e seus respectivos requisitos para o funcionamento!

Para nosso laboratório utilizaremos Docker com docker-compose, neste deploy teremos Cachet, NGINX e PostgreSQL sendo instalados.

Passo 1: Criar arquivo docker-compose.yml:

O conteúdo padrão do arquivo está na página do repositório dedicado a instalação do sistema via docker, GitHub – StatPing – Dcoker wiki

Vamos criar o arquivo com o comando:

$ vim docker-compose.yml

Agora cole o conteúdo dentro deste arquivo

version: '3'

services:

  nginx:
    container_name: nginx
    image: jwilder/nginx-proxy
    ports:
      - 0.0.0.0:80:80
      - 0.0.0.0:443:443
    networks:
      - internet
    restart: always
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./statup/nginx/certs:/etc/nginx/certs:ro
      - ./statup/nginx/vhost:/etc/nginx/vhost.d
      - ./statup/nginx/html:/usr/share/nginx/html:ro
      - ./statup/nginx/dhparam:/etc/nginx/dhparam
    environment:
      DEFAULT_HOST: localhost

  statup:
    container_name: statup
    image: statping/statping:latest
    restart: always
    networks:
      - internet
      - database
    depends_on:
      - postgres
    volumes:
      - ./statup/app:/app
    environment:
      VIRTUAL_HOST: localhost
      VIRTUAL_PORT: 8080
      DB_CONN: postgres
      DB_HOST: postgres
      DB_USER: statup
      DB_PASS: password123
      DB_DATABASE: statup
      NAME: EC2 Example
      DESCRIPTION: This is a Statping Docker Compose instance

  postgres:
    container_name: postgres
    image: postgres:10
    restart: always
    networks:
      - database
    volumes:
      - ./statup/postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password123
      POSTGRES_USER: statup
      POSTGRES_DB: statup

networks:
  internet:
    driver: bridge
  database:
    driver: bridge

 
Para sair e salvar o aquivo podemos executar o comando: :wq ou :x

Passo 2: Vamos fazer o Deploy do sistema!

$ docker-compose up -d

Com nossa Aplicação no ar, podemos acessá-la via navegador https://localhost

Página Inicial do StatPing

Por padrão a aplicação já vem configurado algumas aplicações com diversas funcionalidades de monitoramento, você pode removê-las ou utilizá-las como modelo para novos serviços.
Para acessar o painel de controle, vá para o final da página e clique em Dashboard

Será exeibido a página de Login para acesso:

Usuário para conexão é definido por padrão nas variáveis de ambiente, essas variáveis podem ser alteradas e devem ser passadas no nosso arquivo docker-compose.yml.

Uuário e senha padrão:

admin

Agora sim podemos gerenciar nossa aplicação:

Todas as personalizações estão descritas na Wiki da ferramenta e pode ser acessad aqui

Espero que tenha gostado dessa dica!

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

 

Anterior Entenda o SAST e como implementar com o Horusec em seu projeto
Próxima Avaliando a Segurança em Ambientes Kubernetes com Kubeaudit

About author

Jeovany Batista
Jeovany Batista 7 posts

Formado em Segurança da Informação, trabalha com tecnologia há 11 anos, atualmente é Analista de Infraestrutura e Monitoramento na 4Linux, nas horas vagas se aventura na culinária e nos games. Entusiasta em opensource tools e no momento curtindo a distro OpenSuse!

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Crie sua primeira aplicação em Python: Guia passo a passo

Neste post estaremos aprendendo a criar uma aplicação simples utiliando a linguagem de programação “Python”.   Primeiramente, obviamente, será necessário ter o python instalado em nossas máquinas, podemos adquirí-lo de

Infraestrutura TI

Conhecendo o kernel Linux pelo /proc (parte 4) – comportamentos da memória virtual

No post anterior vimos como o kernel mantem os mapeamentos de memória virtual para memória física e como essa tradução é realizada em tempo de execução pela MMU. Neste post

Cloud

Provisionamento de Data Platform na Azure com Terraform: Um Guia Prático

Um dos exemplos citados no ebook Governance as Code da 4Linux, é uma plataforma de dados na azure. Esse exemplo foi baseado no cenário atual em que eu trabalho, onde