Innholdsfortegnelse:

Seroma: Server Room Manager: 20 trinn
Seroma: Server Room Manager: 20 trinn

Video: Seroma: Server Room Manager: 20 trinn

Video: Seroma: Server Room Manager: 20 trinn
Video: Лесли Морган Штайнер: Почему жертвы домашнего насилия не уходят от своих мучителей 2024, November
Anonim
Seroma: Server Room Manager
Seroma: Server Room Manager

Seroma er en alt-i-ett-serverrombehandler som lar brukerne sjekke statusen til serverne (temperatur og fuktighet), tilgangsloggene til serverrommet, samt overvåke selve serverrommet for eventuelle sikkerhetsbrudd.

Trinn 1: Logg på AWS -kontoen din

Logg på AWS -kontoen din
Logg på AWS -kontoen din
Logg på AWS -kontoen din
Logg på AWS -kontoen din
Logg på AWS -kontoen din
Logg på AWS -kontoen din
Logg på AWS -kontoen din
Logg på AWS -kontoen din
  1. For vår, logget vi inn via AWS educate student gateway da vi har en student aws -konto.
  2. Gå til kategorien "AWS-konto" på navigasjonsmenyen øverst til høyre.
  3. Klikk på "Gå til AWS Educate Starter -kontoen din"
  4. Åpne konsollen for å få tilgang til AWS Management Console.

Trinn 2: Komme i gang med AWS IOT "ting"

Komme i gang med AWS IOT
Komme i gang med AWS IOT
Komme i gang med AWS IOT
Komme i gang med AWS IOT
  1. Søk etter “AWS IoT” i søkefeltet til AWS -tjenester.
  2. Klikk på "Kom i gang" for å fortsette til dashbordet i AWS IoT Console, hvor du kan se alle IoT -enhetene som er registrert i AWS -kontoen din.

Trinn 3: Registrering av en AWS IOT "ting"

Registrering av en AWS IOT
Registrering av en AWS IOT
Registrering av en AWS IOT
Registrering av en AWS IOT
Registrering av en AWS IOT
Registrering av en AWS IOT
  1. I navigasjonslinjen navigerer du for å administrere IoT -tingene dine.
  2. Klikk på "Registrer en ting" hvis du ikke har noe enda. (Hvis du allerede har en ting, klikker du på "Opprett" -knappen øverst til høyre på skjermen ved siden av fanen Søk.)
  3. Klikk på den første knappen som heter "Lag en enkelt ting".
  4. Skriv "RaspberryPi" som navnet på tingen. For dette trinnet kreves ingen annen input enn "Navn". Etter å ha gjort det, klikker du på neste.

Trinn 4: Aktivering av et sertifikat

Aktivering av et sertifikat
Aktivering av et sertifikat
Aktivering av et sertifikat
Aktivering av et sertifikat
  1. I neste trinn klikker du på "opprett sertifikat" -knappen.
  2. Last ned og lagre de fire nedlastingskoblingene på neste side i en fungerende katalog eller mappe. For å lagre rot-CA-filen, høyreklikk og lagre som.
  3. Klikk på "Aktiver" og en suksessmelding skal vises.
  4. Bruk vennlige navn på filene ved å fjerne tallene foran hvert filnavn, og gi nytt navn til rot -CA -filen til "rootca.pem".
  5. Klikk på "Legg ved en policy" for å fortsette.

Trinn 5: Legge til en policy i sertifikatet ditt

Legge til en policy i sertifikatet ditt
Legge til en policy i sertifikatet ditt
Legge til en policy i sertifikatet ditt
Legge til en policy i sertifikatet ditt
Legge til en policy i sertifikatet ditt
Legge til en policy i sertifikatet ditt
  1. På den neste siden, hvis du ikke har en policy, vil de be deg om å lage en på "Opprett en policy" -knappen.
  2. Hvis du allerede har en eksisterende policy, klikker du på "Opprett ny policy" -knappen nedenfor.
  3. Sett inn følgende informasjon i policyopprettingsskjemaet.

    Navn: RaspberryPiSecurityPolicy

    Handling: iot:*

    Ressurs ARN: *

    Effekt: Tillat

  4. Retningslinjene dine skal da vises i kategorien "Policy" under "Sikkerhet".
  5. Gå deretter til kategorien "Sertifikater" som også er under "Sikkerhet", og legg ved politikken din til sertifikatet du opprettet tidligere.
  6. På neste side klikker du på retningslinjene dine og klikker deretter "Legg ved".
  7. På siden Detaljer for tingen du opprettet, under fanen "Samhandle", er det et REST API -endepunkt som skal kopieres og lagres.
  8. AWS skal nå ha en ting som er knyttet til en policy og har et sertifikat.

Trinn 6: Første oppsett for AWS SNS Topic

Første oppsett for AWS SNS Topic
Første oppsett for AWS SNS Topic
Første oppsett for AWS SNS Topic
Første oppsett for AWS SNS Topic

SSH i Raspberry Pi og installer AWS CLI ved hjelp av følgende pip -kommando:

sudo pip installer awscli

AWS CLI inkluderer kommandofullføringsfunksjon, men den er ikke installert som standard. Bruk følgende kommando for å installere kommandofullføringsfunksjonen på Raspberry Pi's CLI -grensesnitt:

komplett -C aws_completer aws

Konfigurer AWS CLI med Access Key ID, Secret Access Key, AWS Region Name og Command Output format ved å bruke følgende kommando:

aws konfigurere

Konsollen vil deretter be deg om å fylle ut følgende informasjon:

pi@raspberrypi: ~ $ aws konfigurere

AWS Access Key ID [None]: "Sett brukerens Access Key ID her" AWS Secret Access Key [None]: "Sett brukerens hemmelige tilgangsnøkkel her" Standard regionnavn [None]: eu-central-1 Standard output format [Ingen]: json pi@raspberrypi: ~ $

Trinn 7: Opprette Iot-role.trust.json-fil

Opprette Iot-role.trust.json-fil
Opprette Iot-role.trust.json-fil
Opprette Iot-role.trust.json-fil
Opprette Iot-role.trust.json-fil
  1. Opprett en JSON-fil med ovennevnte IAM-policy med filnavnet iot-role.trust.json.
  2. Lag rollen ved hjelp av AWS CLI ved å bruke følgende kommando

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

Trinn 8: Opprette Iot-policy.json-fil

Opprette Iot-policy.json-fil
Opprette Iot-policy.json-fil
Opprette Iot-policy.json-fil
Opprette Iot-policy.json-fil
  1. Lag en JSON-fil med retningslinjene ovenfor med filnavnet iot-policy.json.
  2. Opprett rollepolicyen ved hjelp av AWS CLI ved å bruke følgende kommando:

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

Trinn 9: Lag et AWS SNS -emne (del 1)

Lag et AWS SNS -emne (del 1)
Lag et AWS SNS -emne (del 1)
Lag et AWS SNS -emne (del 1)
Lag et AWS SNS -emne (del 1)
Lag et AWS SNS -emne (del 1)
Lag et AWS SNS -emne (del 1)
  1. I søkefeltet til AWS-tjenester, Søk etter “SNS” -tjeneste eller gå til
  2. Siden du ikke har noen emner nå, klikker du på "Opprett nytt emne" for å opprette et emne.
  3. Skriv inn emnens navn og visningsnavn, og klikk "Opprett emne", og et nytt emne vil vises når alle trinnene er vellykkede.
  4. Klikk på rullegardinmenyen "Handlinger" og "Rediger emnepolicy".

Trinn 10: Lag et AWS SNS -emne (del 2)

Lag et AWS SNS -emne (del 2)
Lag et AWS SNS -emne (del 2)
Lag et AWS SNS -emne (del 2)
Lag et AWS SNS -emne (del 2)
Lag et AWS SNS -emne (del 2)
Lag et AWS SNS -emne (del 2)
  1. Angi retningslinjene slik at alle kan publisere og abonnere, ettersom dette er begrensninger for en AWSEducate -konto.
  2. Abonner på dette emnet for å motta oppdateringer publisert til dette emnet.
  3. Endre protokollen til "E -post" og skriv inn e -posten din ved sluttpunktet.

  4. Gå til e -posten din der du skrev inn endepunktet ditt, klikk på bekreftelseslenken for å bekrefte e -postabonnementet ditt for å abonnere på emnet.
  5. Naviger til “AWS IoT” -tjenester, klikk på “Act” i navigasjonsmenyen til venstre. Denne siden er hvor reglene dine vises og er tilgjengelige for deg å se og redigere. Foreløpig er det ingen regler for IoT -tingen din, klikk på "Opprett en regel".

Trinn 11: Lag et AWS SNS -emne (del 3)

Lag et AWS SNS -emne (del 3)
Lag et AWS SNS -emne (del 3)
Lag et AWS SNS -emne (del 3)
Lag et AWS SNS -emne (del 3)
Lag et AWS SNS -emne (del 3)
Lag et AWS SNS -emne (del 3)
  1. Skriv inn et navn i feltet Navn for regelen. Skriv inn en beskrivelse for regelen i feltet Beskrivelse. Fortsett til delen Meldingskilde, ville vi velge den mest oppdaterte SQL -versjonen i delen "Bruke SQL -versjon". Skriv * i attributtet for å velge hele MQTT -meldingen fra emnet, i vårt tilfelle er temaet vårt “TempHumid”.
  2. Legg deretter til en "SNS" varslingshandling for regelen din. Klikk deretter "Konfigurer handling".
  3. På siden "Konfigurer handling" velger du SNS -emnet du nettopp har opprettet, og meldingsformatet som RAW. Velg deretter rollen du nettopp opprettet ved hjelp av AWS CLI, og klikk på "Legg til handling".
  4. Handlingen din blir konfigurert og går tilbake til "Opprett en regel".
  5. Klikk på rediger hvis du vil redigere regelen.

Trinn 12: Lag en bøtte på Amazon S3

Lag en bøtte på Amazon S3
Lag en bøtte på Amazon S3
Lag en bøtte på Amazon S3
Lag en bøtte på Amazon S3
Lag en bøtte på Amazon S3
Lag en bøtte på Amazon S3
  1. Søk etter S3 i AWS -søkefeltet.
  2. På Amazon S3 -siden klikker du på "Create Bucket" -knappen for å komme i gang.
  3. Fyll ut popup-skjemaet som vises med følgende informasjon:

    • Bucket Name: seroma-bucket (dette må være unikt for alle eksisterende Amazon S3-bøtter)
    • Region: USA vest (Oregon)
    • Kopiinnstillinger: (Ignorer)
  4. For trinn 2 til 3, hopper du bare over det ved å klikke "Neste" da det ikke er noe som skal endres. I trinn 4 klikker du på "Opprett bøtte".
  5. Etter opprettelsen bør du se bøtta på hjemmesiden.

Trinn 13: Lag en AWS -policy (del 1)

Lag en AWS -policy (del 1)
Lag en AWS -policy (del 1)
Lag en AWS -policy (del 1)
Lag en AWS -policy (del 1)
Lag en AWS -policy (del 1)
Lag en AWS -policy (del 1)
  1. Klikk på bøtten du opprettet for å gå til siden ovenfor, og fortsett til "Bucket Policy" under "Tillatelser" -fanen.
  2. Klikk deretter på koblingen "Policy Generator" nederst på siden for å generere AWS -policyen din.
  3. Skriv inn følgende verdier i skjemaet:

    • Type retningslinjer: S3 Bucket Policy
    • Effekt: Tillat
    • Rektor: *
    • AWS -tjeneste: Amazon S3
    • Handlinger: GetObject
    • Amazonas ressursnavn (ARN): arn: aws: s3::: seroma-bucket
  4. Etter å ha fylt ut informasjonen, klikker du på Legg til erklæring.
  5. Klikk på knappen "Generer retningslinjer".

Trinn 14: Lag en AWS -policy (del 2)

Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
Lag en AWS -policy (del 2)
  1. Kopier kodene som er generert, og klikk på Lukk.
  2. Gå tilbake til Amazon S3 Bucket Policy -editoren og lim inn de tidligere kopierte kodene.
  3. Legg til en “/*” i kodene rett bak ressurskodene, som på bildet ovenfor, og klikk deretter på lagre.
  4. Etter at du har gjort det, blir skuffen din vellykket satt opp og klar til bruk.

Trinn 15: Opprette tabeller for DynamoDB

Opprette tabeller for DynamoDB
Opprette tabeller for DynamoDB
Opprette tabeller for DynamoDB
Opprette tabeller for DynamoDB
  1. Søk etter DynamoDB i søkelinjen i AWS Services
  2. Klikk på "Lag tabell" og lag 3 tabeller med informasjonen nedenfor: (Bare "tabellnavn" og "primærnøkkel" endres)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • staffdata, pk brukernavn

Trinn 16: Roomstatus.py

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

Denne delen inneholder koden for roomstatus.py, som skriver alle data om selve serverrommet hvert minutt. Dette inkluderer temperatur, fuktighet, bevegelse (bilder og videoer hvis det er sant) og tilgangslogger. Den skriver også data til et Google -regneark, data til DynamoDB, bilder og videoer (hvis noen) til S3, viser informasjon på LCD -skjermen, sender en SMS og e -post når det er mistanke om brudd, eller når temperaturen eller fuktigheten er uregelmessig.

For å kjøre python -filer, bytt katalog til hvor filen er plassert og skriv inn konsollen: "sudo python"

Bilde 2: Funksjoner erklært for å tillate SMS- og e -postvarsler, og opplasting til S3

Bilde 3: Variabler deklarert for funksjoner og RPi for å fungere

Bilde 4: Start av sløyfen som henter temperatur og fuktighet fra RPi. Den skriver også dataene til et Google -regneark

Bilde 5: Sikkerhetsdel av løkken. Den aktiveres bare fra kl. 19.00 til 07.00 (utenom åpningstid). Den vil se etter bevegelse i løpet av ett minutt. Hvis det oppdages bevegelse, vil det ta et bilde og en video, laste den opp til S3, mens den også skriver informasjon til DynamoDB for referanse senere. Etterpå vil den sende en SMS og e -post hvis noe er uregelmessig.

Bilde 6: Sluttenden. Den skriver også data til DynamoDB og sender varsler tilsvarende. Den siste linjen i sløyfen får scriptet til å sove til neste minutt er nådd.

Trinn 17: Rfid.py

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

Denne delen inneholder koden for rfid.py, som legger til funksjonaliteten for å spore når en medarbeider får tilgang til serverrommet. Det er også en del av sikkerhetsaspektet til Seroma, der en medarbeider ikke har tilgang til serverrommet etter kontortid, for å forhindre brudd på data. Den sender også en e -post og SMSer alle ansatte hvis det er mistanke om brudd.

Bilde 2: Starten på RFID -leserlogikken. Når et kort blir skannet mot leseren, blir den unike ID (uid) for kortet tatt. Etterpå prøver vi å finne kortets uid -verdi i personaldatatabellen for å se om kortet tilhører noen av de ansatte. Bilde 3: Hvis uid av kortet finnes i databasen, vil det sjekke om det er under kontoret off-timer. Hvis det er det, vil det varsle resten av de ansatte via SMS og e -post til de abonnerte e -postadressene. Hvis det fortsatt er i kontortiden, vil det skrive en rad til accesslog -tabellen i databasen med de relevante dataene. Det vil også vise en velkomstmelding på LCD -skjermen.

Trinn 18: Server.py

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

Dette er filen server.py. Vi bruker Flask -rammeverket for nettportalen. HTML -filene som skal settes inn /maler er også vedlagt.

Bilde 1: Første rute for kolbe definert. Det vil omdirigere brukeren til påloggingssiden hvis de ikke er logget inn, og dashbordssiden hvis de er det. Definerer også en funksjon som skal brukes i livestream -funksjonen

Bilde 2, 3, 4: Ruter for kolbe. Den henter data fra DynamoDB -tabellen og returnerer dem deretter til HTML -filene slik at de kan brukes der.

Bilde 5: Siste 2 ruter for Flask. Den håndterer avloggingsfunksjonen og livestream -funksjonen. Den spesifiserer også porten nettstedet skal kjøre på.

Trinn 19: Telegram.py

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

Denne delen inneholder koden for Seromas telegrambot. Den bruker telepotbiblioteket til å trykke på Telegrams Bot API. Det fungerer ved å godta spørsmålene det får og vise den respektive informasjonen til brukeren. Brukeren kan skrive 'hjelp' for en fullstendig liste over kommandoer.

Bilde 1, 2: For å sette opp en telegram -bot må du bruke BotFather. Bare følg instruksjonene for å få HTTP -API -et vi trenger i koden vår.

Bilde 4: Eksempel på en funksjon som tar et visst antall rader med data fra databasen basert på brukerens forespørsel

Bilde 5: Hvordan vi tar brukerens innspill og bestemmer hva vi skal kjøre deretter.

Trinn 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 implementert en ny funksjon for vårt overvåkingssystem for serverrom, en direktesending av det som skjer i serverrommet, dette kan nås når som helst, hvor som helst. Hvordan denne livestrømmen fungerer: Det er en funksjon som gjøres i Flask, sammen med Pi -kameraet. Videorammer lastes ned slik det skjer i virkeligheten, så du kan faktisk se at det er en liten forsinkelse (1-2 sekunder) ettersom videorammer blir lastet ned og satt sammen. Dette kunne ikke gjøres uten tråding, ettersom bakgrunnstråden leser rammer fra kameraet og lagrer gjeldende ramme. Hvis du deler alle disse rammene sammen, sendes deretter en livestream.

Bilde 2: Dette er en egen fil der alle videorammer er lagret, og som du kan se bruker vi picamera -modulen for å få tilgang til bringebær -pi -kameraet vårt, da det er det vi er mest kjent med. Vi har et klassekamera slik at vi kan importere funksjonen som om det er en livestream og ikke flere bilder som samles, og derfor vil hovedprogrammet ta det som en livestream uten å måtte bekymre deg for hva som skjer bak kulissene.

Bilde 3: Dette er en del av vår server.py -fil der live stream -delen er kodet. Hovedklassen vi importerte for dette er kameraet fra vår camera_pi.py -fil øverst i server.py -filen. Vi definerte en funksjon i rotkatalogen vår, gen, men den blir bare tatt i bruk når vi drar til /video_feed hvor livestrømmen vår er, hvor den vil gå gjennom denne funksjonen og returnere livestrømmen på nettsiden.

Anbefalt: