Sadržaj:

Seroma: Server Room Manager: 20 koraka
Seroma: Server Room Manager: 20 koraka

Video: Seroma: Server Room Manager: 20 koraka

Video: Seroma: Server Room Manager: 20 koraka
Video: Место, ГДЕ случилась КРУПНЕЙШАЯ техногеннная КАТАСТРОФА ☢️ БЩУ-4 на ЧЕРНОБЫЛЬСКОЙ АЭС ☢️ 2024, Novembar
Anonim
Seroma: Upravitelj serverske sobe
Seroma: Upravitelj serverske sobe

Seroma je sve-u-jednom upravitelj serverske sobe koji omogućava korisnicima da provjere status servera (temperaturu i vlažnost), zapise pristupa serverske sobe, kao i da nadgledaju samu serversku sobu radi kršenja sigurnosti.

Korak 1: Prijavite se na svoj AWS račun

Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
  1. Za naše smo se prijavili putem AWS educate student gateway -a jer imamo studentski aws račun.
  2. Idite na karticu “AWS račun” u navigacijskom meniju u gornjem desnom kutu.
  3. Kliknite na "Idi na svoj AWS Educate Starter račun"
  4. Otvorite Konzolu za pristup AWS upravljačkoj konzoli.

Korak 2: Započnite s "stvarima" AWS IOT -a

Prvi koraci s AWS IOT -om
Prvi koraci s AWS IOT -om
Prvi koraci s AWS IOT -om
Prvi koraci s AWS IOT -om
  1. Potražite „AWS IoT“na traci za pretraživanje AWS usluga.
  2. Kliknite na "Započni" za nastavak na nadzornu ploču AWS IoT konzole na kojoj možete vidjeti sve IoT uređaje registrirane na vašem AWS računu.

Korak 3: Registrirajte "stvar" AWS IOT -a

Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
  1. Na navigacijskoj traci idite za upravljanje svojim stvarima IoT -a.
  2. Kliknite na "Registrirajte stvar" ako još nemate stvar. (Ako već imate stvar, kliknite na dugme "Kreiraj" u gornjem desnom uglu ekrana pored kartice za pretraživanje.)
  3. Kliknite na prvo dugme pod nazivom "Kreiraj jednu stvar".
  4. Upišite „RaspberryPi“kao naziv stvari. Za ovaj korak nije potreban drugi unos osim "Naziv". Nakon toga kliknite dalje.

Korak 4: Aktiviranje certifikata

Aktiviranje certifikata
Aktiviranje certifikata
Aktiviranje certifikata
Aktiviranje certifikata
  1. U sljedećem koraku kliknite gumb "kreiraj certifikat".
  2. Preuzmite i spremite 4 veze za preuzimanje na sljedećoj stranici u radni direktorij ili mapu. Da biste spremili root datoteku CA, kliknite desnim tasterom miša i sačuvajte kao.
  3. Kliknite na "Aktiviraj" i trebala bi se pojaviti poruka o uspjehu.
  4. Koristite prijateljska imena za datoteke uklanjanjem brojeva ispred imena svake datoteke i preimenovanjem osnovne datoteke CA u "rootca.pem".
  5. Kliknite na "Priloži politiku" za nastavak.

Korak 5: Dodavanje politike vašem certifikatu

Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
  1. Na sljedećoj stranici, ako nemate pravilo, od vas će biti zatraženo da ga napravite na gumbu „Kreiraj politiku“.
  2. Ako već imate postojeću politiku, kliknite dolje dugme "Kreiraj novu politiku".
  3. U obrazac za kreiranje politike umetnite sljedeće informacije.

    Naziv: RaspberryPiSecurityPolicy

    Akcija: iot:*

    Resurs ARN: *

    Efekat: Dozvoli

  4. Vaša pravila bi se tada trebala pojaviti na kartici "Politika" pod "Sigurnost".
  5. Zatim idite na karticu „Certifikati“koja se nalazi i pod „Sigurnost“i priložite svoju politiku certifikatu koji ste prethodno stvorili.
  6. Na sljedećoj stranici kliknite na svoju politiku, a zatim kliknite na "Priloži".
  7. Na stranici Detalji stvari koju ste stvorili, na kartici "Interakcija", nalazi se krajnja točka REST API -ja koju treba kopirati i spremiti.
  8. AWS bi sada trebao imati stvar koja je pridružena politici i koja ima certifikat.

Korak 6: Početno postavljanje za temu AWS SNS

Početna podešavanja za temu AWS SNS
Početna podešavanja za temu AWS SNS
Početna podešavanja za temu AWS SNS
Početna podešavanja za temu AWS SNS

SSH u Raspberry Pi i instalirajte AWS CLI pomoću sljedeće naredbe pip:

sudo pip install awscli

AWS CLI uključuje funkciju dovršavanja naredbi, ali nije standardno instalirana. Upotrijebite sljedeću naredbu za instaliranje funkcije dovršavanja naredbe na CLI sučelju Raspberry Pi:

dovršite -C aws_completer aws

Konfigurirajte AWS CLI s ID -om pristupnog ključa, tajnim pristupnim ključem, nazivom regije AWS i izlaznim formatom naredbe pomoću sljedeće naredbe:

aws configure

Konzola će vas tada zatražiti da ispunite sljedeće podatke:

pi@raspberrypi: ~ $ aws configure

AWS ID pristupnog ključa [Nema]: "Ovdje postavite ID pristupnog ključa svog korisnika" AWS Tajni pristupni ključ [Ništa]: "Ovdje postavite tajni pristupni ključ vašeg korisnika" Zadani naziv regije [Ništa]: eu-central-1 Zadani format izlaza [Ništa]: json pi@raspberrypi: ~ $

Korak 7: Kreiranje datoteke Iot-role.trust.json

Kreiranje datoteke Iot-role.trust.json
Kreiranje datoteke Iot-role.trust.json
Kreiranje datoteke Iot-role.trust.json
Kreiranje datoteke Iot-role.trust.json
  1. Kreirajte JSON datoteku s gore navedenim IAM pravilima s imenom datoteke iot-role.trust.json.
  2. Kreirajte ulogu pomoću AWS CLI pomoću sljedeće naredbe

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

Korak 8: Kreiranje datoteke Iot-policy.json

Kreiranje datoteke Iot-policy.json
Kreiranje datoteke Iot-policy.json
Kreiranje datoteke Iot-policy.json
Kreiranje datoteke Iot-policy.json
  1. Kreirajte JSON datoteku s gore navedenim pravilima s imenom datoteke iot-policy.json.
  2. Kreirajte politiku uloga koristeći AWS CLI pomoću sljedeće naredbe:

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

Korak 9: Kreirajte AWS SNS temu (1. dio)

Kreirajte AWS SNS temu (1. dio)
Kreirajte AWS SNS temu (1. dio)
Kreirajte AWS SNS temu (1. dio)
Kreirajte AWS SNS temu (1. dio)
Kreirajte AWS SNS temu (1. dio)
Kreirajte AWS SNS temu (1. dio)
  1. Na traci za pretraživanje AWS usluga potražite uslugu „SNS“ili idite na
  2. Kako sada nemate tema, kliknite "Kreiraj novu temu" da biste stvorili temu.
  3. Upišite naziv teme i naziv za prikaz i kliknite "Kreiraj temu" i nova tema će se pojaviti kada svi koraci budu uspješni.
  4. Kliknite na padajući gumb "Radnje" i "Uredi politiku teme".

Korak 10: Kreirajte AWS SNS temu (2. dio)

Kreirajte AWS SNS temu (2. dio)
Kreirajte AWS SNS temu (2. dio)
Kreirajte AWS SNS temu (2. dio)
Kreirajte AWS SNS temu (2. dio)
Kreirajte AWS SNS temu (2. dio)
Kreirajte AWS SNS temu (2. dio)
  1. Postavite pravila tako da svima dozvoljavaju objavljivanje i pretplatu jer su to ograničenja računa AWSEducate.
  2. Pretplatite se na ovu temu da biste primali ažuriranja objavljena na ovu temu.
  3. Promijenite protokol na “E -pošta” i na kraju unesite svoju e -poštu.

  4. Idite na svoju e -poštu gdje ste unijeli svoju krajnju točku, kliknite vezu za potvrdu da potvrdite pretplatu na e -poštu kako biste se pretplatili na temu.
  5. Idite na “AWS IoT” usluge, u navigacijskom meniju s lijeve strane kliknite na “Act”. Ova stranica prikazuje vaša pravila koja su vam dostupna za pregled i uređivanje. Trenutno ne postoje pravila za vašu stvar interneta stvari, kliknite na "Kreiraj pravilo".

Korak 11: Kreirajte AWS SNS temu (3. dio)

Kreirajte AWS SNS temu (3. dio)
Kreirajte AWS SNS temu (3. dio)
Kreirajte AWS SNS temu (3. dio)
Kreirajte AWS SNS temu (3. dio)
Kreirajte AWS SNS temu (3. dio)
Kreirajte AWS SNS temu (3. dio)
  1. Upišite ime u polje Name za svoje pravilo. U polje Opis upišite opis pravila. Nastavljajući na odjeljak Izvor poruke, odabrali bismo najnoviju SQL verziju u odjeljku “Korištenje SQL verzije”. Upišite * u atribut da biste odabrali cijelu MQTT poruku iz teme, u našem slučaju naša tema je "TempHumid".
  2. Zatim dodajte radnju obavještenja „SNS“za svoje pravilo. Zatim kliknite "Konfiguriraj radnju".
  3. Na stranici „Konfiguriraj radnju“odaberite SNS temu koju ste upravo stvorili i format poruke kao RAW. Nakon toga odaberite ulogu koju ste upravo stvorili pomoću AWS CLI i kliknite “Dodaj radnju”.
  4. Vaša će radnja biti konfigurirana i vratit će se na "Kreiraj pravilo".
  5. Pritisnite uređivanje ako želite urediti pravilo.

Korak 12: Napravite korpu na Amazon S3

Napravite korpu na Amazonu S3
Napravite korpu na Amazonu S3
Napravite korpu na Amazonu S3
Napravite korpu na Amazonu S3
Napravite korpu na Amazonu S3
Napravite korpu na Amazonu S3
  1. Potražite S3 na AWS traci za pretraživanje.
  2. Na stranici Amazon S3 kliknite gumb "Kreiraj korpu" za početak.
  3. Popunite iskačući obrazac koji se pojavi sa sljedećim podacima:

    • Naziv kante: seroma-bucket (ovo mora biti jedinstveno u svim postojećim Amazon S3 korpama)
    • Regija: US West (Oregon)
    • Kopiraj postavke: (Zanemari)
  4. Za korake 2 do 3, jednostavno ga preskočite klikom na “Dalje” jer se ništa ne može promijeniti. U koraku 4 kliknite "Kreiraj korpu".
  5. Nakon kreiranja, trebali biste vidjeti svoju kantu na početnoj stranici.

Korak 13: Generirajte AWS politiku (1. dio)

Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
  1. Kliknite na korpu koju ste stvorili da biste ušli na gornju stranicu, a zatim prijeđite na “Pravila korpe” na kartici “Dozvole”.
  2. Zatim kliknite vezu „Generator politika“pri dnu stranice da biste generirali svoju AWS politiku.
  3. U obrazac unesite sljedeće vrijednosti:

    • Vrsta politike: S3 Bucket Policy
    • Efekat: Dozvoli
    • Direktor: *
    • AWS usluga: Amazon S3
    • Radnje: GetObject
    • Naziv resursa Amazon (ARN): arn: aws: s3::: seroma-bucket
  4. Nakon što popunite podatke, kliknite na Dodaj izjavu.
  5. Kliknite na dugme „Generiši politiku“.

Korak 14: Generirajte AWS politiku (2. dio)

Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
  1. Kopirajte generirane kodove i kliknite Zatvori.
  2. Vratite se u uređivač pravila politike Amazon S3 i zalijepite prethodno kopirane kodove.
  3. Dodajte “/*” u kodove odmah iza kodova resursa, kao na gornjoj slici, a zatim kliknite spremi.
  4. Nakon toga vaša kanta će biti uspješno postavljena i spremna za upotrebu.

Korak 15: Kreiranje tablica za DynamoDB

Kreiranje tabela za DynamoDB
Kreiranje tabela za DynamoDB
Kreiranje tabela za DynamoDB
Kreiranje tabela za DynamoDB
  1. Potražite DynamoDB na traci za pretraživanje AWS usluga
  2. Kliknite na "Kreiraj tablicu" i stvorite 3 tablice s donjim podacima: (Samo se "naziv tablice" i "primarni ključ" mijenjaju)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • staffdata, pk korisničko ime

Korak 16: Roomstatus.py

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

Ovaj odjeljak sadrži kôd za roomstatus.py, koji svake minute zapisuje sve podatke o samoj serverskoj sobi. Ovo uključuje temperaturu, vlažnost, kretanje (slike i video zapisi ako su istiniti) i zapise o pristupu. On također zapisuje podatke u Google proračunsku tablicu, podatke u DynamoDB, slike i videozapise (ako ih ima) u S3, prikazuje informacije na LCD ekranu, šalje SMS i e -poštu kada se sumnja na kršenje ili kada je temperatura ili vlažnost neredovna.

Da biste pokrenuli python datoteke, promijenite direktorij u mjesto gdje se datoteka nalazi i upišite u konzolu: "sudo python"

Slika 2: Deklarisane funkcije koje dozvoljavaju upozorenja putem SMS -a i e -pošte i učitavanje na S3

Slika 3: Varijable deklarirane za funkcije i RPi za rad

Slika 4: Početak petlje koji dobiva vrijednosti temperature i vlažnosti iz RPi. Takođe zapisuje podatke u Google tabelu

Slika 5: Sigurnosni dio petlje. Aktivirat će se samo od 19:00 do 7:00 (van radnog vremena). Provjerit će kretanje u rasponu od jedne minute. Ako se detektira pokret, snimit će sliku i video zapis, učitati ih na S3, a informacije će također kasnije upisati u DynamoDB za referencu. Nakon toga će poslati SMS i e -poštu ako bilo što nije uredu.

Slika 6: Kraj petlje. Takođe zapisuje podatke u DynamoDB i u skladu s tim šalje upozorenja. Zadnji red petlje će učiniti da skripta zaspi do sljedeće minute.

Korak 17: Rfid.py

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

Ovaj odjeljak sadrži kôd za rfid.py, koji dodaje funkcionalnost za praćenje kada član osoblja pristupi sobi poslužitelja. To je također dio sigurnosnog aspekta Serome, gdje članu osoblja nije dozvoljen pristup serverskoj prostoriji nakon radnog vremena, kako bi se spriječilo kršenje podataka. Takođe se šalje e -poruka i SMS -ovi svom osoblju ako se sumnja na kršenje.

Slika 2: Pokretanje logike čitača RFID -a. Kad god se kartica skenira prema čitaču, uzima se jedinstveni ID (uid) kartice. Nakon toga pokušavamo pronaći uid vrijednost kartice u tablici podataka o osoblju da vidimo pripada li kartica nekom od osoblja. Slika 3: Ako uid kartice postoji u bazi podataka, provjerit će je li u toku ureda van radnog vremena. Ako jeste, upozorit će ostale zaposlenike putem SMS -a i e -pošte na pretplaćene adrese e -pošte. Ako je još uvijek u toku radnog vremena, zapisat će red u pristupnu tablicu u bazi podataka sa relevantnim podacima. Također će prikazati poruku dobrodošlice na LCD ekranu.

Korak 18: Server.py

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

Ovo je datoteka server.py. Za web portal koristit ćemo Flask framework. Priložene su i HTML datoteke koje treba staviti /predlošci.

Slika 1: Prva ruta za Flask definirana. Preusmjerit će korisnika na stranicu za prijavu ako nije prijavljen, te na stranicu nadzorne ploče ako jesu. Također definira funkciju koja će se koristiti u funkciji prijenosa uživo

Slika 2, 3, 4: Rute za bocu. Dobija podatke iz DynamoDB tablice, a zatim ih vraća u HTML datoteke kako bi se tamo mogli koristiti.

Slika 5: Zadnje 2 rute za Flask. Rukuje funkcijom odjave i funkcijom prijenosa uživo. Također navodi port na kojem će web stranica raditi.

Korak 19: Telegram.py

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

Ovaj odjeljak uključuje kôd za Seroma -in telegram bot. Koristi biblioteku telepota da dodirne Telegramov Bot API. Radi tako što prihvaća upite koje dobije i prikazuje odgovarajuće informacije korisniku. Korisnik može upisati „help“za potpunu listu naredbi.

Slika 1, 2: Da biste postavili telegramskog bota, morate koristiti BotFather. Samo prođite kroz upute da biste dobili HTTP API koji nam je potreban u našem kodu.

Slika 4: Primjer funkcije koja uzima određeni broj redova podataka iz baze podataka na osnovu zahtjeva korisnika

Slika 5: Kako uzimamo unos korisnika i odlučujemo šta ćemo pokrenuti u skladu s tim.

Korak 20: Prijenos uživo (camera_pi.py)

Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)

Implementirali smo novu funkciju za naš sistem za nadgledanje serverske sobe, prenos uživo onoga što se dešava u serverskoj sobi, kojem se može pristupiti u bilo koje vrijeme i bilo gdje. Kako funkcionira ovaj prijenos uživo: To je funkcija koja se radi u Flasku, zajedno s Pi kamerom. Video okviri se preuzimaju kao što se događa u stvarnom životu, tako da zapravo možete vidjeti da postoji malo kašnjenje (1-2 sekunde) dok se video okviri preuzimaju i sastavljaju. To se ne bi moglo učiniti bez uvlačenja niti, jer pozadinska nit čita okvire s kamere i pohranjuje trenutni okvir. Spajanjem svih ovih okvira tada bi se emitirao prijenos uživo.

Slika 2: Ovo je zasebna datoteka u kojoj su pohranjeni svi video okviri i kao što vidite, mi koristimo modul pikamera za pristup našoj malinovoj pi kameri, to nam je najviše poznato. Imamo klasu Kamera tako da možemo uvesti funkciju kao da je prijenos uživo, a ne više slika koje se sastavljaju, pa bi je u glavnoj aplikacijskoj datoteci to uzelo kao prijenos uživo bez brige o tome što se događa iza scene.

Slika 3: Ovo je dio naše datoteke server.py u kojoj je kodiran dio prijenosa uživo. Glavna klasa koju smo uvezli za ovo je Kamera iz naše datoteke camera_pi.py na vrhu naše datoteke server.py. Definirali smo funkciju u našem korijenskom direktoriju, gen, međutim ona će se koristiti tek kada prijeđemo na /video_feed gdje se nalazi naš prijenos uživo, gdje će proći kroz ovu funkciju i vratiti prijenos uživo na web stranicu.

Preporučuje se: