Este documento descreve os passos necessários para executar o sistema.
Nos links abaixo são descritos os passos necessários para baixar os dois para diferentes sistemas operacionais.
- https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce
- https://docs.docker.com/compose/install/
A API utilizada no projeto foi a API do Google. Para utilizá-la é preciso configurar um token de utilização, para isso execute os seguintes passos:
- Acessar o seguinte link: https://console.developers.google.com/apis/dashboard;
- Criar um projeto;
- Acessar o projeto;
- Clicar na opção do menu "Painel";
- Clicar em "ATIVAR APIS E SERVIÇOS";
- Buscar por "Geocoding API" e ativá-la;
- Acessar a Geocoding API que foi adicionada e clicar na aba "Credenciais";
- Cadastrar uma nova chave;
- Modificar a configuração
GEO_LOCATION_API_KEY
no arquivo/processor/settings.py
para utilizar o token gerado.
OBS: Para fins de teste, foi implementada uma forma de não conectar à API quando a variável
GEO_LOCATION_SERVICE_ENABLED
estiver comoFalse
. A variável encontra-se no arquivo/processor/settings.py
.
Algumas configurações precisam ser definidas no momento em que o serviço é
executado (docker-compose.yml
) e outras quando o client do serviço vai ser
criado(settings.py
).
Para iniciar o sistema é preciso executar o seguinte comando:
docker-compose up --build
No admin do Rabbitmq é possível ver a quantidade de logs produzidos, a quantida de logs processados e a quantidade de logs que foi produzido e ainda não foi processado.
- Entrar no seguinte link:
localhost:15672
- Clicar na aba "Queues"
- Escolher a fila de nome "logs"
As inforamções estão sendo armazenadas no MySQL do serviço storage
.
O serviço storage-adminer
fornece uma interface WEB para acessar o banco de dados.
Para isso, podemos utilizar os seguintes passos:
- Acessar a URL:
localhost:8080
- Inserir as seguintes informações na tela de login:
- Sistema: MySQL
- Servidor: storage
- Usuário: root
- Senha: 12345
- Base de Dados: db
OBS: As credenciais de acesso ao banco podem ser configuradas no arquivo
docker-compose.yml
O projeto foi criado utilizando a arquitetura de containers visando facilitar a escalabilidade desejada. Para isso, quando necessário podemos criar mais instâncias dos serviços através do seguinte comando:
docker-compose scale collector=5 processor=10
- Quantidade logs gerados por minuto/segundo
- Total de logs gerados
- Quantidade de logs processados por minuto/segundo
- Total de logs processados
- Tempo que leva desde a coleta do log até ele ser armazenado (latência)
- Quantidade de logs que estão esperando serem processados no RabbitMQ (lag)
- Uptime dos serviços
- Regiões com maior quantidade de acessos
- Frequência que os dispositivos constumam se conectar