Daftar Isi:

Seroma: Manajer Ruang Server: 20 Langkah
Seroma: Manajer Ruang Server: 20 Langkah

Video: Seroma: Manajer Ruang Server: 20 Langkah

Video: Seroma: Manajer Ruang Server: 20 Langkah
Video: nVidia GTX 1050 3GB, N64 Classic, and... ugh... Budweiser - Talking Heads Ep.033 2024, November
Anonim
Seroma: Manajer Ruang Server
Seroma: Manajer Ruang Server

Seroma adalah pengelola ruang server all-in-one yang memungkinkan pengguna untuk memeriksa status server (suhu dan kelembaban), log akses ruang server, serta memantau ruang server itu sendiri untuk setiap pelanggaran keamanan.

Langkah 1: Masuk ke Akun AWS Anda

Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
Masuk ke Akun AWS Anda
  1. Untuk milik kami, kami masuk melalui gateway siswa AWS Educate karena kami memiliki akun aws siswa.
  2. Buka tab "Akun AWS" pada menu navigasi di kanan atas.
  3. Klik “Buka Akun Pemula AWS Educate Anda”
  4. Buka Konsol untuk mengakses AWS Management Console Anda.

Langkah 2: Memulai Dengan "sesuatu" AWS IOT

Memulai Dengan AWS IOT
Memulai Dengan AWS IOT
Memulai Dengan AWS IOT
Memulai Dengan AWS IOT
  1. Cari “AWS IoT” di bilah pencarian layanan AWS.
  2. Klik "Mulai" untuk melanjutkan ke dasbor Konsol AWS IoT tempat Anda dapat melihat semua perangkat IoT yang terdaftar di akun AWS Anda.

Langkah 3: Mendaftarkan "sesuatu" AWS IOT

Mendaftarkan AWS IOT
Mendaftarkan AWS IOT
Mendaftarkan AWS IOT
Mendaftarkan AWS IOT
Mendaftarkan AWS IOT
Mendaftarkan AWS IOT
  1. Di bilah navigasi, navigasikan untuk mengelola "Hal" IoT Anda.
  2. Klik "Daftar sesuatu" jika Anda belum memilikinya. (Jika Anda sudah memiliki sesuatu, klik tombol "Buat" di kanan atas layar di sebelah tab pencarian.)
  3. Klik pada tombol pertama yang disebut "Buat satu hal".
  4. Ketik "RaspberryPi" sebagai nama benda itu. Untuk langkah ini, tidak ada input selain "Nama" yang diperlukan. Setelah melakukannya, klik berikutnya.

Langkah 4: Mengaktifkan Sertifikat

Mengaktifkan Sertifikat
Mengaktifkan Sertifikat
Mengaktifkan Sertifikat
Mengaktifkan Sertifikat
  1. Pada langkah selanjutnya, klik tombol “buat sertifikat”.
  2. Unduh dan simpan 4 tautan unduhan di halaman berikutnya ke dalam direktori atau folder yang berfungsi. Untuk menyimpan file CA root, klik kanan dan save-as.
  3. Klik "Aktifkan" dan pesan sukses akan muncul.
  4. Gunakan nama yang ramah untuk file dengan menghapus nomor di depan setiap nama file, dan mengganti nama file CA root menjadi "rootca.pem".
  5. Klik "Lampirkan kebijakan" untuk melanjutkan.

Langkah 5: Menambahkan Kebijakan ke Sertifikat Anda

Menambahkan Kebijakan ke Sertifikat Anda
Menambahkan Kebijakan ke Sertifikat Anda
Menambahkan Kebijakan ke Sertifikat Anda
Menambahkan Kebijakan ke Sertifikat Anda
Menambahkan Kebijakan ke Sertifikat Anda
Menambahkan Kebijakan ke Sertifikat Anda
  1. Di halaman berikutnya, jika Anda tidak memiliki kebijakan, mereka akan meminta Anda untuk membuatnya di tombol "Buat Kebijakan".
  2. Jika Anda sudah memiliki kebijakan, klik tombol “Buat kebijakan baru” di bawah.
  3. Masukkan informasi berikut ke dalam formulir pembuatan kebijakan.

    Nama: RaspberryPiSecurityPolicy

    Tindakan: bodoh:*

    Sumber Daya ARN: *

    Efek: Izinkan

  4. Kebijakan Anda kemudian akan muncul di tab "Kebijakan" di bawah "Keamanan".
  5. Selanjutnya, buka tab “Sertifikat” yang juga berada di bawah “Keamanan”, dan lampirkan kebijakan Anda ke sertifikat yang Anda buat sebelumnya.
  6. Pada halaman berikutnya, klik pada kebijakan Anda dan kemudian klik "Lampirkan".
  7. Di halaman Detail dari hal yang Anda buat, di bawah tab "Berinteraksi", ada titik akhir REST API yang harus disalin dan disimpan.
  8. AWS sekarang harus memiliki Hal yang dilampirkan pada kebijakan dan memiliki sertifikat.

Langkah 6: Pengaturan Awal untuk AWS SNS Topic

Pengaturan Awal untuk AWS SNS Topic
Pengaturan Awal untuk AWS SNS Topic
Pengaturan Awal untuk AWS SNS Topic
Pengaturan Awal untuk AWS SNS Topic

SSH ke Raspberry Pi dan instal AWS CLI menggunakan perintah pip berikut:

sudo pip install awscli

AWS CLI menyertakan fitur penyelesaian perintah tetapi tidak diinstal secara default. Gunakan perintah berikut untuk menginstal fitur penyelesaian perintah pada antarmuka CLI Raspberry Pi:

lengkap -C aws_completer aws

Konfigurasikan AWS CLI dengan ID Kunci Akses, Kunci Akses Rahasia, Nama Wilayah AWS, dan format Output Perintah menggunakan perintah berikut:

konfigurasi aws

Konsol kemudian akan meminta Anda untuk mengisi informasi berikut:

pi@raspberrypi:~ $ aws konfigurasi

AWS Access Key ID [None]: "Let your User's Access Key ID here" AWS Secret Access Key [None]: "Let your User's Secret Access Key here" Nama wilayah default [None]: eu-central-1 Format output default [Tidak ada]: json pi@raspberrypi:~ $

Langkah 7: Membuat File Iot-role.trust.json

Membuat File Iot-role.trust.json
Membuat File Iot-role.trust.json
Membuat File Iot-role.trust.json
Membuat File Iot-role.trust.json
  1. Buat file JSON dengan kebijakan IAM di atas dengan nama file iot-role.trust.json.
  2. Buat peran menggunakan AWS CLI menggunakan perintah berikut

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

Langkah 8: Membuat File Iot-policy.json

Membuat File Iot-policy.json
Membuat File Iot-policy.json
Membuat File Iot-policy.json
Membuat File Iot-policy.json
  1. Buat file JSON dengan kebijakan di atas dengan nama file iot-policy.json.
  2. Buat kebijakan peran menggunakan AWS CLI menggunakan perintah berikut:

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

Langkah 9: Buat Topik SNS AWS (Bagian 1)

Buat Topik SNS AWS (Bagian 1)
Buat Topik SNS AWS (Bagian 1)
Buat Topik SNS AWS (Bagian 1)
Buat Topik SNS AWS (Bagian 1)
Buat Topik SNS AWS (Bagian 1)
Buat Topik SNS AWS (Bagian 1)
  1. Di bilah pencarian layanan AWS, Cari layanan “SNS” atau kunjungi
  2. Karena Anda tidak memiliki topik sekarang, klik "Buat topik baru" untuk membuat topik.
  3. Ketik nama topik dan nama tampilan Anda dan klik "Buat topik" dan topik baru akan muncul ketika semua langkah berhasil.
  4. Klik tombol tarik-turun "Tindakan" dan "Edit kebijakan topik".

Langkah 10: Buat Topik SNS AWS (Bagian 2)

Buat Topik SNS AWS (Bagian 2)
Buat Topik SNS AWS (Bagian 2)
Buat Topik SNS AWS (Bagian 2)
Buat Topik SNS AWS (Bagian 2)
Buat Topik SNS AWS (Bagian 2)
Buat Topik SNS AWS (Bagian 2)
  1. Tetapkan kebijakan untuk mengizinkan semua orang memublikasikan dan berlangganan, karena ini adalah batasan akun AWSEducate.
  2. Berlangganan topik ini untuk menerima pembaruan yang dipublikasikan untuk topik ini.
  3. Ubah protokol menjadi "Email" dan masukkan email Anda di titik akhir.

  4. Buka email tempat Anda mengetik titik akhir, klik tautan konfirmasi untuk mengonfirmasi langganan email Anda untuk berlangganan topik tersebut.
  5. Arahkan ke layanan “AWS IoT”, pada menu navigasi di sebelah kiri, klik “Act”. Halaman ini adalah tempat aturan Anda ditampilkan dan tersedia untuk Anda lihat dan edit. Saat ini, tidak ada aturan untuk hal IoT Anda, klik "Buat aturan".

Langkah 11: Buat Topik SNS AWS (Bagian 3)

Buat Topik SNS AWS (Bagian 3)
Buat Topik SNS AWS (Bagian 3)
Buat Topik SNS AWS (Bagian 3)
Buat Topik SNS AWS (Bagian 3)
Buat Topik SNS AWS (Bagian 3)
Buat Topik SNS AWS (Bagian 3)
  1. Ketik nama di bidang Nama untuk aturan Anda. Di bidang Deskripsi, ketikkan deskripsi untuk aturan Anda. Melanjutkan ke bagian Sumber pesan, kami akan memilih versi SQL terbaru di bagian "Menggunakan versi SQL". Ketik * di atribut untuk memilih seluruh pesan MQTT dari topik, dalam kasus kami topik kami adalah "TempHumid".
  2. Kemudian tambahkan tindakan notifikasi "SNS" untuk aturan Anda. Kemudian, klik "Konfigurasikan tindakan".
  3. Di halaman "Konfigurasi tindakan", pilih topik SNS yang baru saja Anda buat dan format pesan sebagai RAW. Setelah itu, pilih peran yang baru saja Anda buat menggunakan AWS CLI dan klik “Tambahkan tindakan”.
  4. Tindakan Anda akan dikonfigurasi dan kembali ke "Buat aturan".
  5. Klik edit jika Anda ingin mengedit aturan.

Langkah 12: Buat Bucket di Amazon S3

Buat Bucket di Amazon S3
Buat Bucket di Amazon S3
Buat Bucket di Amazon S3
Buat Bucket di Amazon S3
Buat Bucket di Amazon S3
Buat Bucket di Amazon S3
  1. Cari S3 di bilah pencarian AWS.
  2. Di halaman Amazon S3, klik tombol “Buat Bucket” untuk memulai.
  3. Isi formulir pop-up yang muncul dengan informasi berikut:

    • Nama Bucket: seroma-bucket (ini harus unik di semua bucket Amazon S3 yang ada)
    • Wilayah: AS Barat (Oregon)
    • Pengaturan Salin: (Abaikan)
  4. Untuk langkah 2 hingga 3, lewati saja dengan mengklik "Berikutnya" karena tidak ada yang perlu diubah. Pada langkah 4, klik "Buat ember".
  5. Setelah pembuatan, Anda akan melihat ember Anda di halaman beranda.

Langkah 13: Buat Kebijakan AWS (Bagian 1)

Menghasilkan Kebijakan AWS (Bagian 1)
Menghasilkan Kebijakan AWS (Bagian 1)
Menghasilkan Kebijakan AWS (Bagian 1)
Menghasilkan Kebijakan AWS (Bagian 1)
Menghasilkan Kebijakan AWS (Bagian 1)
Menghasilkan Kebijakan AWS (Bagian 1)
  1. Klik pada keranjang yang Anda buat untuk masuk ke halaman di atas, lalu lanjutkan ke "Kebijakan Bucket" di bawah tab "Izin".
  2. Selanjutnya, klik tautan “Pembuat Kebijakan” di bagian bawah halaman untuk membuat kebijakan AWS Anda.
  3. Dalam formulir, masukkan nilai-nilai berikut:

    • Jenis Kebijakan: Kebijakan Bucket S3
    • Efek: Izinkan
    • Kepala sekolah: *
    • Layanan AWS: Amazon S3
    • Tindakan: GetObject
    • Nama Sumber Daya Amazon (ARN): arn:aws:s3:::seroma-bucket
  4. Setelah mengisi informasi, klik Tambah Pernyataan.
  5. Klik tombol "Hasilkan Kebijakan".

Langkah 14: Buat Kebijakan AWS (Bagian 2)

Buat Kebijakan AWS (Bagian 2)
Buat Kebijakan AWS (Bagian 2)
Menghasilkan Kebijakan AWS (Bagian 2)
Menghasilkan Kebijakan AWS (Bagian 2)
Menghasilkan Kebijakan AWS (Bagian 2)
Menghasilkan Kebijakan AWS (Bagian 2)
Menghasilkan Kebijakan AWS (Bagian 2)
Menghasilkan Kebijakan AWS (Bagian 2)
  1. Salin kode yang dihasilkan dan klik tutup.
  2. Kembali ke editor Amazon S3 Bucket Policy dan tempelkan kode yang disalin sebelumnya.
  3. Tambahkan “/*” ke dalam kode tepat di belakang kode Resource, seperti pada gambar di atas, lalu klik simpan.
  4. Setelah melakukannya, ember Anda akan berhasil disiapkan dan siap digunakan.

Langkah 15: Membuat Tabel untuk DynamoDB

Membuat Tabel untuk DynamoDB
Membuat Tabel untuk DynamoDB
Membuat Tabel untuk DynamoDB
Membuat Tabel untuk DynamoDB
  1. Cari DynamoDB di bilah pencarian Layanan AWS
  2. Klik "Buat tabel" dan buat 3 tabel dengan informasi di bawah ini: (Hanya "nama tabel" dan "kunci utama" yang diubah)

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • data staf, nama pengguna pk

Langkah 16: Roomstatus.py

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

Bagian ini berisi kode untuk roomstatus.py, yang menulis semua data tentang ruang server itu sendiri setiap menit. Ini termasuk suhu, kelembaban, gerakan (gambar dan video jika benar), dan log akses. Itu juga menulis data ke Google Spreadsheet, data ke DynamoDB, gambar dan video (jika ada) ke S3, menampilkan informasi di layar LCD, mengirim SMS dan Email ketika ada dugaan pelanggaran, atau ketika suhu atau kelembapan tidak teratur.

Untuk menjalankan file python, ubah direktori ke tempat file berada dan ketik konsol: "sudo python"

Pic 2: Fungsi yang dideklarasikan untuk memungkinkan peringatan SMS dan Email, dan mengunggah ke S3

Pic 3: Variabel dideklarasikan agar fungsi dan RPi berfungsi

Pic 4: Mulai dari loop yang mendapatkan nilai suhu dan kelembaban dari RPi. Itu juga menulis data ke spreadsheet Google

Pic 5: Bagian keamanan dari loop. Ini hanya akan aktif dari jam 7 malam sampai jam 7 pagi (off hours). Ini akan memeriksa gerakan dalam rentang satu menit. Jika gerakan terdeteksi, ia akan mengambil gambar dan video, mengunggahnya ke S3, sambil juga menulis informasi ke DynamoDB untuk referensi nanti. Setelah itu, akan mengirimkan SMS dan Email jika ada yang tidak wajar.

Pic 6: Akhir dari loop. Itu juga menulis data ke DynamoDB dan mengirimkan peringatan yang sesuai. Baris terakhir dari loop akan membuat skrip tidur hingga menit berikutnya tercapai.

Langkah 17: Rfid.py

rfid.py
rfid.py
rfid.py
rfid.py
rfid.py
rfid.py
rfid.py
rfid.py

Bagian ini berisi kode untuk rfid.py, yang menambahkan fungsi untuk melacak ketika seorang anggota staf mengakses ruang server. Ini juga merupakan bagian dari aspek keamanan Seroma, di mana seorang anggota staf tidak diperbolehkan mengakses ruang server setelah jam kantor, untuk mencegah pelanggaran data. Itu juga mengirim Email dan SMS ke semua staf jika ada dugaan pelanggaran.

Pic 2: Mulai dari logika pembaca RFID. Setiap kali kartu dipindai terhadap pembaca, id unik (uid) kartu diambil. Setelah itu, kami mencoba mencari nilai uid kartu di tabel data staf untuk melihat apakah kartu itu milik salah satu staf. Gambar 3: Jika uid kartu ada di database, itu akan memeriksa apakah itu selama kantor di luar jam kerja. Jika ya, ia akan memberi tahu karyawan lainnya melalui SMS dan Email ke alamat email yang dilanggan. Jika masih pada jam kantor, maka akan menulis baris ke tabel accesslog di database dengan data yang relevan. Ini juga akan menampilkan pesan selamat datang di layar LCD.

Langkah 18: Server.py

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

Ini adalah file server.py. Kami akan menggunakan kerangka Flask untuk portal web. File HTML untuk dimasukkan ke dalam /template juga dilampirkan.

Gambar 1: Rute pertama untuk Flask ditentukan. Ini akan mengarahkan pengguna ke halaman login jika mereka tidak login, dan halaman dasbor jika mereka login. Juga mendefinisikan fungsi yang akan digunakan dalam fitur streaming langsung

Gambar 2, 3, 4: Rute untuk Flask. Itu mendapatkan data dari tabel DynamoDB dan kemudian mengembalikannya ke file HTML sehingga bisa digunakan di sana.

Pic 5: 2 rute terakhir untuk Flask. Ini menangani fungsi logout dan fungsi streaming langsung. Ini juga menentukan port yang akan dijalankan situs web.

Langkah 19: Telegram.py

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

Bagian ini berisi kode untuk bot telegram Seroma. Ini menggunakan perpustakaan telepot untuk mengetuk Bot API Telegram. Ia bekerja dengan menerima kueri yang didapatnya dan menampilkan informasi masing-masing kepada pengguna. Pengguna dapat mengetik 'bantuan' untuk daftar lengkap perintah.

Pic 1, 2: Untuk mengatur bot telegram, Anda perlu menggunakan BotFather. Jalankan saja instruksi untuk mendapatkan HTTP API yang kita butuhkan dalam kode kita.

Gambar 4: Contoh fungsi yang mengambil sejumlah baris data dari database berdasarkan permintaan pengguna

Gambar 5: Bagaimana kami menerima masukan pengguna dan memutuskan apa yang harus dijalankan.

Langkah 20: Streaming langsung (camera_pi.py)

Streaming langsung (camera_pi.py)
Streaming langsung (camera_pi.py)
Streaming langsung (camera_pi.py)
Streaming langsung (camera_pi.py)
Streaming langsung (camera_pi.py)
Streaming langsung (camera_pi.py)

Kami telah menerapkan fitur baru untuk sistem pemantauan ruang server kami, streaming langsung dari apa yang terjadi di Ruang Server, ini dapat diakses kapan saja, di mana saja. Cara kerja streaming langsung ini: Ini adalah fitur yang dilakukan di Flask, bersama dengan Pi Camera. Bingkai video diunduh seperti yang terjadi dalam kehidupan nyata, sehingga Anda benar-benar dapat melihat bahwa ada sedikit penundaan (1-2 detik) saat bingkai video diunduh dan disatukan. Ini tidak dapat dilakukan tanpa threading, karena thread latar belakang membaca frame dari kamera dan menyimpan frame saat ini. Menggabungkan semua bingkai ini akan menghasilkan streaming langsung.

Pic 2: Ini adalah file terpisah di mana semua frame video disimpan dan seperti yang Anda lihat, kami menggunakan modul picamera untuk mengakses kamera raspberry pi kami karena itulah yang paling kami kenal. Kami memiliki Kamera kelas sehingga kami dapat mengimpor fungsi seolah-olah itu adalah streaming langsung dan bukan beberapa gambar yang disatukan, maka dalam file aplikasi utama akan menganggapnya sebagai streaming langsung tanpa harus khawatir tentang apa yang terjadi di balik layar.

Pic 3: Ini adalah bagian dari file server.py kami di mana bagian streaming langsung dikodekan. Kelas utama yang kami impor untuk ini adalah Kamera dari file camera_pi.py kami di bagian atas file server.py kami. Kami mendefinisikan fungsi di direktori root kami, gen, namun itu hanya mulai digunakan ketika kami menuju ke /video_feed tempat streaming langsung kami berada, di mana ia akan mengulang fungsi ini dan mengembalikan streaming langsung di halaman web.

Direkomendasikan: