Taula de continguts:

Seroma: Gestor de sala de servidors: 20 passos
Seroma: Gestor de sala de servidors: 20 passos

Vídeo: Seroma: Gestor de sala de servidors: 20 passos

Vídeo: Seroma: Gestor de sala de servidors: 20 passos
Vídeo: Programador Sênior VS júnior #short #shorts 2024, Desembre
Anonim
Seroma: gestor de sala de servidors
Seroma: gestor de sala de servidors

Seroma és un gestor de sales de servidors tot en un que permet als usuaris comprovar l’estat dels servidors (temperatura i humitat), els registres d’accés de la sala de servidors, així com supervisar la sala de servidors en si hi ha incompliments de seguretat.

Pas 1: inicieu la sessió al vostre compte d'AWS

Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
Inicieu la sessió al vostre compte d'AWS
  1. Per al nostre, hem iniciat la sessió a través de la passarel·la AWS educate student, ja que tenim un compte aws estudiant.
  2. Aneu a la pestanya "Compte AWS" del menú de navegació de la part superior dreta.
  3. Feu clic a "Vés al vostre compte inicial AWS Educate"
  4. Obriu la consola per accedir a la consola d'administració d'AWS.

Pas 2: Introducció a les "coses" AWS IOT

Introducció a AWS IOT
Introducció a AWS IOT
Introducció a AWS IOT
Introducció a AWS IOT
  1. Cerqueu "AWS IoT" a la barra de cerca de serveis AWS.
  2. Feu clic a "Comença" per anar al tauler de la consola AWS IoT, on podeu veure tots els dispositius IoT registrats al vostre compte AWS.

Pas 3: registrar una "cosa" AWS IOT

Registre d’un AWS IOT
Registre d’un AWS IOT
Registre d’un AWS IOT
Registre d’un AWS IOT
Registre d’un AWS IOT
Registre d’un AWS IOT
  1. A la barra de navegació, navegueu per gestionar les vostres coses.
  2. Feu clic a "Registra una cosa" si encara no en teniu. (Si ja teniu alguna cosa, feu clic al botó "Crea" a la part superior dreta de la pantalla al costat de la pestanya de cerca.)
  3. Feu clic al primer botó anomenat "Crea una sola cosa".
  4. Escriviu "RaspberryPi" com a nom de la cosa. Per a aquest pas, no cal cap entrada que no sigui el "Nom". Després de fer-ho, feu clic a Següent.

Pas 4: activació d'un certificat

Activació d'un certificat
Activació d'un certificat
Activació d'un certificat
Activació d'un certificat
  1. Al següent pas, feu clic al botó "crear certificat".
  2. Baixeu i emmagatzemeu els 4 enllaços de descàrrega de la pàgina següent en un directori o carpeta de treball. Per desar el fitxer CA arrel, feu clic amb el botó dret i desa-com.
  3. Feu clic a "Activa" i apareixerà un missatge d'èxit.
  4. Utilitzeu noms simples per als fitxers traient els números que hi ha davant de cada nom de fitxer i canvieu el nom del fitxer CA arrel a "rootca.pem".
  5. Feu clic a "Adjunta una política" per continuar.

Pas 5: afegir una política al certificat

Afegir una política al certificat
Afegir una política al certificat
Afegir una política al certificat
Afegir una política al certificat
Afegir una política al certificat
Afegir una política al certificat
  1. A la pàgina següent, si no teniu cap política, us demanaran que en feu una al botó "Crea una política".
  2. Si ja teniu una política existent, feu clic al botó "Crea una nova política" que apareix a continuació.
  3. Inseriu la informació següent al formulari de creació de polítiques.

    Nom: RaspberryPiSecurityPolicy

    Acció: iot: *

    Recurs ARN: *

    Efecte: permetre

  4. La vostra política hauria d'aparèixer a la pestanya "Política" de "Seguretat".
  5. A continuació, aneu a la pestanya "Certificats" que també es troba a "Seguretat" i adjunteu la vostra política al certificat que heu creat anteriorment.
  6. A la pàgina següent, feu clic a la vostra política i, a continuació, feu clic a "Adjunta".
  7. A la pàgina Detalls del que heu creat, a la pestanya "Interactua", hi ha un punt final de l'API REST que s'hauria de copiar i desar.
  8. AWS hauria de tenir ara una cosa que s’adjunta a una política i que tingui un certificat.

Pas 6: Configuració inicial del tema AWS SNS

Configuració inicial del tema AWS SNS
Configuració inicial del tema AWS SNS
Configuració inicial del tema AWS SNS
Configuració inicial del tema AWS SNS

SSH a Raspberry Pi i instal·leu AWS CLI mitjançant l'ordre pip següent:

sudo pip instal·la awscli

AWS CLI inclou una funció de finalització d’ordres, però no s’instal·la per defecte. Utilitzeu l'ordre següent per instal·lar la funció de finalització d'ordres a la interfície CLI de Raspberry Pi:

completa -C aws_completer aws

Configureu AWS CLI amb l’identificador de clau d’accés, la clau d’accés secreta, el nom de la regió d’AWS i el format de sortida d’ordres mitjançant l’ordre següent:

aws configure

A continuació, la consola us demanarà que empleneu la informació següent:

pi @ raspberrypi: configurar ~ $ aws

Identificador de clau d'accés AWS [Cap]: "Introduïu aquí la vostra clau d'accés d'usuari" Clau d'accés secret d'AWS [Cap]: "Introduïu aquí la clau d'accés secreta de l'usuari" Nom de la regió per defecte [Cap]: eu-central-1 Format de sortida predeterminat [Cap]: json pi @ raspberrypi: ~ $

Pas 7: Creació del fitxer Iot-role.trust.json

Creació del fitxer Iot-role.trust.json
Creació del fitxer Iot-role.trust.json
Creació del fitxer Iot-role.trust.json
Creació del fitxer Iot-role.trust.json
  1. Creeu un fitxer JSON amb la política IAM anterior amb el nom de fitxer iot-role.trust.json.
  2. Creeu el rol mitjançant AWS CLI mitjançant l'ordre següent

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

Pas 8: Creació del fitxer Iot-policy.json

Creació del fitxer Iot-policy.json
Creació del fitxer Iot-policy.json
Creació del fitxer Iot-policy.json
Creació del fitxer Iot-policy.json
  1. Creeu un fitxer JSON amb la política anterior amb el nom de fitxer iot-policy.json.
  2. Creeu la política de funcions mitjançant AWS CLI mitjançant l'ordre següent:

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

Pas 9: creeu un tema AWS SNS (primera part)

Creeu un tema AWS SNS (primera part)
Creeu un tema AWS SNS (primera part)
Creeu un tema AWS SNS (primera part)
Creeu un tema AWS SNS (primera part)
Creeu un tema AWS SNS (primera part)
Creeu un tema AWS SNS (primera part)
  1. A la barra de cerca de serveis AWS, cerqueu el servei "SNS" o aneu a
  2. Com que ara no teniu temes, feu clic a "Crea un tema nou" per crear un tema.
  3. Escriviu el nom i el nom de visualització del tema i feu clic a "Crea un tema" i apareixerà un tema nou quan tots els passos tinguin èxit.
  4. Feu clic al botó desplegable "Accions" i a "Edita la política del tema".

Pas 10: creeu un tema AWS SNS (part 2)

Creeu un tema AWS SNS (part 2)
Creeu un tema AWS SNS (part 2)
Creeu un tema AWS SNS (part 2)
Creeu un tema AWS SNS (part 2)
Creeu un tema AWS SNS (part 2)
Creeu un tema AWS SNS (part 2)
  1. Definiu la política per permetre que tothom pugui publicar i subscriure's, ja que es tracta de limitacions d'un compte AWSEducate.
  2. Subscriviu-vos a aquest tema per rebre actualitzacions publicades sobre aquest tema.
  3. Canvieu el protocol a "Correu electrònic" i introduïu el vostre correu electrònic al punt final.
  4. Aneu al vostre correu electrònic on heu escrit el vostre punt final, feu clic a l’enllaç de confirmació per confirmar la subscripció al correu electrònic per subscriure-us al tema.
  5. Aneu als serveis "AWS IoT"; al menú de navegació de l'esquerra, feu clic a "Actua". En aquesta pàgina es mostren les vostres regles i les podeu veure i editar. Actualment, no hi ha regles per al vostre tema de l'IoT, feu clic a "Crea una regla".

Pas 11: Creeu un tema AWS SNS (Part 3)

Creeu un tema AWS SNS (Part 3)
Creeu un tema AWS SNS (Part 3)
Creeu un tema AWS SNS (Part 3)
Creeu un tema AWS SNS (Part 3)
Creeu un tema AWS SNS (Part 3)
Creeu un tema AWS SNS (Part 3)
  1. Escriviu un nom al camp Nom de la regla. Al camp Descripció, escriviu una descripció de la vostra regla. Continuant amb la secció Font del missatge, escolliríem la versió SQL més actualitzada a la secció "Ús de la versió SQL". Escriviu * a l'atribut per seleccionar tot el missatge MQTT del tema, en el nostre cas el nostre tema és "TempHumid".
  2. A continuació, afegiu una acció de notificació "SNS" per a la vostra regla. A continuació, feu clic a "Configura l'acció".
  3. A la pàgina "Configura l'acció", trieu el tema SNS que acabeu de crear i el format del missatge com a RAW. Després, trieu el rol que acabeu de crear mitjançant AWS CLI i feu clic a "Afegeix una acció".
  4. La vostra acció es configurarà i tornarà a "Crea una regla".
  5. Feu clic a Edita si voleu editar la regla.

Pas 12: creeu un bucket a Amazon S3

Creeu un bucket a Amazon S3
Creeu un bucket a Amazon S3
Creeu un bucket a Amazon S3
Creeu un bucket a Amazon S3
Creeu un bucket a Amazon S3
Creeu un bucket a Amazon S3
  1. Cerqueu S3 a la barra de cerca d'AWS.
  2. A la pàgina Amazon S3, feu clic al botó "Crea un dipòsit" per començar.
  3. Empleneu el formulari emergent que apareix amb la informació següent:

    • Nom del dipòsit: seroma-bucket (ha de ser únic a tots els dipòsits existents d'Amazon S3)
    • Regió: US West (Oregon)
    • Copia la configuració: (Ignora)
  4. Per als passos 2 a 3, ometeu-lo fent clic a "Següent", ja que no hi ha res a canviar. Al pas 4, feu clic a "Crea dipòsit".
  5. Després de la creació, hauríeu de veure el vostre dipòsit a la pàgina inicial.

Pas 13: generar una política AWS (primera part)

Generar una política AWS (primera part)
Generar una política AWS (primera part)
Generar una política AWS (primera part)
Generar una política AWS (primera part)
Generar una política AWS (primera part)
Generar una política AWS (primera part)
  1. Feu clic al dipòsit que heu creat per entrar a la pàgina anterior i, a continuació, aneu a "Política de dipòsit" a la pestanya "Permisos".
  2. A continuació, feu clic a l'enllaç "Generador de polítiques" a la part inferior de la pàgina per generar la vostra política AWS.
  3. Al formulari, introduïu els valors següents:

    • Tipus de política: política S3 Bucket
    • Efecte: permetre
    • Director: *
    • Servei AWS: Amazon S3
    • Accions: GetObject
    • Nom del recurs d’Amazon (ARN): arn: aws: s3::: seroma-bucket
  4. Després d'emplenar la informació, feu clic a Afegeix una declaració.
  5. Feu clic al botó "Generar política".

Pas 14: generar una política AWS (part 2)

Generar una política AWS (2a part)
Generar una política AWS (2a part)
Generar una política AWS (2a part)
Generar una política AWS (2a part)
Generar una política AWS (2a part)
Generar una política AWS (2a part)
Generar una política AWS (2a part)
Generar una política AWS (2a part)
  1. Copieu els codis generats i feu clic a tanca.
  2. Torneu a l'editor d'Amazon S3 Bucket Policy i enganxeu els codis copiats prèviament.
  3. Afegiu un "/ *" als codis que hi ha just darrere dels codis de recursos, com a la imatge superior, i després feu clic a Desa.
  4. Després de fer-ho, el dipòsit es configurarà amb èxit i estarà llest per al seu ús.

Pas 15: creació de taules per a DynamoDB

Creació de taules per a DynamoDB
Creació de taules per a DynamoDB
Creació de taules per a DynamoDB
Creació de taules per a DynamoDB
  1. Cerqueu DynamoDB a la barra de cerca de AWS Services
  2. Feu clic a "Crea taula" i creeu 3 taules amb la informació següent: (només es canvien el "nom de la taula" i la "clau principal")

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • staffdata, nom d'usuari pk

Pas 16: Roomstatus.py

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

Aquesta secció conté el codi de roomstatus.py, que escriu totes les dades sobre la sala de servidors cada minut. Això inclou la temperatura, la humitat, el moviment (imatges i vídeos si són certes) i els registres d’accés. També escriu dades a un full de càlcul de Google, dades a DynamoDB, imatges i vídeos (si n’hi ha) a S3, mostra informació a la pantalla LCD, envia un SMS i un correu electrònic quan es sospita que s’observa una infracció o quan la temperatura o la humitat són irregulars.

Per executar fitxers python, canvieu el directori on es troba el fitxer i escriviu a la consola: "sudo python"

Imatge 2: Funcions declarades per permetre alertes per correu electrònic i SMS i carregar-les a S3

Imatge 3: Variables declarades perquè funcions i RPi funcionin

Imatge 4: Inici del bucle que obté els valors de temperatura i humitat del RPi. També escriu les dades en un full de càlcul de Google

Imatge 5: part de seguretat del bucle. Només s’activarà de 19:00 a 07:00 (hores de descans). Comprovarà si hi ha moviment en un lapse d’un minut. Si es detecta moviment, prendrà una imatge i un vídeo, els carregarà a S3, mentre que també escriurà informació a DynamoDB per consultar-la més endavant. Després, enviarà un SMS i un correu electrònic si alguna cosa és irregular.

Imatge 6: final del bucle. També escriu dades a DynamoDB i envia alertes en conseqüència. L'última línia del bucle farà que l'script es quedi en suspens fins que s'arribi al següent minut.

Pas 17: Rfid.py

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

Aquesta secció conté el codi per a rfid.py, que afegeix la funció de rastrejar quan un membre del personal accedeix a la sala de servidors. També forma part de l'aspecte de seguretat de Seroma, on un membre del personal no pot accedir a la sala de servidors després de l'horari d'oficina, per evitar una violació de dades. També envia un missatge de correu electrònic i SMS a tot el personal si se sospita una infracció.

Imatge 2: Inici de la lògica del lector RFID. Sempre que s’escaneja una targeta contra el lector, es pren l’identificador únic (uid) de la targeta. Després, intentem trobar el valor uid de la targeta a la taula de dades del personal per veure si la targeta pertany a algun dels membres del personal. fora de l’horari. Si és així, avisarà a la resta d’empleats mitjançant SMS i correu electrònic a les adreces de correu electrònic subscrites. Si encara està en horari d’oficina, escriurà una fila a la taula de registres d’accés de la base de dades amb les dades rellevants. També mostrarà un missatge de benvinguda a la pantalla LCD.

Pas 18: Server.py

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

Aquest és el fitxer server.py. Farem servir el marc Flask per al portal web. També s’adjunten els fitxers HTML a posar / plantilles.

Imatge 1: primera ruta per a Flask definida. Si no està iniciat la sessió, redirigirà l'usuari a la pàgina d'inici de sessió i, si ho està, a la pàgina del tauler. També defineix una funció que s'utilitzarà a la funció de transmissió en directe

Imatge 2, 3, 4: Rutes per a Flask. Obté dades de la taula DynamoDB i les torna als fitxers HTML perquè s’hi puguin utilitzar.

Imatge 5: 2 darreres rutes per a Flask. Maneja la funció de tancament de sessió i la funció de transmissió en directe. També especifica el port on s'executarà el lloc web.

Pas 19: Telegram.py

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

Aquesta secció inclou el codi del bot de telegrama de Seroma. Utilitza la biblioteca de telepot per tocar l’API Bot de Telegram. Funciona acceptant les consultes que rep i mostrant la informació respectiva a l'usuari. L’usuari pot escriure ‘ajuda’ per obtenir una llista completa d’ordres.

Imatge 1, 2: per configurar un bot de telegrama, heu d’utilitzar BotFather. Simplement executeu les instruccions per obtenir l'API HTTP que necessitem al nostre codi.

Imatge 4: exemple d'una funció que pren un nombre determinat de files de dades de la base de dades en funció de la sol·licitud de l'usuari

Imatge 5: Com prenem les dades de l'usuari i decidim què executar en conseqüència.

Pas 20: transmissió en directe (camera_pi.py)

Reproducció en directe (camera_pi.py)
Reproducció en directe (camera_pi.py)
Reproducció en directe (camera_pi.py)
Reproducció en directe (camera_pi.py)
Reproducció en directe (camera_pi.py)
Reproducció en directe (camera_pi.py)

Hem implementat una nova característica per al nostre sistema de control de sala de servidors, una transmissió en directe del que està passant a la sala de servidors, a la qual es pot accedir en qualsevol moment i lloc. Com funciona aquesta transmissió en directe: és una funció que es fa a Flask, juntament amb la càmera Pi. Els fotogrames de vídeo es descarreguen tal com passa a la vida real, de manera que podeu veure que hi ha un lleuger retard (1-2 segons) a mesura que es descarregen i s’uneixen els fotogrames de vídeo. Això no es podria fer sense filar, ja que el fil de fons llegeix els marcs de la càmera i emmagatzema el marc actual. Si compartiu tots aquests fotogrames, es generaria una transmissió en directe.

Imatge 2: es tracta d’un fitxer independent on s’emmagatzemen tots els fotogrames de vídeo i, com podeu veure, fem servir el mòdul picamera per accedir a la nostra càmera de raspberry pi, ja que és el que més coneixem. Tenim una càmera de classe perquè puguem importar la funció com si es tractés d’una transmissió en directe i no de diverses imatges que s’uneixen, de manera que al fitxer principal de l’aplicació la prendríem com una transmissió en directe sense haver de preocupar-nos del que passa entre bastidors.

Imatge 3: forma part del nostre fitxer server.py on es codifica la part de la transmissió en directe. La classe principal que hem importat per a això és la càmera del nostre fitxer camera_pi.py a la part superior del fitxer server.py. Hem definit una funció al nostre directori arrel, gen, però només entra en ús quan ens dirigim a / video_feed on es troba la nostra transmissió en directe, on passarà per aquesta funció i retornarà la transmissió en directe a la pàgina web.

Recomanat: