Tartalomjegyzék:

Seroma: Server Room Manager: 20 lépés
Seroma: Server Room Manager: 20 lépés

Videó: Seroma: Server Room Manager: 20 lépés

Videó: Seroma: Server Room Manager: 20 lépés
Videó: Когда Контрнаступление Украины? (10 июня 2023) 2024, November
Anonim
Seroma: Kiszolgálószoba -menedzser
Seroma: Kiszolgálószoba -menedzser

A Seroma egy all-in-one szerverhely-kezelő, amely lehetővé teszi a felhasználók számára, hogy ellenőrizzék a kiszolgálók állapotát (hőmérséklet és páratartalom), a kiszolgálószoba hozzáférési naplóit, valamint figyeljék a szerverhelyiséget bármilyen biztonsági hiba miatt.

1. lépés: Jelentkezzen be AWS -fiókjába

Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
Jelentkezzen be AWS -fiókjába
  1. A mieink számára az AWS Educate hallgatói átjárón keresztül jelentkeztünk be, mivel van hallgatói aws fiókunk.
  2. Lépjen az „AWS-fiók” fülre a jobb felső sarokban található navigációs menüben.
  3. Kattintson az „Ugrás az AWS Educate Starter -fiókjához” gombra
  4. Nyissa meg a konzolt az AWS felügyeleti konzol eléréséhez.

2. lépés: Első lépések az AWS IOT "dolgokkal"

Az AWS IOT használata
Az AWS IOT használata
Az AWS IOT használata
Az AWS IOT használata
  1. Keressen rá az „AWS IoT” kifejezésre az AWS szolgáltatások keresősávjában.
  2. Kattintson az „Első lépések” gombra az AWS IoT Console irányítópultjának megtekintéséhez, ahol megtekintheti az AWS -fiókjában regisztrált összes IoT -eszközt.

3. lépés: Az AWS IOT "dolog" regisztrálása

AWS IOT regisztrálása
AWS IOT regisztrálása
AWS IOT regisztrálása
AWS IOT regisztrálása
AWS IOT regisztrálása
AWS IOT regisztrálása
  1. A navigációs sávon navigáljon az IoT „dolgai” kezeléséhez.
  2. Kattintson a „Regisztráljon valamit” gombra, ha még nincs dolga. (Ha már rendelkezik valamivel, kattintson a „Létrehozás” gombra a képernyő jobb felső sarkában, a keresés fül mellett.)
  3. Kattintson az első gombra: „Hozzon létre egy dolgot”.
  4. Írja be a „RaspberryPi” nevet a dologhoz. Ehhez a lépéshez nincs szükség más adatokra, mint a „Név”. Ezt követően kattintson a Tovább gombra.

4. lépés: Tanúsítvány aktiválása

Tanúsítvány aktiválása
Tanúsítvány aktiválása
Tanúsítvány aktiválása
Tanúsítvány aktiválása
  1. A következő lépésben kattintson a „tanúsítvány létrehozása” gombra.
  2. Töltse le és tárolja a 4 letöltési linket a következő oldalon egy működő könyvtárba vagy mappába. A gyökér CA fájl mentéséhez kattintson a jobb gombbal, és mentse másként.
  3. Kattintson az „Aktiválás” gombra, és megjelenik egy sikeres üzenet.
  4. Használjon barátságos neveket a fájlokhoz úgy, hogy eltávolítja a számokat az egyes fájlnevek előtt, és átnevezi a gyökér CA fájlt "rootca.pem" -re.
  5. A folytatáshoz kattintson a "Szabályzat csatolása" gombra.

5. lépés: Irányelv hozzáadása a tanúsítványhoz

Irányelv hozzáadása a tanúsítványhoz
Irányelv hozzáadása a tanúsítványhoz
Irányelv hozzáadása a tanúsítványhoz
Irányelv hozzáadása a tanúsítványhoz
Irányelv hozzáadása a tanúsítványhoz
Irányelv hozzáadása a tanúsítványhoz
  1. Ha a következő oldalon nincs házirendje, akkor a „Házirend létrehozása” gombra kattintva kéri, hogy hozzon létre egyet.
  2. Ha már rendelkezik meglévő házirenddel, kattintson az alábbi „Új házirend létrehozása” gombra.
  3. Illessze be a következő információkat a házirend -létrehozási űrlapba.

    Név: RaspberryPiSecurityPolicy

    Akció: iot:*

    Erőforrás ARN: *

    Hatás: Engedélyezés

  4. A házirendnek ezután meg kell jelennie a „Házirend” lapon a „Biztonság” részben.
  5. Ezután lépjen a „Biztonság” alatt található „Tanúsítványok” fülre, és csatolja házirendjét a korábban létrehozott tanúsítványhoz.
  6. A következő oldalon kattintson a házirendre, majd a „Csatolás” gombra.
  7. A létrehozott dolog Részletek oldalán az „Interakció” lapon található egy REST API végpont, amelyet másolni és menteni kell.
  8. Az AWS -nek most rendelkeznie kell egy dologgal, amely egy házirendhez van csatolva, és rendelkezik tanúsítvánnyal.

6. lépés: Kezdeti beállítás az AWS SNS témához

Kezdeti beállítás az AWS SNS témához
Kezdeti beállítás az AWS SNS témához
Kezdeti beállítás az AWS SNS témához
Kezdeti beállítás az AWS SNS témához

SSH -t a Raspberry Pi -be, és telepítse az AWS CLI -t a következő pip paranccsal:

sudo pip telepítse awscli

Az AWS CLI tartalmazza a parancsvégző funkciót, de alapértelmezés szerint nincs telepítve. A következő paranccsal telepítheti a parancs -befejező funkciót a Raspberry Pi CLI felületére:

teljes -C aws_completer aws

Konfigurálja az AWS CLI -t hozzáférési kulcs -azonosítóval, titkos hozzáférési kulccsal, AWS -régiónévvel és parancskimeneti formátummal a következő paranccsal:

aws konfigurálja

Ezután a konzol felszólítja Önt, hogy töltse ki a következő információkat:

pi@raspberrypi: ~ $ aws configure

AWS hozzáférési kulcs azonosítója [Nincs]: "Ide írja a felhasználó hozzáférési kulcsának azonosítóját" AWS titkos hozzáférési kulcs [Nincs]: "Ide helyezze a felhasználó titkos hozzáférési kulcsát" Alapértelmezett régiónév [Nincs]: eu-central-1 Alapértelmezett kimeneti formátum [Nincs]: json pi@raspberrypi: ~ $

7. lépés: Az Iot-role.trust.json fájl létrehozása

Iot-role.trust.json fájl létrehozása
Iot-role.trust.json fájl létrehozása
Iot-role.trust.json fájl létrehozása
Iot-role.trust.json fájl létrehozása
  1. Hozzon létre egy JSON-fájlt a fenti IAM-házirenddel az iot-role.trust.json fájlnévvel.
  2. Hozza létre a szerepkört az AWS CLI használatával a következő paranccsal

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

8. lépés: Az Iot-policy.json fájl létrehozása

Iot-policy.json fájl létrehozása
Iot-policy.json fájl létrehozása
Iot-policy.json fájl létrehozása
Iot-policy.json fájl létrehozása
  1. Hozzon létre egy JSON-fájlt a fenti házirenddel az iot-policy.json fájlnévvel.
  2. Hozza létre a szerepkör házirendjét az AWS CLI használatával a következő paranccsal:

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

9. lépés: Hozzon létre egy AWS SNS témát (1. rész)

Hozzon létre egy AWS SNS témát (1. rész)
Hozzon létre egy AWS SNS témát (1. rész)
Hozzon létre egy AWS SNS témát (1. rész)
Hozzon létre egy AWS SNS témát (1. rész)
Hozzon létre egy AWS SNS témát (1. rész)
Hozzon létre egy AWS SNS témát (1. rész)
  1. Az AWS szolgáltatások keresősávjában keresse meg az „SNS” szolgáltatást, vagy lépjen a https://us-west-2.console.aws.amazon.com/sns/home… oldalra
  2. Mivel jelenleg nincsenek témái, kattintson az „Új téma létrehozása” gombra egy téma létrehozásához.
  3. Írja be a téma nevét és megjelenített nevét, majd kattintson a „Téma létrehozása” gombra, és egy új téma jelenik meg, ha minden lépés sikeres.
  4. Kattintson a „Műveletek” legördülő gombra és a „Témaszabályzat szerkesztése” gombra.

10. lépés: Hozzon létre egy AWS SNS témát (2. rész)

Hozzon létre egy AWS SNS témát (2. rész)
Hozzon létre egy AWS SNS témát (2. rész)
Hozzon létre egy AWS SNS témát (2. rész)
Hozzon létre egy AWS SNS témát (2. rész)
Hozzon létre egy AWS SNS témát (2. rész)
Hozzon létre egy AWS SNS témát (2. rész)
  1. Állítsa be a házirendet, hogy mindenki közzétehesse és feliratkozzon, mivel ez korlátozza az AWSEducate fiókot.
  2. Iratkozzon fel erre a témára, hogy megkapja a témában közzétett frissítéseket.
  3. Módosítsa a protokollt „E -mail” -re, és írja be e -mail címét a végpontba.

  4. Lépjen az e -mail címére, ahol beírta a végpontot, kattintson a megerősítő linkre az e -mail -előfizetés megerősítéséhez, hogy feliratkozzon a témára.
  5. Keresse meg az „AWS IoT” szolgáltatásokat, a bal oldali navigációs menüben kattintson az „Act” gombra. Ezen az oldalon jelennek meg a szabályok, és megtekintheti és szerkesztheti azokat. Jelenleg nincsenek szabályok az IoT -dolgokra, kattintson a „Szabály létrehozása” gombra.

11. lépés: Hozzon létre egy AWS SNS témát (3. rész)

Hozzon létre egy AWS SNS témát (3. rész)
Hozzon létre egy AWS SNS témát (3. rész)
Hozzon létre egy AWS SNS témát (3. rész)
Hozzon létre egy AWS SNS témát (3. rész)
Hozzon létre egy AWS SNS témát (3. rész)
Hozzon létre egy AWS SNS témát (3. rész)
  1. Írjon be egy nevet a szabály Név mezőjébe. A Leírás mezőbe írja be a szabály leírását. Folytatva az Üzenetforrás részt, az „SQL verzió használata” részben a legfrissebb SQL verziót választjuk. Írja be az * attribútumot, hogy kiválassza a teljes MQTT üzenetet a témából, esetünkben témánk a „TempHumid”.
  2. Ezután adjon hozzá egy „SNS” értesítési műveletet a szabályhoz. Ezután kattintson a „Művelet konfigurálása” gombra.
  3. A „Művelet konfigurálása” oldalon válassza ki az imént létrehozott SNS témát és az üzenet formátumát RAW formátumban. Ezután válassza ki az AWS CLI használatával létrehozott szerepkört, és kattintson a „Művelet hozzáadása” gombra.
  4. A művelet konfigurálva lesz, és visszatér a „Szabály létrehozása” szakaszhoz.
  5. Kattintson a szerkesztés gombra, ha módosítani szeretné a szabályt.

12. lépés: Hozzon létre egy vödröt az Amazon S3 rendszeren

Hozzon létre egy vödröt az Amazon S3 rendszeren
Hozzon létre egy vödröt az Amazon S3 rendszeren
Hozzon létre egy vödröt az Amazon S3 rendszeren
Hozzon létre egy vödröt az Amazon S3 rendszeren
Hozzon létre egy vödröt az Amazon S3 rendszeren
Hozzon létre egy vödröt az Amazon S3 rendszeren
  1. Keresse meg az S3 -at az AWS keresősávjában.
  2. Az Amazon S3 oldalon a kezdéshez kattintson a „Vödör létrehozása” gombra.
  3. Töltse ki a megjelenő előugró űrlapot a következő információkkal:

    • Vödör neve: seroma-bucket (ennek egyedinek kell lennie az összes létező Amazon S3 vödörben)
    • Régió: US West (Oregon)
    • Másolási beállítások: (figyelmen kívül hagyás)
  4. A 2–3. Lépésekhez egyszerűen hagyja ki a „Tovább” gombra kattintva, mivel nincs mit módosítani. A 4. lépésben kattintson a „Vödör létrehozása” gombra.
  5. A létrehozás után látnia kell a vödröt a kezdőlapon.

13. lépés: AWS -házirend létrehozása (1. rész)

AWS -házirend létrehozása (1. rész)
AWS -házirend létrehozása (1. rész)
AWS -házirend létrehozása (1. rész)
AWS -házirend létrehozása (1. rész)
AWS -házirend létrehozása (1. rész)
AWS -házirend létrehozása (1. rész)
  1. Kattintson a létrehozott vödörre, hogy belépjen a fenti oldalra, majd folytassa a „Vödörházirend” részben az „Engedélyek” lapon.
  2. Ezután kattintson az oldal alján található „Policy Generator” linkre az AWS -házirend létrehozásához.
  3. Az űrlapon adja meg a következő értékeket:

    • A házirend típusa: S3 Bucket Policy
    • Hatás: Engedélyezés
    • Megbízó: *
    • AWS szolgáltatás: Amazon S3
    • Műveletek: GetObject
    • Amazon erőforrás neve (ARN): arn: aws: s3::: seroma-bucket
  4. Az adatok kitöltése után kattintson a Nyilatkozat hozzáadása gombra.
  5. Kattintson a „Házirend létrehozása” gombra.

14. lépés: AWS -házirend létrehozása (2. rész)

AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
AWS -házirend létrehozása (2. rész)
  1. Másolja a létrehozott kódokat, majd kattintson a Bezárás gombra.
  2. Térjen vissza az Amazon S3 Bucket Policy szerkesztőjébe, és illessze be a korábban másolt kódokat.
  3. Adjon hozzá egy „/*” karaktert a forráskódok mögötti kódokhoz, mint a fenti képen, majd kattintson a Mentés gombra.
  4. Ezt követően a vödröt sikeresen beállítja és használatra kész.

15. lépés: Táblázatok létrehozása a DynamoDB számára

Táblázatok létrehozása a DynamoDB számára
Táblázatok létrehozása a DynamoDB számára
Táblázatok létrehozása a DynamoDB számára
Táblázatok létrehozása a DynamoDB számára
  1. A DynamoDB keresése az AWS Services keresősávjában
  2. Kattintson a "Táblázat létrehozása" gombra, és hozzon létre 3 táblázatot az alábbi információkkal: (Csak a "tábla neve" és az "elsődleges kulcs" változik meg)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • staffdata, pk felhasználónév

16. lépés: Roomstatus.py

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

Ez a szakasz a roomstatus.py kódját tartalmazza, amely minden percben minden szerverre vonatkozó adatot ír. Ide tartozik a hőmérséklet, a páratartalom, a mozgás (képek és videók, ha igaz) és a hozzáférési naplók. Ezenkívül adatokat ír a Google táblázatba, adatokat a DynamoDB -be, képeket és videókat (ha vannak) az S3 -ba, információkat jelenít meg az LCD -képernyőn, SMS -t és e -mailt küld, ha gyaníthatóan megsértik, vagy ha a hőmérséklet vagy a páratartalom szabálytalan.

A python fájlok futtatásához módosítsa a könyvtárat a fájl helyére, és írja be a konzolba: "sudo python"

2. kép: Az SMS és e -mail értesítéseket engedélyező funkciók, valamint az S3 -ra való feltöltés

3. kép: A függvények és az RPi működéséhez deklarált változók

4. kép: A ciklus kezdete, amely a hőmérsékleti és páratartalmi értékeket az RPi -től kapja. Ezenkívül az adatokat egy Google -táblázatba írja

5. kép: A hurok biztonsági része. Csak 19: 00 -tól 7: 00 -ig (kikapcsolva) aktiválódik. Egy perc alatt ellenőrzi a mozgást. Ha mozgást észlel, akkor képet és videót készít, majd feltölti az S3 -ra, és információkat is ír a DynamoDB -hez későbbi hivatkozás céljából. Ezt követően SMS -t és e -mailt küld, ha valami szabálytalan.

6. kép: A ciklus vége. Ezenkívül adatokat ír a DynamoDB -hez, és ennek megfelelően riasztásokat küld. A ciklus utolsó sora a szkriptet a következő perc eléréséig alvó állapotba hozza.

17. lépés: Rfid.py

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

Ez a szakasz az rfid.py kódját tartalmazza, amely hozzáadja a funkciót annak nyomon követéséhez, amikor egy személy belép a kiszolgálószobába. Ez is része a Seroma biztonsági aspektusának, ahol a személyzet egy tagja nem férhet hozzá a szerverhelyiséghez munkaidőn kívül, hogy megakadályozza az adatok megsértését. Emellett e -mailt és SMS -t küld az összes személyzetnek, ha szabálysértés gyanúja merül fel.

2. kép: Az RFID olvasó logikájának kezdete. Amikor egy kártyát az olvasóhoz szkennel, a kártya egyedi azonosítóját (uid) veszi fel. Ezt követően megpróbáljuk megkeresni a kártya uid értékét a staffdata táblázatban, hogy lássuk, a kártya tartozik -e valamelyik személyzethez. 3. kép: Ha a kártya uidja létezik az adatbázisban, akkor ellenőrizni fogja, hogy a hivatal alatt van -e munkaidőn kívül. Ha igen, SMS -ben és e -mailben értesíti a többi alkalmazottat a feliratkozott e -mail címekről. Ha még mindig hivatali időben van, akkor egy sort ír az adatbázis accesslog táblájába a vonatkozó adatokkal. Üdvözlő üzenetet is megjelenít az LCD kijelzőn.

18. lépés: Server.py

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

Ez a server.py fájl. A webes portál Flask keretrendszerét fogjuk használni. A /sablonokba beillesztendő HTML fájlok is csatolva vannak.

1. kép: A lombik első útvonala meghatározott. Átirányítja a felhasználót a bejelentkezési oldalra, ha nincs bejelentkezve, és az irányítópult oldalára, ha bejelentkezett. Ezenkívül meghatározza az élő közvetítés funkcióban használandó funkciót

2., 3., 4. kép: A lombik útvonalai. Ez adatokat kap a DynamoDB táblából, majd visszaadja azokat a HTML fájloknak, hogy ott felhasználhassák őket.

5. kép: Flask utolsó 2 útvonala. A kijelentkezés és az élő közvetítés funkciót kezeli. Meghatározza azt a portot is, amelyen a webhely futni fog.

19. lépés: Telegram.py

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

Ez a rész tartalmazza a Seroma táviratbotjának kódját. A telepot könyvtár segítségével érintse meg a Telegram Bot API -ját. Úgy működik, hogy elfogadja a kapott lekérdezéseket, és megjeleníti a megfelelő információkat a felhasználó számára. A felhasználó beírhatja a „help” parancsot a parancsok teljes listájához.

1., 2. kép: A táviratbot beállításához a BotFather programot kell használni. Csak futtassa az utasításokat, hogy megkapja a kódunkban szükséges HTTP API -t.

4. kép: Példa egy olyan funkcióra, amely a felhasználó kérése alapján bizonyos számú adatsort vesz ki az adatbázisból

5. kép: Hogyan vesszük figyelembe a felhasználó véleményét, és ennek megfelelően döntünk arról, hogy mit futtassunk.

20. lépés: Élő közvetítés (camera_pi.py)

Élő közvetítés (camera_pi.py)
Élő közvetítés (camera_pi.py)
Élő közvetítés (camera_pi.py)
Élő közvetítés (camera_pi.py)
Élő közvetítés (camera_pi.py)
Élő közvetítés (camera_pi.py)

Kiszolgálószoba -figyelő rendszerünk új funkcióját valósítottuk meg, a szerverteremben zajló események élő közvetítését, amely bármikor, bárhol elérhető. Hogyan működik ez az élő közvetítés: Ez egy olyan funkció, amelyet a Lombikban készítenek, a Pi kamerával együtt. A videókeretek letöltése a valóságban történik, így látható, hogy a videókeretek letöltése és összeillesztése némi késéssel (1-2 másodperccel) történik. Ezt nem lehetett megcsavarni szál nélkül, mivel a háttérszál kereteket olvas be a kamerából és tárolja az aktuális keretet. Mindezeket a képkockákat összekapcsolva élő közvetítés jön létre.

2. kép: Ez egy külön fájl, ahol az összes videó képkocka tárolódik, és amint láthatja, a picamera modul segítségével hozzáférünk málna pi kameránkhoz, mivel ezt ismerjük a legjobban. Van egy osztályos fényképezőgépünk, amellyel úgy importálhatjuk a funkciót, mintha egy élő közvetítésről lenne szó, és nem több kép kapcsolódna össze, ezért a fő alkalmazásfájlban élő közvetítésként fogjuk fel, anélkül, hogy aggódnunk kellene, hogy mi történik a színfalak mögött.

3. kép: Ez a szerver.py fájlunk része, ahol az élő közvetítés része kódolva van. A fő osztály, amelyet ehhez importáltunk, a Camera.pi.py fájlunkból a Camera.pi fájlunk tetején található Camera. A gyökérkönyvtárunkban definiáltunk egy függvényt, a gen, de csak akkor kerül használatba, amikor átmegyünk a /video_feed mappába, ahol az élő közvetítésünk van, ahol átkapcsolja ezt a funkciót, és visszaadja az élő közvetítést a weboldalon.

Ajánlott: