Përmbajtje:

Seroma: Menaxheri i dhomës së serverit: 20 hapa
Seroma: Menaxheri i dhomës së serverit: 20 hapa

Video: Seroma: Menaxheri i dhomës së serverit: 20 hapa

Video: Seroma: Menaxheri i dhomës së serverit: 20 hapa
Video: ПРИГОТОВИЛ ОГРОМНЫХ КАРАСЕЙ В СМЕТАНЕ. РЕЦЕПТ. ГОТОВИТ Липован. ENG SUB. 2024, Korrik
Anonim
Seroma: Menaxher i Dhomës së Serverit
Seroma: Menaxher i Dhomës së Serverit

Seroma është një menaxher i dhomës së serverit gjithçka-në-një që lejon përdoruesit të kontrollojnë statusin e serverëve (temperatura dhe lagështia), regjistrat e hyrjes në dhomën e serverit, si dhe të monitorojnë vetë dhomën e serverit për çdo shkelje të sigurisë.

Hapi 1: Hyni në llogarinë tuaj AWS

Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
Hyni në llogarinë tuaj AWS
  1. Për tonën, ne u regjistruam përmes portës së studentëve të arsimuar AWS pasi kemi një llogari të studentit aws.
  2. Shkoni te skedari "Llogaria AWS" në menunë e lundrimit në pjesën e sipërme të djathtë.
  3. Klikoni në "Shko te llogaria juaj AWS Educate Starter"
  4. Hapni tastierën për të hyrë në tastierën tuaj të menaxhimit AWS.

Hapi 2: Fillimi me "gjërat" AWS IOT

Fillimi me AWS IOT
Fillimi me AWS IOT
Fillimi me AWS IOT
Fillimi me AWS IOT
  1. Kërkoni për "AWS IoT" në shiritin e kërkimit të shërbimeve AWS.
  2. Klikoni në "Fillo" për të vazhduar në pultin e AWS IoT Console ku mund të shihni të gjitha pajisjet IoT të regjistruara në llogarinë tuaj AWS.

Hapi 3: Regjistrimi i një "gjëje" AWS IOT

Regjistrimi i një AWS IOT
Regjistrimi i një AWS IOT
Regjistrimi i një AWS IOT
Regjistrimi i një AWS IOT
Regjistrimi i një AWS IOT
Regjistrimi i një AWS IOT
  1. Në shiritin e navigimit, lundroni për të menaxhuar "Gjërat" tuaja IoT.
  2. Klikoni në "Regjistro një gjë" nëse nuk e keni ende një gjë. (Nëse tashmë keni një gjë, atëherë klikoni në butonin "Krijo" në pjesën e sipërme të djathtë të ekranit pranë skedës së kërkimit.)
  3. Klikoni në butonin e parë të quajtur "Krijo një gjë të vetme".
  4. Shkruani "RaspberryPi" si emri i sendit. Për këtë hap, nuk kërkohet asnjë hyrje tjetër përveç "Emrit". Pasi ta keni bërë këtë, klikoni tjetër.

Hapi 4: Aktivizimi i një Certifikate

Aktivizimi i një Certifikate
Aktivizimi i një Certifikate
Aktivizimi i një Certifikate
Aktivizimi i një Certifikate
  1. Në hapin tjetër, klikoni në butonin "krijoni certifikatë".
  2. Shkarkoni dhe ruani 4 lidhjet e shkarkimit në faqen tjetër në një drejtori ose dosje pune. Për të ruajtur skedarin rrënjësor CA, klikoni me të djathtën dhe ruani-si.
  3. Klikoni në "Aktivizo" dhe duhet të shfaqet një mesazh suksesi.
  4. Përdorni emra miqësorë për skedarët duke hequr numrat para secilit emër skedari dhe duke e riemëruar skedarin rrënjësor CA në "rootca.pem".
  5. Klikoni në "Bashkangjit një politikë" për të vazhduar.

Hapi 5: Shtimi i një politike në certifikatën tuaj

Shtimi i një Politike në Certifikatën tuaj
Shtimi i një Politike në Certifikatën tuaj
Shtimi i një Politike në Certifikatën tuaj
Shtimi i një Politike në Certifikatën tuaj
Shtimi i një Politike në Certifikatën tuaj
Shtimi i një Politike në Certifikatën tuaj
  1. Në faqen tjetër, nëse nuk keni një politikë, ato do t'ju kërkojnë të bëni një në butonin "Krijo një politikë".
  2. Nëse tashmë keni një politikë ekzistuese, klikoni në butonin "Krijo politikë të re" më poshtë.
  3. Futni informacionin e mëposhtëm në formularin e krijimit të politikave.

    Emri: RaspberryPiSecurityPolicy

    Veprimi: iot:*

    Burimi ARN: *

    Efekti: Lejo

  4. Politika juaj pastaj duhet të shfaqet në skedën "Politika" nën "Siguria".
  5. Tjetra, shkoni te skedari "Certifikatat" që është gjithashtu nën "Siguria" dhe bashkëngjitni politikën tuaj certifikatës që keni krijuar më parë.
  6. Në faqen tjetër, klikoni në politikën tuaj dhe pastaj klikoni "Bashkangjit".
  7. Në faqen Detajet e sendit që keni krijuar, nën skedën "Ndërveproni", ekziston një pikë përfundimtare REST API e cila duhet të kopjohet dhe ruhet.
  8. AWS tani duhet të ketë një gjë që i bashkëngjitet një politike dhe ka një certifikatë.

Hapi 6: Konfigurimi fillestar për temën AWS SNS

Konfigurimi fillestar për AWS SNS Tema
Konfigurimi fillestar për AWS SNS Tema
Konfigurimi fillestar për AWS SNS Tema
Konfigurimi fillestar për AWS SNS Tema

SSH në Raspberry Pi dhe instaloni AWS CLI duke përdorur komandën e mëposhtme pip:

sudo pip instaloni awscli

AWS CLI përfshin veçorinë e përfundimit të komandës, por nuk është e instaluar si parazgjedhje. Përdorni komandën e mëposhtme për të instaluar funksionin e përfundimit të komandës në ndërfaqen CLI të Raspberry Pi:

komplet -C aws_kompleter aws

Konfiguroni AWS CLI me ID të çelësit të aksesit, çelësin e qasjes sekrete, emrin e rajonit AWS dhe formatin e daljes së komandës duke përdorur komandën e mëposhtme:

konfiguroni aws

Konsola do t'ju kërkojë të plotësoni informacionin e mëposhtëm:

pi@raspberrypi: aw $ aws konfiguroni

ID-ja e çelësit të aksesit AWS [Asnjë]: "Vendosni ID-në e çelësit të aksesit të përdoruesit tuaj këtu" Çelësi sekret i aksesit AWS [Asnjë]: "Vendosni çelësin e qasjes sekrete të përdoruesit tuaj këtu" Emri i paracaktuar i rajonit [Asnjë]: eu-central-1 Formati i daljes i parazgjedhur [Asnjë]: json pi@raspberrypi: ~ $

Hapi 7: Krijimi i skedarit Iot-role.trust.json

Krijimi i skedarit Iot-role.trust.json
Krijimi i skedarit Iot-role.trust.json
Krijimi i skedarit Iot-role.trust.json
Krijimi i skedarit Iot-role.trust.json
  1. Krijoni një skedar JSON me politikën e mësipërme IAM me emrin e skedarit iot-role.trust.json.
  2. Krijoni rolin duke përdorur AWS CLI duke përdorur komandën e mëposhtme

aws iam krijoj-rolin -role-emrin tim-iot-role-supozo-rolin-politikën-dokumentin e dokumentit: //iot-role-trust.json

Hapi 8: Krijimi i skedarit Iot-policy.json

Krijimi i skedarit Iot-policy.json
Krijimi i skedarit Iot-policy.json
Krijimi i skedarit Iot-policy.json
Krijimi i skedarit Iot-policy.json
  1. Krijoni një skedar JSON me politikën e mësipërme me emrin e skedarit iot-policy.json.
  2. Krijoni politikën e roleve duke përdorur AWS CLI duke përdorur komandën e mëposhtme:

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

Hapi 9: Krijoni një temë AWS SNS (Pjesa 1)

Krijoni një temë AWS SNS (Pjesa 1)
Krijoni një temë AWS SNS (Pjesa 1)
Krijoni një temë AWS SNS (Pjesa 1)
Krijoni një temë AWS SNS (Pjesa 1)
Krijoni një temë AWS SNS (Pjesa 1)
Krijoni një temë AWS SNS (Pjesa 1)
  1. Në shiritin e kërkimit të shërbimeve AWS, kërkoni shërbimin "SNS" ose drejtohuni në
  2. Meqenëse nuk keni tema tani, klikoni "Krijo një temë të re" për të krijuar një temë.
  3. Shkruani emrin e temës dhe emrin e shfaqur dhe klikoni "Krijo temë" dhe një temë e re do të shfaqet kur të gjithë hapat të jenë të suksesshëm.
  4. Klikoni në butonin zbritës "Veprimet" dhe "Ndryshoni politikën e temës".

Hapi 10: Krijoni një temë AWS SNS (Pjesa 2)

Krijoni një temë AWS SNS (Pjesa 2)
Krijoni një temë AWS SNS (Pjesa 2)
Krijoni një temë AWS SNS (Pjesa 2)
Krijoni një temë AWS SNS (Pjesa 2)
Krijoni një temë AWS SNS (Pjesa 2)
Krijoni një temë AWS SNS (Pjesa 2)
  1. Vendosni politikën që të lejojë që të gjithë të publikojnë dhe të regjistrohen, pasi këto janë kufizimet e një llogarie AWSEducate.
  2. Regjistrohuni në këtë temë për të marrë përditësime të publikuara për këtë temë.
  3. Ndryshoni protokollin në "Email" dhe futni emailin tuaj në pikën përfundimtare.

  4. Drejtohuni tek emaili juaj ku keni shtypur pikën tuaj përfundimtare, klikoni në lidhjen e konfirmimit për të konfirmuar pajtimin tuaj të postës elektronike për t'u abonuar në temë.
  5. Shkoni te shërbimet "AWS IoT", në menunë e lundrimit në të majtë, klikoni në "Vepro". Kjo faqe është ajo ku rregullat tuaja shfaqen dhe janë në dispozicion për ju që t'i shikoni dhe modifikoni. Aktualisht, nuk ka rregulla për gjënë tuaj IoT, klikoni në "Krijo një rregull".

Hapi 11: Krijoni një Tema AWS SNS (Pjesa 3)

Krijoni një temë AWS SNS (Pjesa 3)
Krijoni një temë AWS SNS (Pjesa 3)
Krijoni një temë AWS SNS (Pjesa 3)
Krijoni një temë AWS SNS (Pjesa 3)
Krijoni një temë AWS SNS (Pjesa 3)
Krijoni një temë AWS SNS (Pjesa 3)
  1. Shkruani një emër në fushën Emri për rregullin tuaj. Në fushën Përshkrimi, shkruani një përshkrim për rregullin tuaj. Duke vazhduar në seksionin burimi i Mesazhit, ne do të zgjidhnim versionin më të azhurnuar të SQL në seksionin "Përdorimi i versionit SQL". Shkruani * në atribut për të zgjedhur të gjithë mesazhin MQTT nga tema, në rastin tonë tema jonë është "TempHumid".
  2. Pastaj shtoni një veprim njoftimi "SNS" për rregullin tuaj. Pastaj, klikoni "Konfiguro veprimin".
  3. Në faqen "Konfiguro veprimin", zgjidhni temën SNS që sapo keni krijuar dhe formatin e mesazhit si RAW. Pas kësaj, zgjidhni rolin që sapo keni krijuar duke përdorur AWS CLI dhe klikoni "Shto veprim".
  4. Veprimi juaj do të konfigurohet dhe do të kthehet në "Krijo një rregull".
  5. Klikoni redakto nëse dëshironi të ndryshoni rregullin.

Hapi 12: Krijoni një kovë në Amazon S3

Krijoni një kovë në Amazon S3
Krijoni një kovë në Amazon S3
Krijoni një kovë në Amazon S3
Krijoni një kovë në Amazon S3
Krijoni një kovë në Amazon S3
Krijoni një kovë në Amazon S3
  1. Kërkoni për S3 në shiritin e kërkimit AWS.
  2. Në faqen Amazon S3, klikoni në butonin "Krijo kovë" për të filluar.
  3. Plotësoni formularin që shfaqet me informacionin e mëposhtëm:

    • Emri i kovës: seroma-kovë (kjo duhet të jetë unike në të gjitha kova ekzistuese Amazon S3)
    • Rajoni: US West (Oregon)
    • Kopjoni cilësimet: (Injoroni)
  4. Për hapat 2 deri në 3, thjesht kaloni atë duke klikuar "Next" pasi nuk ka asgjë për të ndryshuar. Në hapin 4, klikoni "Krijo një kovë".
  5. Pas krijimit, duhet të shihni kovën tuaj në faqen kryesore.

Hapi 13: Krijoni një politikë AWS (Pjesa 1)

Krijoni një politikë AWS (Pjesa 1)
Krijoni një politikë AWS (Pjesa 1)
Krijoni një politikë AWS (Pjesa 1)
Krijoni një politikë AWS (Pjesa 1)
Krijoni një politikë AWS (Pjesa 1)
Krijoni një politikë AWS (Pjesa 1)
  1. Klikoni në kovën që keni krijuar për të hyrë në faqen e mësipërme, pastaj vazhdoni te "Politika e kovës" nën skedën "Lejet".
  2. Tjetra, klikoni në lidhjen "Generator Policy" në fund të faqes për të gjeneruar politikën tuaj AWS.
  3. Në formë, futni vlerat e mëposhtme:

    • Lloji i Politikës: S3 Bucket Policy
    • Efekti: Lejo
    • Kryesore: *
    • Shërbimi AWS: Amazon S3
    • Veprimet: GetObject
    • Emri i Burimit të Amazon (ARN): arn: aws: s3::: seroma-kovë
  4. Pasi të keni plotësuar informacionin, klikoni në Shto Deklaratë.
  5. Klikoni në butonin "Gjeneroni politikë".

Hapi 14: Krijoni një politikë AWS (Pjesa 2)

Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
Krijoni një politikë AWS (Pjesa 2)
  1. Kopjoni kodet e krijuara dhe klikoni mbyll.
  2. Kthehuni te redaktuesi juaj i Politikës së Bucket Amazon S3 dhe ngjitni kodet e kopjuara më parë.
  3. Shtoni një "/*" në kodet menjëherë pas kodeve të Burimeve, si në imazhin e mësipërm, pastaj klikoni ruaj.
  4. Pasi ta bëni këtë, kova juaj do të ngrihet me sukses dhe gati për përdorim.

Hapi 15: Krijimi i tabelave për DynamoDB

Krijimi i tabelave për DynamoDB
Krijimi i tabelave për DynamoDB
Krijimi i tabelave për DynamoDB
Krijimi i tabelave për DynamoDB
  1. Kërkoni për DynamoDB në shiritin e kërkimit të Shërbimeve AWS
  2. Klikoni në "Krijo tabelë" dhe krijoni 3 tabela me informacionin e mëposhtëm: (Vetëm "emri i tabelës" dhe "çelësi kryesor" janë ndryshuar)

    • accesslog, pk dataetimevalue
    • roomstatus, pk dataetimevalue
    • të dhënat e stafit, emri i përdoruesit pk

Hapi 16: Roomstatus.py

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

Ky seksion përmban kodin për roomstatus.py, i cili shkruan të gjitha të dhënat në lidhje me dhomën e serverit çdo minutë. Kjo përfshin temperaturën, lagështinë, lëvizjen (imazhet dhe videot nëse është e vërtetë) dhe regjistrat e hyrjes. Shkruan gjithashtu të dhëna në një Tabela të Google, të dhëna në DynamoDB, imazhe dhe video (nëse ka) në S3, shfaq informacion në ekranin LCD, dërgon një SMS dhe Email kur ka dyshime për shkelje, ose kur temperatura ose lagështia janë të parregullta Me

Për të ekzekutuar skedarët python, ndryshoni drejtorinë në vendin ku ndodhet skedari dhe shkruani në tastierë: "sudo python"

Figura 2: Funksionet e deklaruara për të lejuar sinjalizime SMS dhe Email, dhe ngarkimi në S3

Figura 3: Variablat e deklaruara për funksionet dhe RPi për të punuar

Fotografia 4: Fillimi i lakut që merr vlerat e temperaturës dhe lagështisë nga RPi. Gjithashtu i shkruan të dhënat në një spreadsheet të Google

Fotografia 5: Pjesa e sigurisë e lakut. Ai do të aktivizohet vetëm nga ora 7 pasdite deri në 7 të mëngjesit (orë jashtë orarit). Do të kontrollojë lëvizjen në një hark kohor prej një minute. Nëse lëvizja zbulohet, do të marrë një imazh dhe video, do ta ngarkojë atë në S3, ndërsa gjithashtu do të shkruajë informacion në DynamoDB për referencë më vonë. Më pas, do të dërgojë një SMS dhe Email nëse diçka është e parregullt.

Fotografia 6: Fundi i lakut. Ai gjithashtu shkruan të dhëna në DynamoDB dhe dërgon sinjalizime në përputhje me rrethanat. Linja e fundit e lakut do ta bëjë skenarin të flejë derisa të arrihet minutën tjetër.

Hapi 17: Rfid.py

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

Ky seksion përmban kodin për rfid.py, i cili shton funksionimin për të gjetur kur një anëtar i stafit hyn në dhomën e serverit. Alsoshtë gjithashtu pjesë e aspektit të sigurisë të Seroma, ku një anëtar i stafit nuk lejohet të hyjë në dhomën e serverit pas orarit të punës, për të parandaluar një shkelje të të dhënave. Ai gjithashtu dërgon një Email dhe SMS për të gjithë stafin nëse dyshohet për një shkelje.

Fotografia 2: Fillimi i logjikës së lexuesit RFID. Sa herë që një kartë skanohet kundër lexuesit, merret identiteti unik (uid) i kartës. Më pas, ne përpiqemi të gjejmë vlerën uid të kartës në tabelën e të dhënave të stafit për të parë nëse karta i përket ndonjërit prej stafit. Figura 3: Nëse uid -i i kartës ekziston në bazën e të dhënave, do të kontrollojë nëse është gjatë zyrës jashtë orarit. Nëse është, do të paralajmërojë pjesën tjetër të punonjësve përmes SMS dhe Email adresat e postës elektronike të abonuar. Nëse është akoma gjatë orarit të punës, do të shkruajë një rresht në tabelën e aksesit në bazën e të dhënave me të dhënat përkatëse. Gjithashtu do të shfaqë një mesazh mirëseardhjeje në ekranin LCD.

Hapi 18: Server.py

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

Ky është skedari server.py. Ne do të përdorim kuadrin Flask për portalin në internet. Skedarët HTML që do të vendosen /shabllone janë bashkangjitur gjithashtu.

Fotografia 1: Rruga e parë për Flask është përcaktuar. Ai do të përcjellë përdoruesin në faqen e identifikimit nëse nuk është i regjistruar, dhe faqen e pultit nëse është. Gjithashtu përcakton një funksion që do të përdoret në funksionin e transmetimit livest

Fotografia 2, 3, 4: Rrugët për Flask. Ai merr të dhëna nga tabela DynamoDB dhe pastaj i kthen ato në skedarët HTML në mënyrë që ato të mund të përdoren atje.

Fotografia 5: 2 rrugët e fundit për Flask. Ai trajton funksionin e daljes dhe funksionin e transmetimit të drejtpërdrejtë. Ai gjithashtu specifikon portin në të cilin do të funksionojë uebfaqja.

Hapi 19: Telegram.py

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

Ky seksion përfshin kodin për bot -telegramin e Seromës. Ai përdor bibliotekën telepot për të prekur API -në e Telegramit. Punon duke pranuar pyetjet që merr dhe duke shfaqur informacionin përkatës te përdoruesi. Përdoruesi mund të shkruajë "ndihmë" për një listë të plotë të komandave.

Fotografia 1, 2: Për të krijuar një bot telegrami, duhet të përdorni BotFather. Thjesht ekzekutoni udhëzimet për të marrë API HTTP që na nevojitet në kodin tonë.

Figura 4: Shembull i një funksioni që merr një numër të caktuar rreshtash të dhënash nga baza e të dhënave bazuar në kërkesën e përdoruesit

Figura 5: Si marrim informacionin e përdoruesit dhe vendosim se çfarë të përdorim në përputhje me rrethanat.

Hapi 20: Transmetimi direkt (camera_pi.py)

Transmetimi i drejtpërdrejtë (camera_pi.py)
Transmetimi i drejtpërdrejtë (camera_pi.py)
Transmetimi i drejtpërdrejtë (camera_pi.py)
Transmetimi i drejtpërdrejtë (camera_pi.py)
Transmetimi i drejtpërdrejtë (camera_pi.py)
Transmetimi i drejtpërdrejtë (camera_pi.py)

Ne kemi zbatuar një veçori të re për sistemin tonë të monitorimit të dhomës së serverit, një transmetim i drejtpërdrejtë i asaj që po ndodh në Dhomën e Serverit, kjo mund të arrihet në çdo moment të kohës, kudo. Si funksionon ky transmetim i drejtpërdrejtë: isshtë një veçori që bëhet në Flask, së bashku me Kamera Pi. Kornizat video shkarkohen ashtu siç ndodh në jetën reale, kështu që ju në të vërtetë mund të shihni se ka një vonesë të vogël (1-2 sekonda) ndërsa kornizat e videove shkarkohen dhe bashkohen. Kjo nuk mund të bëhet pa filetim, pasi filli i sfondit lexon korniza nga kamera dhe ruan kornizën aktuale. Pjesëzimi i të gjitha këtyre kornizave së bashku do të prodhonte një transmetim të drejtpërdrejtë.

Fotografia 2: Ky është një skedar i veçantë ku ruhen të gjitha kornizat e videos dhe siç mund ta shihni, ne po përdorim modulin picamera për të hyrë në kamerën tonë të mjedrës pi pasi kjo është ajo që ne jemi më të njohurit. Ne kemi një Kamera të klasës në mënyrë që të mund të importojmë funksionin sikur të ishte një transmetim i drejtpërdrejtë dhe jo imazhe të shumta që bashkohen, prandaj në skedarin kryesor të aplikacionit do ta merrte atë si një transmetim të drejtpërdrejtë pa pasur nevojë të shqetësoheshim për atë që po ndodh prapa skenave.

Fotografia 3: Kjo është pjesë e skedarit tonë server.py ku pjesa e transmetimit të drejtpërdrejtë është e koduar. Klasa kryesore që kemi importuar për këtë është Kamera nga skedari ynë camera_pi.py në krye të skedarit tonë server.py. Ne përcaktuam një funksion në drejtorinë tonë rrënjësore, gen, megjithatë ai hyn në përdorim vetëm kur shkojmë te /video_feed ku është transmetimi ynë i drejtpërdrejtë, ku do të kalojë përmes këtij funksioni dhe do të kthejë transmetimin e drejtpërdrejtë në faqen në internet.

Recommended: