Оглавление:

Серома: Менеджер серверной комнаты: 20 шагов
Серома: Менеджер серверной комнаты: 20 шагов

Видео: Серома: Менеджер серверной комнаты: 20 шагов

Видео: Серома: Менеджер серверной комнаты: 20 шагов
Видео: Реабилитация после рака молочной железы: вопросы онкологу | Выпуск #4 2024, Ноябрь
Anonim
Серома: Менеджер серверной комнаты
Серома: Менеджер серверной комнаты

Seroma - это универсальный менеджер серверной комнаты, который позволяет пользователям проверять состояние серверов (температуру и влажность), журналы доступа серверной комнаты, а также контролировать саму серверную комнату на предмет любых нарушений безопасности.

Шаг 1. Войдите в свою учетную запись AWS

Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
Войдите в свою учетную запись AWS
  1. В нашем случае мы вошли в систему через шлюз AWS Educate Student, так как у нас есть учетная запись aws для студентов.
  2. Перейдите на вкладку «Учетная запись AWS» в меню навигации в правом верхнем углу.
  3. Нажмите «Перейти в свой начальный аккаунт AWS Educate».
  4. Откройте консоль, чтобы получить доступ к консоли управления AWS.

Шаг 2. Начало работы с "вещами" AWS IOT

Начало работы с AWS IOT
Начало работы с AWS IOT
Начало работы с AWS IOT
Начало работы с AWS IOT
  1. Введите слово «AWS IoT» в строку поиска сервисов AWS.
  2. Нажмите «Начать», чтобы перейти к панели управления Консоли AWS IoT, где вы можете просмотреть все устройства IoT, зарегистрированные в вашей учетной записи AWS.

Шаг 3. Регистрация "вещи" AWS IOT

Регистрация AWS IOT
Регистрация AWS IOT
Регистрация AWS IOT
Регистрация AWS IOT
Регистрация AWS IOT
Регистрация AWS IOT
  1. На панели навигации перейдите к управлению «Вещями» Интернета вещей.
  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 Topic
Первоначальная настройка для AWS SNS Topic
Первоначальная настройка для AWS SNS Topic
Первоначальная настройка для AWS SNS Topic

SSH в Raspberry Pi и установите AWS CLI, используя следующую команду pip:

sudo pip установить awscli

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

полный -C aws_completer aws

Настройте интерфейс командной строки AWS с идентификатором ключа доступа, секретным ключом доступа, именем региона AWS и форматом вывода команды с помощью следующей команды:

aws настроить

Затем консоль предложит вам ввести следующую информацию:

pi @ raspberrypi: ~ $ aws настроить

Идентификатор ключа доступа AWS [Нет]: «Укажите здесь идентификатор ключа доступа пользователя» Ключ доступа к 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, используя следующую команду

aws iam create-role --role-name my-iot-role --assume-role-policy-document file: //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 с помощью следующей команды:

aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //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)
    • Регион: Запад США (Орегон)
    • Настройки копирования: (игнорировать)
  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
    • Эффект: Разрешить
    • Главный: *
    • Сервис 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 и вставьте ранее скопированные коды.
  3. Добавьте «/ *» в коды сразу после кодов ресурсов, как на изображении выше, затем нажмите «Сохранить».
  4. После этого ваш ковш будет успешно настроен и готов к использованию.

Шаг 15: Создание таблиц для DynamoDB

Создание таблиц для DynamoDB
Создание таблиц для DynamoDB
Создание таблиц для DynamoDB
Создание таблиц для DynamoDB
  1. Найдите DynamoDB в строке поиска сервисов AWS
  2. Нажмите «Создать таблицу» и создайте 3 таблицы со следующей информацией: (изменяются только «имя таблицы» и «первичный ключ»)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • Staffdata, pk имя пользователя

Шаг 16: Roomstatus.py

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

Этот раздел содержит код для roomstatus.py, который каждую минуту записывает все данные, касающиеся самой серверной комнаты. Это включает в себя температуру, влажность, движение (изображения и видео, если это правда) и журналы доступа. Он также записывает данные в электронную таблицу Google, данные в DynamoDB, изображения и видео (если есть) в S3, отображает информацию на ЖК-экране, отправляет 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 карты в таблице Staffdata, чтобы увидеть, принадлежит ли карта кому-либо из сотрудников. Рисунок 3: Если uid карты существует в базе данных, он проверит, находится ли он во время офиса. в нерабочее время. Если это так, он будет предупреждать остальных сотрудников с помощью SMS и электронной почты с адресами электронной почты, на которые вы подписаны. Если он все еще находится в рабочее время, он запишет строку в таблицу журнала доступа в базе данных с соответствующими данными. Он также отобразит приветственное сообщение на ЖК-дисплее.

Шаг 18: Server.py

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

Это файл server.py. Мы будем использовать фреймворк Flask для веб-портала. HTML-файлы, которые нужно поместить в / templates, также прилагаются.

Рис 1: Определен первый маршрут для Flask. Он перенаправит пользователя на страницу входа в систему, если он не вошел в систему, и на страницу панели управления, если они есть. Также определяет функцию, которая будет использоваться в функции прямой трансляции.

2, 3, 4: маршруты для Flask. Он получает данные из таблицы DynamoDB, а затем возвращает их в файлы HTML, чтобы их можно было там использовать.

Рис 5: Последние 2 маршрута для Flask. Он обрабатывает функцию выхода из системы и функцию прямой трансляции. Он также указывает порт, на котором будет работать веб-сайт.

Шаг 19: Telegram.py

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

В этом разделе содержится код телеграмм-бота Серомы. Он использует библиотеку telepot для доступа к Telegram Bot API. Он работает, принимая запросы, которые он получает, и отображает соответствующую информацию пользователю. Пользователь может ввести «help» для получения полного списка команд.

Рис 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. Видеокадры загружаются так, как это происходит в реальной жизни, поэтому вы действительно можете видеть небольшую задержку (1-2 секунды), когда видеокадры загружаются и собираются вместе. Это не могло быть сделано без потоковой передачи, поскольку фоновый поток считывает кадры с камеры и сохраняет текущий кадр. Собирая все эти кадры вместе, вы получите прямой поток.

Рис 2: Это отдельный файл, в котором хранятся все видеокадры, и, как вы можете видеть, мы используем модуль picamera для доступа к нашей камере Raspberry Pi, поскольку это то, с чем мы наиболее знакомы. У нас есть класс Camera, чтобы мы могли импортировать функцию, как если бы это была прямая трансляция, а не несколько изображений, соединяемых вместе, поэтому в основном файле приложения мы будем воспринимать ее как прямой поток, не беспокоясь о том, что происходит за кулисами.

Рис 3: Это часть нашего файла server.py, в котором закодирована часть прямой трансляции. Основным классом, который мы импортировали для этого, является Camera из нашего файла camera_pi.py в верхней части файла server.py. Мы определили функцию в нашем корневом каталоге, gen, однако она используется только тогда, когда мы переходим в / video_feed, где находится наш прямой поток, где он будет проходить через эту функцию и возвращать живой поток на веб-страницу.

Рекомендуемые: