Índice:
- Etapa 1: Faça login em sua conta AWS
- Etapa 2: Introdução às "coisas" do AWS IOT
- Etapa 3: Registrando uma "coisa" AWS IOT
- Etapa 4: Ativando um Certificado
- Etapa 5: Adicionar uma política ao seu certificado
- Etapa 6: configuração inicial para o tópico de SNS da AWS
- Etapa 7: Criação do arquivo Iot-role.trust.json
- Etapa 8: Criação do arquivo Iot-policy.json
- Etapa 9: Criar um Tópico SNS AWS (Parte 1)
- Etapa 10: Criar um Tópico SNS AWS (Parte 2)
- Etapa 11: Criar um Tópico SNS AWS (Parte 3)
- Etapa 12: Criar um Bucket no Amazon S3
- Etapa 13: Gerar uma Política AWS (Parte 1)
- Etapa 14: Gerar uma Política AWS (Parte 2)
- Etapa 15: Criação de tabelas para DynamoDB
- Etapa 16: Roomstatus.py
- Etapa 17: Rfid.py
- Etapa 18: Server.py
- Etapa 19: Telegram.py
- Etapa 20: transmissão ao vivo (camera_pi.py)
Vídeo: Seroma: Gerenciador da sala do servidor: 20 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
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
- Para o nosso, nós nos conectamos por meio do AWS educate student gateway, pois temos uma conta aws de aluno.
- Vá até a guia “AWS Account” no menu de navegação no canto superior direito.
- Clique em “Vá para sua conta AWS Educate Starter”
- Abra o Console para acessar seu AWS Management Console.
Etapa 2: Introdução às "coisas" do AWS IOT
- Pesquise “AWS IoT” na barra de pesquisa de serviços AWS.
- 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
- Na barra de navegação, navegue para gerenciar suas “Coisas” IoT.
- 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.)
- Clique no primeiro botão denominado “Criar uma única coisa”.
- 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
- Na próxima etapa, clique no botão “criar certificado”.
- 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.
- Clique em “Ativar” e uma mensagem de sucesso deve aparecer.
- 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".
- Clique em "Anexar uma política" para prosseguir.
Etapa 5: Adicionar uma política ao seu certificado
- 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”.
- Se você já tem uma política existente, clique no botão “Criar nova política” abaixo.
-
Insira as seguintes informações no formulário de criação de política.
Nome: RaspberryPiSecurityPolicy
Ação: iot: *
Recurso ARN: *
Efeito: Permitir
- Sua política deve aparecer na guia “Política” em “Segurança”.
- 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.
- Na próxima página, clique em sua política e clique em “Anexar”.
- Na página Detalhes do que você criou, na guia “Interagir”, há um terminal de API REST que deve ser copiado e salvo.
- 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
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
- Crie um arquivo JSON com a política IAM acima com o nome de arquivo iot-role.trust.json.
- 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
- Crie um arquivo JSON com a política acima com o nome de arquivo iot-policy.json.
- 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)
- Na barra de pesquisa de serviços da AWS, pesquise o serviço “SNS” ou acesse
- Como você não tem nenhum tópico agora, clique em “Criar novo tópico” para criar um tópico.
- 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.
- Clique no botão suspenso “Ações” e “Editar política de tópico”.
Etapa 10: Criar um Tópico SNS AWS (Parte 2)
- Defina a política para permitir que todos publiquem e se inscrevam, pois isso é uma limitação de uma conta AWSEducate.
- Inscreva-se neste tópico para receber atualizações publicadas nele.
-
Altere o protocolo para “E-mail” e insira seu e-mail no terminal.
- 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.
- 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)
- 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”.
- Em seguida, adicione uma ação de notificação “SNS” para sua regra. Em seguida, clique em “Configurar ação”.
- 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”.
- Sua ação será configurada e retornará para “Criar uma regra”.
- Clique em editar se desejar editar a regra.
Etapa 12: Criar um Bucket no Amazon S3
- Pesquise S3 na barra de pesquisa da AWS.
- Na página Amazon S3, clique no botão “Create Bucket” para começar.
-
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)
- 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”.
- Após a criação, você deve ver seu intervalo na página inicial.
Etapa 13: Gerar uma Política AWS (Parte 1)
- Clique no intervalo que você criou para entrar na página acima e prossiga para “Política de intervalo” na guia “Permissões”.
- Em seguida, clique no link “Gerador de política” na parte inferior da página para gerar sua política AWS.
-
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
- Após preencher as informações, clique em Adicionar Extrato.
- Clique no botão “Gerar política”.
Etapa 14: Gerar uma Política AWS (Parte 2)
- Copie os códigos gerados e clique em fechar.
- Volte para o editor de política de intervalo do Amazon S3 e cole os códigos copiados anteriormente.
- Adicione um “/ *” aos códigos logo atrás dos códigos de recursos, como na imagem acima, e clique em salvar.
- Depois de fazer isso, seu balde será configurado com êxito e estará pronto para uso.
Etapa 15: Criação de tabelas para DynamoDB
- Pesquise DynamoDB na barra de pesquisa de serviços da AWS
-
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
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
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
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
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)
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:
Gerenciador de janelas embutido: 10 etapas
Embedded Window Manager: Este projeto mostra como implementar um gerenciador de janelas com janelas móveis sobrepostas em um microcontrolador embutido com um painel LCD e uma tela de toque. Existem pacotes de software disponíveis comercialmente para fazer isso, mas custam dinheiro e estão próximos
Monitor da sala do servidor: 4 etapas
Server Room Monitor: Um dos problemas de uma sala de servidores é a temperatura. Com equipamentos diferentes produzindo calor, isso aumenta rapidamente. E se o ar condicionado falhar, ele interrompe tudo rapidamente. Para prever essas situações, podemos adquirir um de vários ambientes
Monitoramento de temperatura do Nodemcu ESP8266 usando DHT11 em um servidor da Web local - Obtenha a temperatura e umidade da sala no seu navegador: 6 etapas
Monitoramento de temperatura Nodemcu ESP8266 usando DHT11 em um servidor da Web local | Obtenha a temperatura e umidade da sala no seu navegador: Olá, pessoal, hoje vamos fazer um teste de umidade & sistema de monitoramento de temperatura usando ESP 8266 NODEMCU & Sensor de temperatura DHT11. A temperatura e a umidade serão obtidas no DHT11 Sensor & pode ser visto em um navegador cuja página da web será gerenciada
Gerenciador de cabos: 6 etapas
Gerente de cabo: Como um estudante de TI, todo mundo vem me pedindo um cabo para seu telefone, para internet, … Então, eu queria uma maneira fácil para eles encontrarem o cabo de que precisam sem minha ajuda. É por isso que criei o gerenciador de cabos. Este conceito está sendo desenvolvido como um final
Fazendo o Gerenciador de Arquivos funcionar no Webmin: 5 etapas
Fazendo o gerenciador de arquivos funcionar no Webmin: O gerenciador de arquivos Webmin é uma ferramenta muito útil. Por causa do Oracle (caixa de sabão), tornou-se muito difícil usar os aplicativos Java no navegador. Infelizmente, o gerenciador de arquivos é um aplicativo Java. É muito poderoso e vale o esforço para fazê-lo funcionar