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.
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.
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.
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
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
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:
About author
Você pode gostar também
Como otimizar a monitoração de infraestrutura com Prometheus e Grafana
Um dos dos pilares do DevOps é a monitoração contínua de nossa infraestrutura e de nossos serviços. Através do monitoramento, podemos extrair informações importantes sobre a saúde de nossos componentes,
Criando um Container do Docker (Sem o Docker!)
Aprenda na prática como o Docker gerencia seus containers. O intuito deste post é mostrar, na prática como o Docker gerencia seus containers. E qual jeito seria melhor de demonstrar o
Conhecendo o Kernel Linux pelo /proc (parte 3) – Mapeamento de memória virtual
Como vimos nos posts anteriores, o Linux trabalha com conceito de memória virtual, ou seja, cada processo tem seu próprio endereçamento virtual totalmente isolados dos outros processos, porém o que