فهرست مطالب:

سروما: مدیر اتاق سرور: 20 مرحله
سروما: مدیر اتاق سرور: 20 مرحله

تصویری: سروما: مدیر اتاق سرور: 20 مرحله

تصویری: سروما: مدیر اتاق سرور: 20 مرحله
تصویری: Slides Pathology ( Reproductive) 2024, نوامبر
Anonim
سروما: مدیر اتاق سرور
سروما: مدیر اتاق سرور

Seroma یک مدیر اتاق سرور همه کاره است که به کاربران امکان می دهد وضعیت سرورها (دما و رطوبت) ، گزارشات دسترسی به اتاق سرور را بررسی کنند ، و همچنین خود اتاق سرور را برای هر گونه نقض امنیتی بررسی کنند.

مرحله 1: وارد حساب AWS خود شوید

وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
وارد حساب AWS خود شوید
  1. برای ما ، از طریق دروازه دانش آموز AWS وارد حساب کاربری خود شدیم زیرا یک حساب aws دانشجویی داریم.
  2. به برگه "حساب AWS" در منوی ناوبری در بالا سمت راست بروید.
  3. روی "رفتن به حساب AWS Educate Starter Account" خود کلیک کنید
  4. برای دسترسی به کنسول مدیریت AWS ، Console را باز کنید.

مرحله 2: شروع به کار با "چیزهای" AWS IOT

شروع کار با AWS IOT
شروع کار با AWS IOT
شروع کار با AWS IOT
شروع کار با AWS IOT
  1. "AWS IoT" را در نوار جستجوی خدمات AWS جستجو کنید.
  2. برای شروع به داشبورد AWS IoT Console بر روی "شروع به کار" کلیک کنید تا بتوانید همه دستگاه های اینترنت اشیاء ثبت شده در حساب AWS خود را مشاهده کنید.

مرحله 3: ثبت یک "چیز" AWS IOT

ثبت AWS IOT
ثبت AWS IOT
ثبت AWS IOT
ثبت AWS IOT
ثبت AWS IOT
ثبت AWS IOT
  1. در نوار ناوبری ، برای مدیریت "Things" اینترنت اشیا حرکت کنید.
  2. اگر هنوز چیزی ندارید روی "ثبت یک مورد" کلیک کنید. (اگر چیزی دارید ، روی دکمه "ایجاد" در بالا سمت راست صفحه کنار زبانه جستجو کلیک کنید.)
  3. روی اولین دکمه "ایجاد یک چیز واحد" کلیک کنید.
  4. به عنوان نام مورد "RaspberryPi" را تایپ کنید. برای این مرحله ، هیچ ورودی غیر از "Name" مورد نیاز نیست. پس از انجام این کار ، روی بعدی کلیک کنید.

مرحله 4: فعال کردن گواهینامه

فعال سازی گواهینامه
فعال سازی گواهینامه
فعال سازی گواهینامه
فعال سازی گواهینامه
  1. در مرحله بعد ، روی دکمه "ایجاد گواهی" کلیک کنید.
  2. 4 پیوند بارگیری را در صفحه بعدی بارگیری کرده و در یک پوشه یا پوشه کار کنید. برای ذخیره فایل ریشه CA ، راست کلیک کرده و save-as را ذخیره کنید.
  3. روی "فعال کردن" کلیک کنید و پیام موفقیت ظاهر می شود.
  4. با حذف اعداد جلوی هر نام فایل ، و تغییر نام فایل CA ریشه به "rootca.pem" از نامهای دوستانه برای پرونده ها استفاده کنید.
  5. برای ادامه روی "پیوست خط مشی" کلیک کنید.

مرحله 5: افزودن خط مشی به گواهی خود

افزودن خط مشی به گواهی خود
افزودن خط مشی به گواهی خود
افزودن خط مشی به گواهی خود
افزودن خط مشی به گواهی خود
افزودن خط مشی به گواهی خود
افزودن خط مشی به گواهی خود
  1. در صفحه بعد ، اگر خط مشی ندارید ، از شما می خواهند که روی دکمه "ایجاد خط مشی" یک سیاست را تنظیم کنید.
  2. اگر از قبل خط مشی موجود دارید ، روی دکمه "ایجاد خط مشی جدید" در زیر کلیک کنید.
  3. اطلاعات زیر را در فرم ایجاد خط مشی وارد کنید.

    نام: RaspberryPiSecurityPolicy

    اقدام: iot:*

    منبع ARN: *

    اثر: اجازه دهید

  4. سپس خط مشی شما باید در برگه "Policy" در بخش "Security" ظاهر شود.
  5. در مرحله بعد ، به برگه "Certificates" بروید که در قسمت "Security" نیز قرار دارد و خط مشی خود را به گواهی ای که قبلاً ایجاد کرده اید پیوست کنید.
  6. در صفحه بعدی ، روی خط مشی خود کلیک کنید و سپس روی "پیوست" کلیک کنید.
  7. در صفحه جزئیات چیزی که ایجاد کرده اید ، در برگه "Interact" ، یک نقطه پایانی REST API وجود دارد که باید کپی و ذخیره شود.
  8. AWS اکنون باید یک Thing داشته باشد که به یک سیاست ضمیمه شده و دارای گواهی است.

مرحله 6: راه اندازی اولیه AWS SNS Topic

راه اندازی اولیه موضوع AWS SNS
راه اندازی اولیه موضوع AWS SNS
راه اندازی اولیه برای موضوع SNS AWS
راه اندازی اولیه برای موضوع SNS AWS

SSH را به Raspberry Pi وارد کنید و AWS CLI را با استفاده از دستور pip زیر نصب کنید:

sudo pip نصب awscli

AWS CLI شامل ویژگی تکمیل فرمان است اما به طور پیش فرض نصب نشده است. از دستور زیر برای نصب ویژگی تکمیل فرمان بر روی رابط CLI رزبری پای استفاده کنید:

کامل -C aws_completer aws

AWS CLI را با شناسه کلید دسترسی ، کلید دسترسی مخفی ، نام منطقه AWS و قالب خروجی فرمان با استفاده از دستور زیر پیکربندی کنید:

aws را پیکربندی کنید

سپس کنسول از شما می خواهد اطلاعات زیر را پر کنید:

pi@raspberrypi: aw $ 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 CLI ایجاد کنید

aws iam create-role-role-name my-iot-role-assume-role-policy-file 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 CLI ایجاد کنید:

aws iam put-role-policy-role-name IoTRole --policy-name iot-policy --policy-file 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" را جستجو کنید یا به آدرس https://us-west-2.console.aws.amazon.com/sns/home… مراجعه کنید.
  2. از آنجا که اکنون هیچ موضوعی ندارید ، روی "ایجاد موضوع جدید" کلیک کنید تا یک موضوع ایجاد شود.
  3. نام موضوع و نام نمایشی خود را وارد کرده و روی "ایجاد موضوع" کلیک کنید و هنگامی که همه مراحل با موفقیت انجام شد ، موضوع جدیدی ظاهر می شود.
  4. روی دکمه کشویی "Actions" و "ویرایش خط مشی موضوع" کلیک کنید.

مرحله 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" بروید ، در منوی ناوبری در سمت چپ ، روی "Act" کلیک کنید. این صفحه جایی است که قوانین شما نمایش داده می شود و برای مشاهده و ویرایش در دسترس شما است. در حال حاضر ، هیچ قانونی برای مورد اینترنت اشیاء شما وجود ندارد ، روی "ایجاد یک قانون" کلیک کنید.

مرحله 11: ایجاد یک موضوع AWS SNS (قسمت 3)

ایجاد موضوع AWS SNS (قسمت 3)
ایجاد موضوع AWS SNS (قسمت 3)
ایجاد موضوع AWS SNS (قسمت 3)
ایجاد موضوع AWS SNS (قسمت 3)
ایجاد یک موضوع AWS SNS (قسمت 3)
ایجاد یک موضوع AWS SNS (قسمت 3)
  1. در قسمت Name نامی را برای قانون خود وارد کنید. در قسمت Description ، توضیحی برای قانون خود وارد کنید. در ادامه به قسمت منبع پیام ، جدیدترین نسخه 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-سطل (این باید در تمام سطلهای موجود آمازون S3 منحصر به فرد باشد)
    • منطقه: ایالات متحده غربی (اورگان)
    • کپی تنظیمات: (نادیده گرفتن)
  4. برای مراحل 2 تا 3 ، به سادگی با کلیک روی "بعدی" آن را رد کنید زیرا هیچ چیزی برای تغییر وجود ندارد. در مرحله 4 ، روی "ایجاد سطل" کلیک کنید.
  5. پس از ایجاد ، باید سطل خود را در صفحه اصلی مشاهده کنید.

مرحله 13: ایجاد یک سیاست AWS (قسمت 1)

ایجاد یک سیاست AWS (قسمت 1)
ایجاد یک سیاست AWS (قسمت 1)
ایجاد یک سیاست AWS (قسمت 1)
ایجاد یک سیاست AWS (قسمت 1)
ایجاد یک سیاست AWS (قسمت 1)
ایجاد یک سیاست AWS (قسمت 1)
  1. روی سطل ایجاد شده برای ورود به صفحه بالا کلیک کنید ، سپس در برگه «مجوزها» به «خط مشی سطل» بروید.
  2. در مرحله بعد ، روی پیوند "Generator Policy" در پایین صفحه کلیک کنید تا خط مشی AWS خود را ایجاد کنید.
  3. در فرم ، مقادیر زیر را وارد کنید:

    • نوع سیاست: S3 Bucket Policy
    • اثر: اجازه دهید
    • اصلی: *
    • سرویس AWS: آمازون S3
    • اقدامات: GetObject
    • نام منبع آمازون (ARN): arn: aws: s3::: seroma-bucket
  4. پس از پر کردن اطلاعات ، روی Add Statement کلیک کنید.
  5. روی دکمه "Generate Policy" کلیک کنید.

مرحله 14: ایجاد یک سیاست AWS (قسمت 2)

ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
ایجاد یک سیاست AWS (قسمت 2)
  1. کدهای ایجاد شده را کپی کرده و روی close کلیک کنید.
  2. به ویرایشگر سیاست سطل آمازون 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 می نویسد ، اطلاعات را روی صفحه LCD نمایش می دهد ، در صورت مشکوک بودن نقص یا زمانی که دما یا رطوبت نامنظم است ، پیامک و ایمیل ارسال می کند. به

برای اجرای فایل های پایتون ، دایرکتوری را به محلی که فایل در آن قرار دارد تغییر دهید و در کنسول تایپ کنید: "sudo python"

تصویر 2: عملکردهایی که اجازه می دهد پیام های هشدار SMS و ایمیل و بارگذاری در S3 اعلام شود

تصویر 3: متغیرهای اعلان شده برای توابع و RPi برای کار

تصویر 4: شروع حلقه ای که مقادیر دما و رطوبت را از RPi دریافت می کند. همچنین داده ها را در صفحه گسترده Google می نویسد

تصویر 5: بخش امنیتی حلقه. فقط از 7 عصر تا 7 صبح (ساعات خاموش) فعال می شود. حرکت را در یک دقیقه بررسی می کند. اگر حرکت تشخیص داده شود ، تصویر و ویدئویی گرفته می شود ، آن را در S3 بارگذاری می کند ، در عین حال اطلاعاتی را برای مرجع بعدا در DynamoDB می نویسد. پس از آن ، در صورت نامنظم بودن پیامک و ایمیل ارسال می کند.

عکس 6: انتهای حلقه. همچنین داده ها را به DynamoDB می نویسد و بر این اساس هشدارها را ارسال می کند. آخرین خط حلقه باعث می شود که اسکریپت تا زمان رسیدن به دقیقه بعد بخوابد.

مرحله 17: Rfid.py

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

این بخش شامل کد rfid.py است ، که عملکرد را برای ردیابی هنگام دسترسی اعضای اتاق به سرور اضافه می کند. همچنین بخشی از جنبه امنیتی Seroma است ، جایی که یکی از کارکنان اجازه دسترسی به اتاق سرور بعد از ساعت اداری را ندارد ، تا از نقض داده جلوگیری کند. در صورت مشکوک بودن به نقض ، به همه کارکنان ایمیل و پیامک ارسال می کند.

تصویر 2: شروع منطق خواننده RFID. هر زمان که یک کارت در برابر خواننده اسکن می شود ، شناسه (uid) منحصر به فرد کارت گرفته می شود. پس از آن ، سعی می کنیم مقدار uid کارت را در جدول staffdata بیابیم تا ببینیم آیا کارت متعلق به هر یک از پرسنل است یا خیر. تصویر 3: اگر uid کارت در پایگاه داده وجود داشته باشد ، بررسی می کند که آیا در حین کار است ساعتهای استراحت. در این صورت ، بقیه کارکنان را از طریق پیام کوتاه و آدرس ایمیل ایمیل مشترک مطلع می کند. اگر هنوز در ساعات اداری است ، یک ردیف در جدول accesslog در پایگاه داده با داده های مربوطه می نویسد. همچنین پیام خوشامدگویی را روی صفحه LCD نمایش می دهد.

مرحله 18: Server.py

server.py
server.py
server.py
server.py
server.py
server.py

این فایل server.py است. ما از چارچوب Flask برای پورتال وب استفاده خواهیم کرد. فایل های HTML قرار داده شده در /قالب نیز ضمیمه شده است.

عکس 1: اولین مسیر برای Flask تعریف شد. در صورت عدم ورود به سیستم ، کاربر را به صفحه ورود و در صورت ورود به صفحه داشبورد هدایت می کند. همچنین تابعی را برای استفاده در ویژگی پخش زنده تعریف می کند

عکس 2 ، 3 ، 4: مسیرهایی برای فلاسک. داده ها را از جدول DynamoDB دریافت می کند و سپس آنها را به فایل های HTML باز می گرداند تا بتوانند در آنجا مورد استفاده قرار گیرند.

عکس 5: 2 مسیر آخر برای Flask. این برنامه عملکرد خروج و عملکرد مستقیم را کنترل می کند. همچنین مشخص می کند که پورت وب سایت در آن اجرا می شود.

مرحله 19: Telegram.py

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

این بخش شامل کد ربات تلگرام Seroma است. از کتابخانه telepot برای ضربه زدن به 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)

ما یک ویژگی جدید را برای سیستم نظارت بر اتاق سرور خود پیاده سازی کرده ایم ، یک جریان مستقیم از آنچه در اتاق سرور می گذرد ، در هر زمان و هر مکان قابل دسترسی است. نحوه عملکرد این جریان زنده: این ویژگی همراه با دوربین Pi در Flask انجام می شود. فریم های ویدئویی همانطور که در زندگی واقعی اتفاق می افتد بارگیری می شوند ، بنابراین در واقع می توانید مشاهده کنید که هنگام بارگیری و جمع شدن فریم های ویدیویی ، کمی تأخیر وجود دارد (1-2 ثانیه). این کار بدون ایجاد نخ نمی تواند انجام شود ، زیرا نخ زمینه فریم های دوربین را می خواند و قاب فعلی را ذخیره می کند. اگر همه این فریم ها را روی هم قرار دهید ، یک جریان مستقیم ایجاد می شود.

عکس 2: این یک فایل جداگانه است که همه فریم های ویدئویی در آن ذخیره می شوند و همانطور که مشاهده می کنید ، ما از ماژول picamera برای دسترسی به دوربین تمشک pi خود استفاده می کنیم ، زیرا این چیزی است که ما بیشتر با آن آشنا هستیم. ما یک دوربین کلاس داریم به طوری که می توانیم عملکردی را وارد کنیم که گویی یک جریان زنده است و چند تصویر در کنار هم قرار نمی گیرند ، بنابراین در فایل اصلی برنامه بدون نگرانی از اتفاقاتی که در پشت صحنه رخ می دهد ، آن را به عنوان یک جریان زنده در نظر می گیرد.

عکس 3: این قسمتی از فایل server.py ماست که قسمت جریان مستقیم در آن کدگذاری شده است. کلاس اصلی که ما برای این کار وارد کردیم Camera از فایل camera_pi.py ما در بالای فایل server.py ما است. ما یک تابع را در فهرست اصلی خود ، gen تعریف کردیم ، اما فقط زمانی به کار می رود که به قسمت /video_feed برویم ، جایی که جریان زنده ما در آن قرار دارد ، جایی که این عملکرد را حلقه کرده و جریان مستقیم را در صفحه وب باز می گرداند.

توصیه شده: