Съдържание:

Seroma: Мениджър на сървърна стая: 20 стъпки
Seroma: Мениджър на сървърна стая: 20 стъпки

Видео: Seroma: Мениджър на сървърна стая: 20 стъпки

Видео: Seroma: Мениджър на сървърна стая: 20 стъпки
Видео: Unlocking VSS Secrets: A Comprehensive Guide for IT Professionals (Volume Shadow Service) 2024, Ноември
Anonim
Seroma: Мениджър на сървърна стая
Seroma: Мениджър на сървърна стая

Seroma е всичко в едно мениджър на сървърна стая, която позволява на потребителите да проверяват състоянието на сървърите (температура и влажност), регистрационните файлове на сървърната стая, както и да наблюдават самата сървърна стая за всякакви нарушения на сигурността.

Стъпка 1: Влезте в акаунта си в AWS

Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
Влезте в акаунта си в AWS
  1. За нас ние сме влезли през AWS educate student gateway, тъй като имаме акаунт за студентски aws.
  2. Преминете към раздела „AWS акаунт“в менюто за навигация горе вдясно.
  3. Щракнете върху „Отидете на вашия акаунт за начално образование в AWS“
  4. Отворете конзолата за достъп до вашата конзола за управление на AWS.

Стъпка 2: Първи стъпки с „неща“на AWS IOT

Първи стъпки с AWS IOT
Първи стъпки с AWS IOT
Първи стъпки с AWS IOT
Първи стъпки с AWS IOT
  1. Потърсете „AWS IoT“в лентата за търсене на услуги на AWS.
  2. Кликнете върху „Започнете“, за да продължите към таблото за управление на AWS IoT Console, където можете да видите всички устройства на IoT, регистрирани във вашия акаунт в AWS.

Стъпка 3: Регистриране на „нещо“на AWS IOT

Регистриране на AWS IOT
Регистриране на AWS IOT
Регистриране на AWS IOT
Регистриране на AWS IOT
Регистриране на AWS IOT
Регистриране на AWS IOT
  1. В навигационната лента навигирайте, за да управлявате „Нещата“на IoT.
  2. Кликнете върху „Регистрирайте нещо“, ако все още нямате нещо. (Ако вече имате нещо, кликнете върху бутона „Създаване“в горния десен ъгъл на екрана до раздела за търсене.)
  3. Кликнете върху първия бутон, наречен „Създайте едно нещо“.
  4. Въведете „RaspberryPi“като името на нещото. За тази стъпка не се изисква въвеждане освен „Име“. След като направите това, щракнете върху Напред.

Стъпка 4: Активиране на сертификат

Активиране на сертификат
Активиране на сертификат
Активиране на сертификат
Активиране на сертификат
  1. На следващата стъпка щракнете върху бутона „създаване на сертификат“.
  2. Изтеглете и съхранявайте 4 -те връзки за изтегляне на следващата страница в работна директория или папка. За да запазите основния CA файл, щракнете с десния бутон и запазете като.
  3. Кликнете върху „Активиране“и трябва да се появи съобщение за успех.
  4. Използвайте приятелски имена за файловете, като премахнете числата пред името на всеки файл и преименувате основния CA файл на „rootca.pem“.
  5. Кликнете върху „Прикачване на политика“, за да продължите.

Стъпка 5: Добавяне на политика към вашия сертификат

Добавяне на политика към вашия сертификат
Добавяне на политика към вашия сертификат
Добавяне на политика към вашия сертификат
Добавяне на политика към вашия сертификат
Добавяне на политика към вашия сертификат
Добавяне на политика към вашия сертификат
  1. На следващата страница, ако нямате политика, те ще ви подканят да направите такава на бутона „Създаване на политика“.
  2. Ако вече имате съществуваща политика, кликнете върху бутона „Създаване на нова политика“по -долу.
  3. Вмъкнете следната информация във формуляра за създаване на политика.

    Име: RaspberryPiSecurityPolicy

    Действие: iot:*

    Ресурсен ARN: *

    Ефект: Разрешаване

  4. След това вашата политика трябва да се появи в раздела „Политика“под „Защита“.
  5. След това отидете в раздела „Сертификати“, който също е под „Защита“, и прикрепете вашата политика към създадения от вас сертификат.
  6. На следващата страница кликнете върху вашата политика и след това върху „Прикачи“.
  7. В страницата с подробности за създаденото от вас, в раздела „Взаимодействие“има крайна точка на REST API, която трябва да бъде копирана и записана.
  8. AWS вече трябва да има нещо, което е прикрепено към политика и има сертификат.

Стъпка 6: Първоначална настройка за темата на AWS SNS

Първоначална настройка за темата на AWS SNS
Първоначална настройка за темата на AWS SNS
Първоначална настройка за темата на AWS SNS
Първоначална настройка за темата на AWS SNS

SSH в Raspberry Pi и инсталирайте AWS CLI, като използвате следната команда pip:

sudo pip инсталирате awscli

AWS CLI включва функция за завършване на команди, но не е инсталирана по подразбиране. Използвайте следната команда, за да инсталирате функцията за завършване на командите в CLI интерфейса на Raspberry Pi:

попълнете -C aws_completer aws

Конфигурирайте AWS CLI с идентификатор на ключ за достъп, секретен ключ за достъп, име на регион на AWS и изходен формат на командата, като използвате следната команда:

aws конфигуриране

След това конзолата ще ви подкани да попълните следната информация:

pi@raspberrypi: ~ $ aws конфигуриране

AWS ID на ключ за достъп [Няма]: „Поставете идентификатора на ключа за достъп на вашия потребител тук“AWS Секретен ключ за достъп [Няма]: „Поставете секретния ключ за достъп на потребителя тук“Име на региона по подразбиране [Няма]: eu-central-1 Изходен формат по подразбиране [Няма]: json pi@raspberrypi: ~ $

Стъпка 7: Създаване на файл Iot-role.trust.json

Създаване на файл Iot-role.trust.json
Създаване на файл Iot-role.trust.json
Създаване на файл Iot-role.trust.json
Създаване на файл Iot-role.trust.json
  1. Създайте JSON файл с горната IAM политика с името на файла iot-role.trust.json.
  2. Създайте ролята с помощта на AWS CLI, като използвате следната команда

aws iam create-role --role-name my-iot-role --assume-role-policy-document файл: //iot-role-trust.json

Стъпка 8: Създаване на файл Iot-policy.json

Създаване на файл Iot-policy.json
Създаване на файл Iot-policy.json
Създаване на файл Iot-policy.json
Създаване на файл Iot-policy.json
  1. Създайте JSON файл с горната политика с името на файла iot-policy.json.
  2. Създайте политика на ролите с помощта на AWS CLI, като използвате следната команда:

aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document файл: //iot-policy.json

Стъпка 9: Създайте тема за AWS SNS (част 1)

Създайте тема на AWS SNS (част 1)
Създайте тема на AWS SNS (част 1)
Създайте тема на AWS SNS (част 1)
Създайте тема на AWS SNS (част 1)
Създайте тема на AWS SNS (част 1)
Създайте тема на AWS SNS (част 1)
  1. В лентата за търсене на услуги на AWS потърсете услугата „SNS“или отидете на
  2. Тъй като сега нямате теми, щракнете върху „Създаване на нова тема“, за да създадете тема.
  3. Въведете името на вашата тема и показваното име и щракнете върху „Създаване на тема“и нова тема ще се появи, когато всички стъпки са успешни.
  4. Кликнете върху падащия бутон „Действия“и „Редактиране на правилата на темата“.

Стъпка 10: Създайте тема за AWS SNS (част 2)

Създайте тема на AWS SNS (част 2)
Създайте тема на AWS SNS (част 2)
Създайте тема на AWS SNS (част 2)
Създайте тема на AWS SNS (част 2)
Създайте тема на AWS SNS (част 2)
Създайте тема на AWS SNS (част 2)
  1. Задайте правилата да позволяват на всички да публикуват и да се абонират, тъй като това е ограничение за акаунт в AWSEducate.
  2. Абонирайте се за тази тема, за да получавате актуализации, публикувани по тази тема.
  3. Променете протокола на „Имейл“и въведете имейла си в крайната точка.

  4. Преминете към имейла си, където сте въвели крайната си точка, щракнете върху връзката за потвърждение, за да потвърдите абонамента си за имейл, за да се абонирате за темата.
  5. Отидете до услугите „AWS IoT“, в менюто за навигация вляво щракнете върху „Действие“. Тази страница е мястото, където вашите правила се показват и са достъпни за преглед и редактиране. Понастоящем няма правила за вашето IoT нещо, кликнете върху „Създаване на правило“.

Стъпка 11: Създайте тема за AWS SNS (част 3)

Създайте тема на AWS SNS (част 3)
Създайте тема на AWS SNS (част 3)
Създайте тема на AWS SNS (част 3)
Създайте тема на AWS SNS (част 3)
Създайте тема на AWS SNS (част 3)
Създайте тема на AWS SNS (част 3)
  1. Въведете име в полето Име за вашето правило. В полето Описание въведете описание на вашето правило. Продължавайки към раздела Източник на съобщение, бихме избрали най -актуалната SQL версия в секцията „Използване на SQL версия“. Въведете * в атрибута, за да изберете цялото MQTT съобщение от темата, в нашия случай нашата тема е „TempHumid“.
  2. След това добавете действие за известяване „SNS“за вашето правило. След това щракнете върху „Конфигуриране на действие“.
  3. На страницата „Конфигуриране на действие“изберете темата за SNS, която току -що създадохте, и формата на съобщението като RAW. След това изберете ролята, която току -що създадохте с помощта на AWS CLI, и кликнете върху „Добавяне на действие“.
  4. Действието ви ще бъде конфигурирано и ще се върне към „Създаване на правило“.
  5. Щракнете върху редактиране, ако искате да редактирате правилото.

Стъпка 12: Създайте кофа на Amazon S3

Създайте кофа на Amazon S3
Създайте кофа на Amazon S3
Създайте кофа на Amazon S3
Създайте кофа на Amazon S3
Създайте кофа на Amazon S3
Създайте кофа на Amazon S3
  1. Търсете S3 в лентата за търсене на AWS.
  2. На страницата на Amazon S3 кликнете върху бутона „Създаване на кофа“, за да започнете.
  3. Попълнете изскачащия формуляр, който се показва, със следната информация:

    • Име на кофата: seroma-bucket (това трябва да е уникално за всички съществуващи кофи на Amazon S3)
    • Регион: US West (Орегон)
    • Копиране на настройки: (Игнориране)
  4. За стъпки 2 до 3 просто го пропуснете, като щракнете върху „Напред“, тъй като няма какво да се промени. На стъпка 4 щракнете върху „Създаване на кофа“.
  5. След създаването трябва да видите кофата си на началната страница.

Стъпка 13: Генерирайте AWS политика (част 1)

Генериране на AWS политика (част 1)
Генериране на AWS политика (част 1)
Генериране на AWS политика (част 1)
Генериране на AWS политика (част 1)
Генериране на AWS политика (част 1)
Генериране на AWS политика (част 1)
  1. Щракнете върху създадената от вас кофа, за да влезете в горната страница, след това преминете към „Правила на кофата“в раздела „Разрешения“.
  2. След това кликнете върху връзката „Генератор на политики“в долната част на страницата, за да генерирате вашата AWS политика.
  3. Във формуляра въведете следните стойности:

    • Тип политика: S3 Bucket Policy
    • Ефект: Разрешаване
    • Директор: *
    • AWS услуга: Amazon S3
    • Действия: GetObject
    • Име на ресурса на Amazon (ARN): arn: aws: s3::: seroma-bucket
  4. След като попълните информацията, щракнете върху Добавяне на изявление.
  5. Кликнете върху бутона „Генериране на политика“.

Стъпка 14: Генерирайте AWS политика (част 2)

Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
Генериране на AWS политика (част 2)
  1. Копирайте генерираните кодове и щракнете върху затвори.
  2. Върнете се в редактора на Amazon S3 Bucket Policy и поставете копираните по -рано кодове.
  3. Добавете „/*“в кодовете точно зад кодовете на ресурсите, както на изображението по -горе, след което щракнете върху запазване.
  4. След това кофата ви ще бъде успешно настроена и готова за употреба.

Стъпка 15: Създаване на таблици за DynamoDB

Създаване на таблици за DynamoDB
Създаване на таблици за DynamoDB
Създаване на таблици за DynamoDB
Създаване на таблици за DynamoDB
  1. Търсете DynamoDB в лентата за търсене на AWS Services
  2. Кликнете върху „Създаване на таблица“и създайте 3 таблици с информацията по -долу: (Променят се само „името на таблицата“и „първичния ключ“)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • персонални данни, потребителско име на ПК

Стъпка 16: Roomstatus.py

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

Този раздел съдържа кода за roomstatus.py, който записва всички данни относно самата сървърна стая всяка минута. Това включва температурата, влажността, движението (изображения и видеоклипове, ако е вярно) и регистрационните файлове. Той също така записва данни в електронна таблица на Google, данни в DynamoDB, изображения и видеоклипове (ако има такива) в S3, показва информация на LCD екрана, изпраща SMS и имейл, когато има съмнение за нарушение или когато температурата или влажността са нередовни.

За да стартирате python файлове, променете директорията на мястото, където се намира файлът и въведете в конзолата: "sudo python"

Снимка 2: Декларирани функции за разрешаване на SMS и имейл сигнали и качване в S3

Снимка 3: Променливи, декларирани за функциониране и RPi

Снимка 4: Начало на цикъла, който получава стойностите на температурата и влажността от RPi. Той също така записва данните в електронна таблица на Google

Снимка 5: Част за защита на цикъла. Той ще се активира само от 19:00 до 7:00 сутринта (извън работно време). Той ще провери за движение в рамките на една минута. Ако се открие движение, той ще заснеме изображение и видео, ще го качи в S3, като същевременно ще запише информация в DynamoDB за справка по -късно. След това той ще изпрати SMS и имейл, ако има нещо нередно.

Снимка 6: Краят на цикъла. Той също така записва данни в DynamoDB и съответно изпраща сигнали. Последният ред на цикъла ще накара скрипта да спи до достигане на следващата минута.

Стъпка 17: Rfid.py

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

Този раздел съдържа кода за rfid.py, който добавя функционалността за проследяване, когато член на персонала влиза в сървърната стая. Това също е част от аспекта на сигурността на Seroma, където член на персонала няма достъп до сървърната стая след работно време, за да се предотврати нарушаване на данните. Той също така изпраща имейл и SMS до целия персонал, ако се подозира нарушение.

Снимка 2: Старт на логиката на RFID четеца. Всеки път, когато картата се сканира срещу четеца, се взема уникалният идентификатор (uid) на картата. След това се опитваме да намерим стойността на uid на картата в таблицата с данни за персонала, за да видим дали картата принадлежи на някой от персонала. Снимка 3: Ако uid на картата съществува в базата данни, тя ще провери дали е по време на офиса извън работно време. Ако е така, той ще предупреди останалите служители чрез SMS и имейл за абонираните имейл адреси. Ако все още е в работно време, той ще запише ред в таблицата за достъп в базата данни със съответните данни. Той също така ще покаже приветствено съобщение на LCD дисплея.

Стъпка 18: Server.py

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

Това е файлът server.py. Ще използваме рамката на Flask за уеб портала. Прикачени са и HTML файловете, които трябва да бъдат поставени /шаблони.

Снимка 1: Определен е първият маршрут за колбата. Той ще пренасочи потребителя към страницата за вход, ако не е влязъл, и към страницата на таблото за управление, ако са. Също така дефинира функция, която да се използва във функцията за предаване на живо

Снимки 2, 3, 4: Маршрути за колба. Той получава данни от таблицата DynamoDB и след това ги връща в HTML файловете, за да могат да се използват там.

Снимка 5: Последните 2 маршрута за Flask. Той обработва функцията за изход и функцията на потока на живо. Той също така посочва порта, на който ще работи уебсайтът.

Стъпка 19: Telegram.py

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

Този раздел включва кода за телеграфния бот на Seroma. Той използва библиотеката на телепота, за да докосне Bot API на Telegram. Той работи, като приема заявките, които получава и показва съответната информация на потребителя. Потребителят може да напише „помощ“за пълен списък с команди.

Снимка 1, 2: За да настроите бот за телеграма, трябва да използвате BotFather. Просто изпълнете инструкциите, за да получите HTTP API, от който се нуждаем в нашия код.

Снимка 4: Пример за функция, която взема определен брой редове данни от базата данни въз основа на заявката на потребителя

Снимка 5: Как приемаме въвеждането на потребителя и решаваме какво да изпълняваме съответно.

Стъпка 20: Поток на живо (camera_pi.py)

Поток на живо (camera_pi.py)
Поток на живо (camera_pi.py)
Поток на живо (camera_pi.py)
Поток на живо (camera_pi.py)
Поток на живо (camera_pi.py)
Поток на живо (camera_pi.py)

Ние внедрихме нова функция за нашата система за наблюдение на сървърна стая, поток на живо какво се случва в сървърната стая, това може да бъде достъпно по всяко време и навсякъде. Как работи този поток на живо: Това е функция, която се извършва във Flask, заедно с Pi Camera. Видеокадрите се изтеглят, както се случва в реалния живот, така че всъщност можете да видите, че има леко забавяне (1-2 секунди), когато видеокадрите се изтеглят и събират заедно. Това не може да се направи без нишки, тъй като фоновата нишка чете кадри от камерата и съхранява текущия кадър. Сглобяването на всички тези кадри след това ще изведе поток на живо.

Снимка 2: Това е отделен файл, където се съхраняват всички видеокадри и както можете да видите, ние използваме модул picamera за достъп до нашата малинова pi камера, тъй като това е най -познатото от нас. Имаме клас Камера, за да можем да импортираме функция, сякаш е поток на живо, а не множество изображения, събрани заедно, поради което в основния файл на приложението ще го приеме като поток на живо, без да се притеснявате за случващото се зад кулисите.

Снимка 3: Това е част от нашия server.py файл, където частта на потока на живо е кодирана. Основният клас, който импортирахме за това, е Камера от нашия файл camera_pi.py в горната част на нашия файл server.py. Ние дефинирахме функция в нашата основна директория, gen, но тя влиза в употреба само когато се насочим към /video_feed, където е нашият поток на живо, където тя ще премине през тази функция и ще върне потока на живо на уеб страницата.

Препоръчано: