Indholdsfortegnelse:

Seroma: Server Room Manager: 20 trin
Seroma: Server Room Manager: 20 trin

Video: Seroma: Server Room Manager: 20 trin

Video: Seroma: Server Room Manager: 20 trin
Video: 10 most expensive schools in uganda 2024, Juli
Anonim
Seroma: Server Room Manager
Seroma: Server Room Manager

Seroma er en alt-i-en serverrumsmanager, der giver brugerne mulighed for at kontrollere serverens status (temperatur og luftfugtighed), adgangslogfiler i serverrummet samt overvåge selve serverrummet for eventuelle sikkerhedsbrud.

Trin 1: Log ind på din AWS -konto

Log ind på din AWS -konto
Log ind på din AWS -konto
Log ind på din AWS -konto
Log ind på din AWS -konto
Log ind på din AWS -konto
Log ind på din AWS -konto
Log ind på din AWS -konto
Log ind på din AWS -konto
  1. For vores loggede vi ind via AWS educate student gateway, da vi har en student aws -konto.
  2. Gå til fanen "AWS-konto" i navigationsmenuen øverst til højre.
  3. Klik på "Gå til din AWS Educate Starter -konto"
  4. Åbn konsol for at få adgang til din AWS Management Console.

Trin 2: Kom godt i gang med AWS IOT "ting"

Kom godt i gang med AWS IOT
Kom godt i gang med AWS IOT
Kom godt i gang med AWS IOT
Kom godt i gang med AWS IOT
  1. Søg efter “AWS IoT” i søgefeltet til AWS -tjenester.
  2. Klik på "Kom i gang" for at fortsætte til AWS IoT Console dashboard, hvor du kan se alle IoT -enheder, der er registreret på din AWS -konto.

Trin 3: Registrering af en AWS IOT "ting"

Registrering af en AWS IOT
Registrering af en AWS IOT
Registrering af en AWS IOT
Registrering af en AWS IOT
Registrering af en AWS IOT
Registrering af en AWS IOT
  1. I navigationslinjen skal du navigere for at administrere dine IoT "Ting".
  2. Klik på "Registrer en ting", hvis du ikke har noget endnu. (Hvis du allerede har en ting, skal du klikke på knappen "Opret" øverst til højre på skærmen ved siden af fanen Søg.)
  3. Klik på den første knap kaldet "Opret en enkelt ting".
  4. Skriv "RaspberryPi" som navnet på tingen. Til dette trin kræves ingen anden input end "Navn". Klik derefter på næste.

Trin 4: Aktivering af et certifikat

Aktivering af et certifikat
Aktivering af et certifikat
Aktivering af et certifikat
Aktivering af et certifikat
  1. I det næste trin skal du klikke på knappen "opret certifikat".
  2. Download og gem de 4 downloadlink på den næste side i et arbejdende bibliotek eller en mappe. For at gemme rod-CA-filen skal du højreklikke og gemme som.
  3. Klik på "Aktiver", og en succesmeddelelse skal vises.
  4. Brug venlige navne til filerne ved at fjerne tallene foran hvert filnavn og omdøbe rod -CA -filen til "rootca.pem".
  5. Klik på "Vedhæft en politik" for at fortsætte.

Trin 5: Tilføjelse af en politik til dit certifikat

Tilføjelse af en politik til dit certifikat
Tilføjelse af en politik til dit certifikat
Tilføjelse af en politik til dit certifikat
Tilføjelse af en politik til dit certifikat
Tilføjelse af en politik til dit certifikat
Tilføjelse af en politik til dit certifikat
  1. Hvis du ikke har en politik på den næste side, beder de dig om at lave en på knappen "Opret en politik".
  2. Hvis du allerede har en eksisterende politik, skal du klikke på knappen "Opret ny politik" herunder.
  3. Indsæt følgende oplysninger i formularen til oprettelse af politikker.

    Navn: RaspberryPiSecurityPolicy

    Handling: iot:*

    Ressource ARN: *

    Effekt: Tillad

  4. Din politik skal derefter vises på fanen "Politik" under "Sikkerhed".
  5. Gå derefter til fanen "Certifikater", der også er under "Sikkerhed", og vedhæft din politik til det certifikat, du tidligere har oprettet.
  6. På den næste side skal du klikke på din politik og derefter klikke på "Vedhæft".
  7. På siden Detaljer for den ting, du oprettede, under fanen "Interact" er der et REST API -slutpunkt, som skal kopieres og gemmes.
  8. AWS skal nu have en ting, der er knyttet til en politik og har et certifikat.

Trin 6: Indledende opsætning af AWS SNS-emne

Indledende opsætning til AWS SNS-emne
Indledende opsætning til AWS SNS-emne
Indledende opsætning til AWS SNS-emne
Indledende opsætning til AWS SNS-emne

SSH i Raspberry Pi og installer AWS CLI ved hjælp af følgende pip -kommando:

sudo pip installer awscli

AWS CLI inkluderer kommandofuldførelsesfunktion, men den er ikke installeret som standard. Brug følgende kommando til at installere kommandofuldførelsesfunktionen på Raspberry Pi's CLI -interface:

komplet -C aws_completer aws

Konfigurer AWS CLI med Access Key ID, Secret Access Key, AWS Region Name og Command Output format ved hjælp af følgende kommando:

aws konfigurere

Konsollen vil derefter bede dig om at udfylde følgende oplysninger:

pi@raspberrypi: ~ $ aws konfigurer

AWS-adgangsnøgle-id [Ingen]: "Sæt din brugers adgangsnøgle-id her" AWS-hemmelig adgangsnøgle [Ingen]: "Sæt din brugers hemmelige adgangsnøgle her" Standardregionnavn [Ingen]: eu-central-1 Standardoutputformat [Ingen]: json pi@raspberrypi: ~ $

Trin 7: Oprettelse af Iot-role.trust.json-fil

Oprettelse af Iot-role.trust.json-fil
Oprettelse af Iot-role.trust.json-fil
Oprettelse af Iot-role.trust.json-fil
Oprettelse af Iot-role.trust.json-fil
  1. Opret en JSON-fil med ovenstående IAM-politik med filnavnet iot-role.trust.json.
  2. Opret rollen ved hjælp af AWS CLI ved hjælp af følgende kommando

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

Trin 8: Oprettelse af Iot-policy.json-fil

Oprettelse af Iot-policy.json-fil
Oprettelse af Iot-policy.json-fil
Oprettelse af Iot-policy.json-fil
Oprettelse af Iot-policy.json-fil
  1. Opret en JSON-fil med ovenstående politik med filnavnet iot-policy.json.
  2. Opret rollepolitikken ved hjælp af AWS CLI ved hjælp af følgende kommando:

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

Trin 9: Opret et AWS SNS -emne (del 1)

Opret et AWS SNS -emne (del 1)
Opret et AWS SNS -emne (del 1)
Opret et AWS SNS -emne (del 1)
Opret et AWS SNS -emne (del 1)
Opret et AWS SNS -emne (del 1)
Opret et AWS SNS -emne (del 1)
  1. I søgefeltet AWS-tjenester søger du efter “SNS” -tjeneste eller går til
  2. Da du ikke har nogen emner nu, skal du klikke på "Opret nyt emne" for at oprette et emne.
  3. Indtast dit emnes navn og visningsnavn, og klik på "Opret emne", og et nyt emne vises, når alle trin er vellykkede.
  4. Klik på rullemenuen "Handlinger" og "Rediger emnepolitik".

Trin 10: Opret et AWS SNS -emne (del 2)

Opret et AWS SNS -emne (del 2)
Opret et AWS SNS -emne (del 2)
Opret et AWS SNS -emne (del 2)
Opret et AWS SNS -emne (del 2)
Opret et AWS SNS -emne (del 2)
Opret et AWS SNS -emne (del 2)
  1. Indstil politikken, så alle kan publicere og abonnere, da dette er begrænsninger for en AWSEducate -konto.
  2. Abonner på dette emne for at modtage opdateringer offentliggjort til dette emne.
  3. Skift protokollen til "E -mail", og indtast din e -mail ved slutpunktet.

  4. Gå til din e -mail, hvor du skrev dit slutpunkt, klik på bekræftelseslinket for at bekræfte dit e -mail -abonnement for at abonnere på emnet.
  5. Naviger til "AWS IoT" -tjenester, klik på "Act" i navigationsmenuen til venstre. Denne side er, hvor dine regler vises og er tilgængelige for dig at se og redigere. I øjeblikket er der ingen regler for din IoT -ting, klik på "Opret en regel".

Trin 11: Opret et AWS SNS -emne (del 3)

Opret et AWS SNS -emne (del 3)
Opret et AWS SNS -emne (del 3)
Opret et AWS SNS -emne (del 3)
Opret et AWS SNS -emne (del 3)
Opret et AWS SNS -emne (del 3)
Opret et AWS SNS -emne (del 3)
  1. Indtast et navn i feltet Navn for din regel. Indtast en beskrivelse for din regel i feltet Beskrivelse. Fortsat til meddelelseskildeafsnittet, ville vi vælge den mest opdaterede SQL -version i afsnittet "Brug af SQL -version". Skriv * i attributten for at vælge hele MQTT -beskeden fra emnet, i vores tilfælde er vores emne "TempHumid".
  2. Tilføj derefter en "SNS" -meddelelseshandling for din regel. Klik derefter på "Konfigurer handling".
  3. På siden "Konfigurer handling" skal du vælge det SNS -emne, du lige har oprettet, og meddelelsesformatet som RAW. Vælg derefter den rolle, du lige har oprettet ved hjælp af AWS CLI, og klik på "Tilføj handling".
  4. Din handling konfigureres og vender tilbage til "Opret en regel".
  5. Klik på rediger, hvis du vil redigere reglen.

Trin 12: Opret en spand på Amazon S3

Opret en spand på Amazon S3
Opret en spand på Amazon S3
Opret en spand på Amazon S3
Opret en spand på Amazon S3
Opret en spand på Amazon S3
Opret en spand på Amazon S3
  1. Søg efter S3 i søgefeltet AWS.
  2. På Amazon S3 -siden skal du klikke på knappen "Opret spand" for at komme i gang.
  3. Udfyld pop op-formularen, der vises med følgende oplysninger:

    • Spandnavn: seroma-spand (dette skal være unikt for alle eksisterende Amazon S3-spande)
    • Region: USA vest (Oregon)
    • Kopiindstillinger: (Ignorer)
  4. For trin 2 til 3 skal du bare springe det over ved at klikke på "Næste", da der ikke er noget, der skal ændres. I trin 4 skal du klikke på "Opret spand".
  5. Efter oprettelsen skal du se din spand på startsiden.

Trin 13: Opret en AWS -politik (del 1)

Opret en AWS -politik (del 1)
Opret en AWS -politik (del 1)
Opret en AWS -politik (del 1)
Opret en AWS -politik (del 1)
Opret en AWS -politik (del 1)
Opret en AWS -politik (del 1)
  1. Klik på den spand, du oprettede for at gå ind på ovenstående side, og gå derefter til "Bucket Policy" under fanen "Tilladelser".
  2. Klik derefter på linket "Policy Generator" nederst på siden for at generere din AWS -politik.
  3. Indtast følgende værdier i formularen:

    • Politiktype: S3 Bucket Policy
    • Effekt: Tillad
    • Forstander: *
    • AWS -service: Amazon S3
    • Handlinger: GetObject
    • Amazon ressource navn (ARN): arn: aws: s3::: seroma-bucket
  4. Når du har udfyldt oplysningerne, skal du klikke på Tilføj erklæring.
  5. Klik på knappen "Generer politik".

Trin 14: Opret en AWS -politik (del 2)

Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
Opret en AWS -politik (del 2)
  1. Kopier de genererede koder, og klik på Luk.
  2. Vend tilbage til din Amazon S3 Bucket Policy -editor, og indsæt de tidligere kopierede koder.
  3. Tilføj et "/*" i koderne lige bag ressourcekoderne, som på billedet ovenfor, og klik derefter på Gem.
  4. Efter at have gjort det, bliver din spand opsat og klar til brug.

Trin 15: Oprettelse af tabeller til DynamoDB

Oprettelse af tabeller til DynamoDB
Oprettelse af tabeller til DynamoDB
Oprettelse af tabeller til DynamoDB
Oprettelse af tabeller til DynamoDB
  1. Søg efter DynamoDB i søgefeltet AWS Services
  2. Klik på "Opret tabel" og opret 3 tabeller med nedenstående oplysninger: (Kun "tabelnavn" og "primærnøgle" ændres)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimeværdi
    • staffdata, pk brugernavn

Trin 16: Roomstatus.py

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

Dette afsnit indeholder koden til roomstatus.py, som hvert minut skriver alle data vedrørende selve serverrummet. Dette inkluderer temperatur, fugtighed, bevægelse (billeder og videoer, hvis det er sandt) og adgangslogfiler. Det skriver også data til et Google -regneark, data til DynamoDB, billeder og videoer (hvis nogen) til S3, viser oplysninger på LCD -skærmen, sender en SMS og e -mail, når der er mistanke om overtrædelse, eller når temperaturen eller luftfugtigheden er uregelmæssig.

For at køre python -filer skal du ændre bibliotek til hvor filen er placeret og skrive i konsollen: "sudo python"

Billede 2: Funktioner erklæret for at tillade SMS- og e -mail -advarsler og upload til S3

Billede 3: Variabler erklæret for funktioner og RPi til at fungere

Billede 4: Start af sløjfen, der henter temperatur- og fugtighedsværdierne fra RPi. Det skriver også dataene til et Google -regneark

Billede 5: Sikkerhedsdel af sløjfen. Det aktiveres kun fra kl. 19 til kl. 7 (slukket tid). Det vil kontrollere bevægelse i løbet af et minuts spænd. Hvis der registreres bevægelse, tager det et billede og en video, uploader det til S3, mens det også skriver oplysninger til DynamoDB til reference senere. Bagefter sender den en sms og e -mail, hvis noget er uregelmæssigt.

Billede 6: Sløjfens ende. Det skriver også data til DynamoDB og sender advarsler i overensstemmelse hermed. Den sidste linje i sløjfen får scriptet til at sove, indtil det næste minut er nået.

Trin 17: Rfid.py

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

Dette afsnit indeholder koden til rfid.py, som tilføjer funktionaliteten til at spore, når en medarbejder får adgang til serverrummet. Det er også en del af sikkerhedsaspektet ved Seroma, hvor en medarbejder ikke må få adgang til serverrummet efter kontortid for at forhindre et datainbrud. Det sender også en e -mail og sms'er alle ansatte, hvis der er mistanke om brud.

Billede 2: Start af RFID -læserlogikken. Når et kort scannes mod læseren, tages kortets unikke id (uid). Bagefter forsøger vi at finde kortets uid -værdi i personaledatatabellen for at se, om kortet tilhører nogen af medarbejderne. Billede 3: Hvis kortets uid findes i databasen, vil det kontrollere, om det er under kontoret off-timer. Hvis det er det, vil det advare resten af medarbejderne via SMS og e -mail til de abonnerede e -mail -adresser. Hvis det stadig er i kontortiden, vil det skrive en række til accesslog -tabellen i databasen med de relevante data. Det vil også vise en velkomstmeddelelse på LCD -displayet.

Trin 18: Server.py

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

Dette er filen server.py. Vi vil bruge Flask -rammen til webportalen. HTML -filerne, der skal indsættes /skabeloner er også vedhæftet.

Billede 1: Første rute for kolbe defineret. Det vil omdirigere brugeren til login -siden, hvis de ikke er logget ind, og dashboard -siden, hvis de er det. Definerer også en funktion, der skal bruges i livestream -funktionen

Billede 2, 3, 4: Ruter til kolbe. Det henter data fra DynamoDB -tabellen og returnerer dem derefter til HTML -filerne, så de kan bruges der.

Billede 5: Sidste 2 ruter til Flask. Det håndterer logout -funktionen og livestream -funktionen. Det angiver også den port, webstedet vil køre på.

Trin 19: Telegram.py

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

Dette afsnit indeholder koden til Seromas telegrambot. Det bruger telepotbiblioteket til at trykke på Telegrams Bot API. Det fungerer ved at acceptere de forespørgsler, det får, og vise de respektive oplysninger til brugeren. Brugeren kan skrive 'hjælp' for at få en komplet liste over kommandoer.

Billede 1, 2: For at konfigurere en telegram -bot skal du bruge BotFather. Kør bare igennem instruktionerne for at få den HTTP API, som vi har brug for i vores kode.

Billede 4: Eksempel på en funktion, der tager et bestemt antal rækker af data fra databasen baseret på brugerens anmodning

Billede 5: Hvordan vi tager brugerens input og beslutter, hvad der skal køres i overensstemmelse hermed.

Trin 20: Livestream (camera_pi.py)

Livestream (camera_pi.py)
Livestream (camera_pi.py)
Livestream (camera_pi.py)
Livestream (camera_pi.py)
Livestream (camera_pi.py)
Livestream (camera_pi.py)

Vi har implementeret en ny funktion til vores overvågningssystem til serverrum, en live stream af hvad der foregår i serverrummet, dette kan tilgås når som helst og hvor som helst. Sådan fungerer denne livestream: Det er en funktion, der udføres i Flask, sammen med Pi -kameraet. Videorammer downloades, som det sker i virkeligheden, så du kan faktisk se, at der er en lille forsinkelse (1-2 sekunder), når videorammer downloades og deles sammen. Dette kunne ikke gøres uden trådning, da baggrundstråden læser rammer fra kameraet og gemmer den aktuelle ramme. At dele alle disse rammer sammen ville derefter udsende en livestream.

Billede 2: Dette er en separat fil, hvor alle videorammer er gemt, og som du kan se, bruger vi picamera -modul til at få adgang til vores hindbær pi -kamera, da det er det, vi er mest bekendt med. Vi har et klassekamera, så vi kunne importere funktion, som om det er en livestream og ikke flere billeder, der samler sig, derfor ville hovedprogrammet tage det som en livestream uden at skulle bekymre dig om, hvad der sker bag kulisserne.

Billede 3: Dette er en del af vores server.py -fil, hvor livestreamdelen er kodet. Hovedklassen, vi importerede til dette, er kameraet fra vores camera_pi.py -fil øverst i vores server.py -fil. Vi definerede en funktion i vores rodmappe, gen, men den kommer først i brug, når vi går over til /video_feed, hvor vores livestream er, hvor den vil gå gennem denne funktion og returnere livestreamen på websiden.

Anbefalede: