Índice:

Seroma: Gerenciador da sala do servidor: 20 etapas
Seroma: Gerenciador da sala do servidor: 20 etapas

Vídeo: Seroma: Gerenciador da sala do servidor: 20 etapas

Vídeo: Seroma: Gerenciador da sala do servidor: 20 etapas
Vídeo: Como estudar para Residência em Fisioterapia? com Karinne Figueiredo 2024, Novembro
Anonim
Seroma: gerente da sala do servidor
Seroma: gerente da sala do servidor

O Seroma é um gerenciador de sala de servidores tudo-em-um que permite aos usuários verificar o estado dos servidores (temperatura e umidade), os registros de acesso da sala de servidores, bem como monitorar a própria sala de servidores em busca de violações de segurança.

Etapa 1: Faça login em sua conta AWS

Faça login em sua conta AWS
Faça login em sua conta AWS
Faça login em sua conta AWS
Faça login em sua conta AWS
Faça login em sua conta AWS
Faça login em sua conta AWS
Faça login em sua conta AWS
Faça login em sua conta AWS
  1. Para o nosso, nós nos conectamos por meio do AWS educate student gateway, pois temos uma conta aws de aluno.
  2. Vá até a guia “AWS Account” no menu de navegação no canto superior direito.
  3. Clique em “Vá para sua conta AWS Educate Starter”
  4. Abra o Console para acessar seu AWS Management Console.

Etapa 2: Introdução às "coisas" do AWS IOT

Introdução ao AWS IOT
Introdução ao AWS IOT
Introdução ao AWS IOT
Introdução ao AWS IOT
  1. Pesquise “AWS IoT” na barra de pesquisa de serviços AWS.
  2. Clique em “Começar” para prosseguir para o painel do AWS IoT Console, onde você pode visualizar todos os dispositivos IoT registrados em sua conta AWS.

Etapa 3: Registrando uma "coisa" AWS IOT

Registrando um AWS IOT
Registrando um AWS IOT
Registrando um AWS IOT
Registrando um AWS IOT
Registrando um AWS IOT
Registrando um AWS IOT
  1. Na barra de navegação, navegue para gerenciar suas “Coisas” IoT.
  2. Clique em “Registrar uma coisa” se você ainda não tem uma coisa. (Se você já tem algo, clique no botão “Criar” no canto superior direito da tela ao lado da guia de pesquisa.)
  3. Clique no primeiro botão denominado “Criar uma única coisa”.
  4. Digite “RaspberryPi” como o nome da coisa. Para esta etapa, nenhuma entrada diferente de “Nome” é necessária. Depois de fazer isso, clique em Avançar.

Etapa 4: Ativando um Certificado

Ativando um Certificado
Ativando um Certificado
Ativando um Certificado
Ativando um Certificado
  1. Na próxima etapa, clique no botão “criar certificado”.
  2. Baixe e armazene os 4 links de download na próxima página em um diretório ou pasta de trabalho. Para salvar o arquivo CA raiz, clique com o botão direito e salve como.
  3. Clique em “Ativar” e uma mensagem de sucesso deve aparecer.
  4. Use nomes amigáveis para os arquivos removendo os números na frente de cada nome de arquivo e renomeando o arquivo CA raiz para "rootca.pem".
  5. Clique em "Anexar uma política" para prosseguir.

Etapa 5: Adicionar uma política ao seu certificado

Adicionando uma política ao seu certificado
Adicionando uma política ao seu certificado
Adicionar uma política ao seu certificado
Adicionar uma política ao seu certificado
Adicionando uma política ao seu certificado
Adicionando uma política ao seu certificado
  1. Na próxima página, se você não tiver uma política, eles solicitarão que você faça uma no botão “Criar uma política”.
  2. Se você já tem uma política existente, clique no botão “Criar nova política” abaixo.
  3. Insira as seguintes informações no formulário de criação de política.

    Nome: RaspberryPiSecurityPolicy

    Ação: iot: *

    Recurso ARN: *

    Efeito: Permitir

  4. Sua política deve aparecer na guia “Política” em “Segurança”.
  5. Em seguida, vá para a guia “Certificados” que também está em “Segurança” e anexe sua política ao certificado que você criou anteriormente.
  6. Na próxima página, clique em sua política e clique em “Anexar”.
  7. Na página Detalhes do que você criou, na guia “Interagir”, há um terminal de API REST que deve ser copiado e salvo.
  8. AWS agora deve ter um Thing que está anexado a uma política e tem um certificado.

Etapa 6: configuração inicial para o tópico de SNS da AWS

Configuração inicial para o tópico SNS da AWS
Configuração inicial para o tópico SNS da AWS
Configuração inicial para o tópico SNS da AWS
Configuração inicial para o tópico SNS da AWS

SSH no Raspberry Pi e instale o AWS CLI usando o seguinte comando pip:

sudo pip install awscli

O AWS CLI inclui o recurso de conclusão de comando, mas não é instalado por padrão. Use o seguinte comando para instalar o recurso de conclusão de comando na interface CLI do Raspberry Pi:

complete -C aws_completer aws

Configure o AWS CLI com ID da chave de acesso, chave de acesso secreta, nome da região da AWS e formato de saída do comando usando o seguinte comando:

aws configure

O console solicitará que você preencha as seguintes informações:

pi @ raspberrypi: ~ $ aws configure

ID da chave de acesso da AWS [Nenhum]: "Coloque a ID da chave de acesso do usuário aqui" Chave de acesso secreta da AWS [Nenhum]: "Coloque a chave de acesso secreta do usuário aqui" Nome da região padrão [Nenhum]: eu-central-1 Formato de saída padrão [Nenhum]: json pi @ raspberrypi: ~ $

Etapa 7: Criação do arquivo Iot-role.trust.json

Criação do arquivo Iot-role.trust.json
Criação do arquivo Iot-role.trust.json
Criação do arquivo Iot-role.trust.json
Criação do arquivo Iot-role.trust.json
  1. Crie um arquivo JSON com a política IAM acima com o nome de arquivo iot-role.trust.json.
  2. Crie a função usando o AWS CLI usando o seguinte comando

aws iam create-role --role-name my-iot-role --assume-role-policy-document file: //iot-role-trust.json

Etapa 8: Criação do arquivo Iot-policy.json

Criação do arquivo Iot-policy.json
Criação do arquivo Iot-policy.json
Criação do arquivo Iot-policy.json
Criação do arquivo Iot-policy.json
  1. Crie um arquivo JSON com a política acima com o nome de arquivo iot-policy.json.
  2. Crie a política de função usando o AWS CLI usando o seguinte comando:

aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json

Etapa 9: Criar um Tópico SNS AWS (Parte 1)

Crie um Tópico SNS AWS (Parte 1)
Crie um Tópico SNS AWS (Parte 1)
Crie um Tópico SNS AWS (Parte 1)
Crie um Tópico SNS AWS (Parte 1)
Crie um Tópico SNS AWS (Parte 1)
Crie um Tópico SNS AWS (Parte 1)
  1. Na barra de pesquisa de serviços da AWS, pesquise o serviço “SNS” ou acesse
  2. Como você não tem nenhum tópico agora, clique em “Criar novo tópico” para criar um tópico.
  3. Digite o nome do seu tópico e o nome de exibição e clique em “Criar tópico” e um novo tópico aparecerá quando todas as etapas forem bem-sucedidas.
  4. Clique no botão suspenso “Ações” e “Editar política de tópico”.

Etapa 10: Criar um Tópico SNS AWS (Parte 2)

Crie um Tópico SNS AWS (Parte 2)
Crie um Tópico SNS AWS (Parte 2)
Crie um Tópico SNS AWS (Parte 2)
Crie um Tópico SNS AWS (Parte 2)
Crie um Tópico SNS AWS (Parte 2)
Crie um Tópico SNS AWS (Parte 2)
  1. Defina a política para permitir que todos publiquem e se inscrevam, pois isso é uma limitação de uma conta AWSEducate.
  2. Inscreva-se neste tópico para receber atualizações publicadas nele.
  3. Altere o protocolo para “E-mail” e insira seu e-mail no terminal.

  4. Vá para o seu e-mail onde você digitou seu endpoint, clique no link de confirmação para confirmar sua inscrição de e-mail para se inscrever no tópico.
  5. Navegue até os serviços “AWS IoT”, no menu de navegação à esquerda, clique em “Agir”. Esta página é onde suas regras são exibidas e disponíveis para você visualizar e editar. Atualmente, não há regras para o seu negócio de IoT, clique em “Criar uma regra”.

Etapa 11: Criar um Tópico SNS AWS (Parte 3)

Crie um Tópico SNS AWS (Parte 3)
Crie um Tópico SNS AWS (Parte 3)
Crie um Tópico SNS AWS (Parte 3)
Crie um Tópico SNS AWS (Parte 3)
Crie um Tópico SNS AWS (Parte 3)
Crie um Tópico SNS AWS (Parte 3)
  1. Digite um nome no campo Nome para sua regra. No campo Descrição, digite uma descrição para sua regra. Continuando com a seção Fonte da mensagem, escolheríamos a versão SQL mais atualizada na seção “Usando a versão SQL”. Digite * no atributo para selecionar toda a mensagem MQTT do tópico, em nosso caso, nosso tópico é “TempHumid”.
  2. Em seguida, adicione uma ação de notificação “SNS” para sua regra. Em seguida, clique em “Configurar ação”.
  3. Na página “Configurar ação”, escolha o tópico SNS que você acabou de criar e o formato da mensagem como RAW. Depois disso, escolha a função que você acabou de criar usando AWS CLI e clique em “Adicionar ação”.
  4. Sua ação será configurada e retornará para “Criar uma regra”.
  5. Clique em editar se desejar editar a regra.

Etapa 12: Criar um Bucket no Amazon S3

Crie um Bucket no Amazon S3
Crie um Bucket no Amazon S3
Crie um Bucket no Amazon S3
Crie um Bucket no Amazon S3
Crie um Bucket no Amazon S3
Crie um Bucket no Amazon S3
  1. Pesquise S3 na barra de pesquisa da AWS.
  2. Na página Amazon S3, clique no botão “Create Bucket” para começar.
  3. Preencha o formulário pop-up que aparece com as seguintes informações:

    • Nome do intervalo: seroma-bucket (deve ser exclusivo em todos os buckets Amazon S3 existentes)
    • Região: Oeste dos EUA (Oregon)
    • Copiar configurações: (ignorar)
  4. Para as etapas 2 a 3, simplesmente ignore clicando em “Avançar”, pois não há nada a ser alterado. Na etapa 4, clique em “Criar intervalo”.
  5. Após a criação, você deve ver seu intervalo na página inicial.

Etapa 13: Gerar uma Política AWS (Parte 1)

Gerar uma política AWS (Parte 1)
Gerar uma política AWS (Parte 1)
Gerar uma política AWS (Parte 1)
Gerar uma política AWS (Parte 1)
Gerar uma política AWS (Parte 1)
Gerar uma política AWS (Parte 1)
  1. Clique no intervalo que você criou para entrar na página acima e prossiga para “Política de intervalo” na guia “Permissões”.
  2. Em seguida, clique no link “Gerador de política” na parte inferior da página para gerar sua política AWS.
  3. No formulário, insira os seguintes valores:

    • Tipo de política: Política de intervalo S3
    • Efeito: Permitir
    • Diretor: *
    • Serviço AWS: Amazon S3
    • Ações: GetObject
    • Nome do recurso Amazon (ARN): arn: aws: s3::: seroma-bucket
  4. Após preencher as informações, clique em Adicionar Extrato.
  5. Clique no botão “Gerar política”.

Etapa 14: Gerar uma Política AWS (Parte 2)

Gerar uma política AWS (Parte 2)
Gerar uma política AWS (Parte 2)
Gerar uma política AWS (parte 2)
Gerar uma política AWS (parte 2)
Gerar uma política AWS (parte 2)
Gerar uma política AWS (parte 2)
Gerar uma política AWS (Parte 2)
Gerar uma política AWS (Parte 2)
  1. Copie os códigos gerados e clique em fechar.
  2. Volte para o editor de política de intervalo do Amazon S3 e cole os códigos copiados anteriormente.
  3. Adicione um “/ *” aos códigos logo atrás dos códigos de recursos, como na imagem acima, e clique em salvar.
  4. Depois de fazer isso, seu balde será configurado com êxito e estará pronto para uso.

Etapa 15: Criação de tabelas para DynamoDB

Criação de tabelas para DynamoDB
Criação de tabelas para DynamoDB
Criação de tabelas para DynamoDB
Criação de tabelas para DynamoDB
  1. Pesquise DynamoDB na barra de pesquisa de serviços da AWS
  2. Clique em "Criar tabela" e crie 3 tabelas com as informações abaixo: (apenas o "nome da tabela" e a "chave primária" são alterados)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • staffdata, pk username

Etapa 16: Roomstatus.py

Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py

Esta seção contém o código para roomstatus.py, que grava todos os dados relativos à própria sala do servidor a cada minuto. Isso inclui temperatura, umidade, movimento (imagens e vídeos, se for o caso) e registros de acesso. Ele também grava dados em uma planilha do Google, dados no DynamoDB, imagens e vídeos (se houver) no S3, exibe informações na tela LCD, envia SMS e e-mail quando há suspeita de violação ou quando a temperatura ou umidade é irregular.

Para executar arquivos python, mude o diretório para onde o arquivo está localizado e digite no console: "sudo python"

Figura 2: Funções declaradas para permitir alertas de SMS e e-mail e upload para S3

Foto 3: Variáveis declaradas para funções e RPi para trabalhar

Figura 4: Início do loop que obtém os valores de temperatura e umidade do RPi. Ele também grava os dados em uma planilha do Google

Figura 5: Parte de segurança do circuito. Só será ativado das 19h às 7h (horário de folga). Ele verificará o movimento em um intervalo de um minuto. Se for detectado movimento, ele pegará uma imagem e um vídeo, fará o upload para o S3, enquanto também grava informações no DynamoDB para referência posterior. Em seguida, ele enviará um SMS e um e-mail se houver algum problema.

Foto 6: O fim do loop. Ele também grava dados no DynamoDB e envia alertas de acordo. A última linha do loop fará o script hibernar até que o próximo minuto seja alcançado.

Etapa 17: Rfid.py

Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py

Esta seção contém o código para rfid.py, que adiciona a funcionalidade para rastrear quando um membro da equipe acessa a sala do servidor. Também faz parte do aspecto de segurança do Seroma, onde um membro da equipe não tem permissão para acessar a sala do servidor após o horário de expediente, para evitar uma violação de dados. Ele também envia um e-mail e SMSs para todos os funcionários se houver suspeita de violação.

Figura 2: Início da lógica do leitor RFID. Sempre que um cartão é escaneado no leitor, o id único (uid) do cartão é obtido. Em seguida, tentamos encontrar o valor uid do cartão na tabela staffdata para ver se o cartão pertence a algum funcionário. Imagem 3: Se o uid do cartão existir no banco de dados, ele verificará se é durante o escritório Fora de horas. Se for, ele alertará o resto dos funcionários por SMS e e-mail os endereços de e-mail assinados. Se ainda for durante o horário comercial, ele gravará uma linha na tabela de log de acesso no banco de dados com os dados relevantes. Ele também exibirá uma mensagem de boas-vindas no visor LCD.

Etapa 18: Server.py

Server.py
Server.py
Server.py
Server.py
Server.py
Server.py

Este é o arquivo server.py. Estaremos usando a estrutura Flask para o portal da web. Os arquivos HTML a serem colocados em / templates também estão anexados.

Figura 1: Primeira rota para Flask definida. Ele redirecionará o usuário para a página de login, se não estiver, e para a página do painel, se estiver. Também define uma função a ser usada no recurso de transmissão ao vivo

Fig 2, 3, 4: Rotas para Frasco. Ele obtém dados da tabela do DynamoDB e os retorna aos arquivos HTML para que possam ser usados lá.

Foto 5: últimas 2 rotas para o Flask. Ele lida com a função de logout e a função de transmissão ao vivo. Ele também especifica a porta em que o site será executado.

Etapa 19: Telegram.py

Telegram.py
Telegram.py
Telegram.py
Telegram.py
Telegram.py
Telegram.py

Esta seção inclui o código para o bot de telegrama da Seroma. Ele usa a biblioteca telepot para acessar a API do bot do Telegram. Ele funciona aceitando as consultas que obtém e exibindo as respectivas informações ao usuário. O usuário pode digitar ‘help’ para obter uma lista completa de comandos.

Foto 1, 2: Para configurar um bot de telegrama, você precisa usar o BotFather. Basta seguir as instruções para obter a API HTTP de que precisamos em nosso código.

Figura 4: Exemplo de uma função que obtém um certo número de linhas de dados do banco de dados com base na solicitação do usuário

Figura 5: Como pegamos a entrada do usuário e decidimos o que executar de acordo.

Etapa 20: transmissão ao vivo (camera_pi.py)

Transmissão ao vivo (camera_pi.py)
Transmissão ao vivo (camera_pi.py)
Transmissão ao vivo (camera_pi.py)
Transmissão ao vivo (camera_pi.py)
Transmissão ao vivo (camera_pi.py)
Transmissão ao vivo (camera_pi.py)

Implementamos um novo recurso para o nosso sistema de monitoramento da sala de servidores, uma transmissão ao vivo do que está acontecendo na sala de servidores, que pode ser acessada a qualquer momento, em qualquer lugar. Como funciona essa transmissão ao vivo: É um recurso que é feito no Flask, junto com a câmera Pi. Os quadros de vídeo são baixados como está acontecendo na vida real, então você pode realmente ver que há um pequeno atraso (1-2 segundos) enquanto os quadros de vídeo são baixados e montados. Isso não poderia ser feito sem o encadeamento, já que o encadeamento do plano de fundo lê os quadros da câmera e armazena o quadro atual. Juntar todos esses quadros produziria uma transmissão ao vivo.

Foto 2: Este é um arquivo separado onde todos os quadros de vídeo são armazenados e como você pode ver, estamos usando o módulo picamera para acessar nossa câmera raspberry pi, pois é com ela que estamos mais familiarizados. Temos uma classe Camera para que pudéssemos importar a função como se fosse uma transmissão ao vivo e não várias imagens juntas, portanto, no arquivo principal do aplicativo seria considerada uma transmissão ao vivo sem ter que nos preocupar com o que está acontecendo nos bastidores.

Foto 3: Esta é parte do nosso arquivo server.py onde a parte da transmissão ao vivo é codificada. A classe principal que importamos para isso é a Câmera de nosso arquivo camera_pi.py na parte superior de nosso arquivo server.py. Definimos uma função em nosso diretório raiz, gen, no entanto, ela só entra em uso quando vamos para / video_feed, onde está nossa transmissão ao vivo, onde ela fará um loop por esta função e retornará a transmissão ao vivo na página da web.

Recomendado: