Mục lục:

Seroma: Quản lý phòng máy chủ: 20 bước
Seroma: Quản lý phòng máy chủ: 20 bước

Video: Seroma: Quản lý phòng máy chủ: 20 bước

Video: Seroma: Quản lý phòng máy chủ: 20 bước
Video: cắt Amydan bằng Plasma 2024, Tháng mười hai
Anonim
Seroma: Quản lý phòng máy chủ
Seroma: Quản lý phòng máy chủ

Seroma là trình quản lý phòng máy chủ tất cả trong một, cho phép người dùng kiểm tra trạng thái của máy chủ (nhiệt độ và độ ẩm), nhật ký truy cập của phòng máy chủ, cũng như giám sát phòng máy chủ để tìm bất kỳ vi phạm bảo mật nào.

Bước 1: Đăng nhập vào Tài khoản AWS của bạn

Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
Đăng nhập vào tài khoản AWS của bạn
  1. Đối với chúng tôi, chúng tôi đã đăng nhập thông qua cổng AWS education student vì chúng tôi có tài khoản Student aws.
  2. Đi tới tab “Tài khoản AWS” trên menu điều hướng ở trên cùng bên phải.
  3. Nhấp vào “Chuyển đến Tài khoản AWS Educate Starter của bạn”
  4. Mở Bảng điều khiển để truy cập Bảng điều khiển quản lý AWS của bạn.

Bước 2: Bắt đầu với AWS IOT "những thứ"

Bắt đầu với AWS IOT
Bắt đầu với AWS IOT
Bắt đầu với AWS IOT
Bắt đầu với AWS IOT
  1. Tìm kiếm “AWS IoT” trong thanh tìm kiếm dịch vụ AWS.
  2. Nhấp vào “Bắt đầu” để chuyển đến bảng điều khiển AWS IoT Console, nơi bạn có thể xem tất cả các thiết bị IoT đã đăng ký trong tài khoản AWS của mình.

Bước 3: Đăng ký một "thứ" AWS IOT

Đăng ký IOT AWS
Đăng ký IOT AWS
Đăng ký IOT AWS
Đăng ký IOT AWS
Đăng ký IOT AWS
Đăng ký IOT AWS
  1. Trong thanh điều hướng, điều hướng để quản lý “Things” IoT của bạn.
  2. Nhấp vào “Đăng ký một điều” nếu bạn chưa có một điều nào đó. (Nếu bạn đã có một thứ, hãy nhấp vào nút "Tạo" ở trên cùng bên phải của màn hình bên cạnh tab tìm kiếm.)
  3. Nhấp vào nút đầu tiên có tên “Tạo một thứ duy nhất”.
  4. Nhập “RaspberryPi” làm tên của sự vật. Đối với bước này, không yêu cầu đầu vào nào khác ngoài "Tên". Sau khi làm như vậy, hãy nhấp vào tiếp theo.

Bước 4: Kích hoạt chứng chỉ

Kích hoạt chứng chỉ
Kích hoạt chứng chỉ
Kích hoạt chứng chỉ
Kích hoạt chứng chỉ
  1. Ở bước tiếp theo, nhấp vào nút “tạo chứng chỉ”.
  2. Tải xuống và lưu trữ 4 liên kết tải xuống ở trang tiếp theo vào một thư mục hoặc thư mục làm việc. Để lưu tệp CA gốc, hãy nhấp chuột phải và lưu dưới dạng.
  3. Nhấp vào “Kích hoạt” và một thông báo thành công sẽ xuất hiện.
  4. Sử dụng tên thân thiện cho các tệp bằng cách xóa các số phía trước mỗi tên tệp và đổi tên tệp CA gốc thành "rootca.pem".
  5. Nhấp vào "Đính kèm chính sách" để tiếp tục.

Bước 5: Thêm chính sách vào chứng chỉ của bạn

Thêm chính sách vào chứng chỉ của bạn
Thêm chính sách vào chứng chỉ của bạn
Thêm chính sách vào chứng chỉ của bạn
Thêm chính sách vào chứng chỉ của bạn
Thêm chính sách vào chứng chỉ của bạn
Thêm chính sách vào chứng chỉ của bạn
  1. Trên trang tiếp theo, nếu bạn không có chính sách, họ sẽ nhắc bạn thực hiện một chính sách trên nút “Tạo chính sách”.
  2. Nếu bạn đã có một chính sách hiện có, hãy nhấp vào nút “Tạo chính sách mới” bên dưới.
  3. Chèn thông tin sau vào biểu mẫu tạo chính sách.

    Tên: RaspberryPiSecurityPolicy

    Hành động: iot: *

    ARN tài nguyên: *

    Hiệu lực: Cho phép

  4. Sau đó, chính sách của bạn sẽ xuất hiện trong tab "Chính sách" bên dưới "Bảo mật".
  5. Tiếp theo, chuyển đến tab “Chứng chỉ” cũng nằm trong “Bảo mật” và đính kèm chính sách của bạn với chứng chỉ mà bạn đã tạo trước đó.
  6. Trên trang tiếp theo, nhấp vào chính sách của bạn và sau đó nhấp vào “Đính kèm”.
  7. Trong trang Chi tiết của thứ bạn đã tạo, trong tab “Tương tác”, có một điểm cuối API REST cần được sao chép và lưu.
  8. AWS bây giờ phải có Điều được đính kèm với chính sách và có chứng chỉ.

Bước 6: Thiết lập ban đầu cho chủ đề AWS SNS

Thiết lập ban đầu cho chủ đề AWS SNS
Thiết lập ban đầu cho chủ đề AWS SNS
Thiết lập ban đầu cho chủ đề AWS SNS
Thiết lập ban đầu cho chủ đề AWS SNS

SSH vào Raspberry Pi và cài đặt AWS CLI bằng lệnh pip sau:

sudo pip cài đặt awscli

AWS CLI bao gồm tính năng hoàn thành lệnh nhưng nó không được cài đặt theo mặc định. Sử dụng lệnh sau để cài đặt tính năng hoàn thành lệnh trên giao diện CLI của Raspberry Pi:

hoàn thành -C aws_completer aws

Định cấu hình AWS CLI với ID khóa truy cập, khóa truy cập bí mật, tên vùng AWS và định dạng đầu ra lệnh bằng lệnh sau:

aws cấu hình

Sau đó, bảng điều khiển sẽ nhắc bạn điền các thông tin sau:

pi @ raspberrypi: ~ $ aws config

ID khóa truy cập AWS [Không có]: "Đặt ID khóa truy cập của người dùng của bạn tại đây" Khóa truy cập bí mật của AWS [Không có]: "Đặt Khóa truy cập bí mật của người dùng tại đây" Tên vùng mặc định [Không có]: eu-central-1 Định dạng đầu ra mặc định [Không]: json pi @ raspberrypi: ~ $

Bước 7: Tạo tệp Iot-role.trust.json

Tạo tệp Iot-role.trust.json
Tạo tệp Iot-role.trust.json
Tạo tệp Iot-role.trust.json
Tạo tệp Iot-role.trust.json
  1. Tạo tệp JSON với chính sách IAM ở trên với tên tệp là iot-role.trust.json.
  2. Tạo vai trò bằng AWS CLI bằng lệnh sau

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

Bước 8: Tạo tệp Iot-policy.json

Tạo tệp Iot-policy.json
Tạo tệp Iot-policy.json
Tạo tệp Iot-policy.json
Tạo tệp Iot-policy.json
  1. Tạo tệp JSON với chính sách trên với tên tệp là iot-policy.json.
  2. Tạo chính sách vai trò bằng AWS CLI bằng lệnh sau:

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

Bước 9: Tạo chủ đề AWS SNS (Phần 1)

Tạo chủ đề AWS SNS (Phần 1)
Tạo chủ đề AWS SNS (Phần 1)
Tạo chủ đề AWS SNS (Phần 1)
Tạo chủ đề AWS SNS (Phần 1)
Tạo chủ đề AWS SNS (Phần 1)
Tạo chủ đề AWS SNS (Phần 1)
  1. Trong thanh tìm kiếm dịch vụ AWS, Tìm kiếm dịch vụ “SNS” hoặc truy cập
  2. Vì bạn không có chủ đề bây giờ, hãy nhấp vào “Tạo chủ đề mới” để tạo chủ đề.
  3. Nhập tên chủ đề và tên hiển thị của bạn và nhấp vào “Tạo chủ đề” và một chủ đề mới sẽ xuất hiện khi tất cả các bước đều thành công.
  4. Nhấp vào nút thả xuống "Hành động" và "Chỉnh sửa chính sách chủ đề".

Bước 10: Tạo chủ đề AWS SNS (Phần 2)

Tạo chủ đề AWS SNS (Phần 2)
Tạo chủ đề AWS SNS (Phần 2)
Tạo chủ đề AWS SNS (Phần 2)
Tạo chủ đề AWS SNS (Phần 2)
Tạo chủ đề AWS SNS (Phần 2)
Tạo chủ đề AWS SNS (Phần 2)
  1. Đặt chính sách cho phép mọi người xuất bản và đăng ký, vì đây là giới hạn của tài khoản AWSEducate.
  2. Theo dõi chủ đề này để nhận các bản cập nhật được xuất bản cho chủ đề này.
  3. Thay đổi giao thức thành “Email” và nhập email của bạn ở điểm cuối.

  4. Đi tới email của bạn nơi bạn đã nhập điểm cuối của mình, nhấp vào liên kết xác nhận để xác nhận đăng ký email của bạn để đăng ký chủ đề.
  5. Điều hướng đến các dịch vụ “AWS IoT”, trên menu điều hướng ở bên trái, nhấp vào “Hành động”. Trang này là nơi các quy tắc của bạn được hiển thị và có sẵn để bạn xem và chỉnh sửa. Hiện tại, không có quy tắc nào cho thứ IoT của bạn, hãy nhấp vào “Tạo quy tắc”.

Bước 11: Tạo chủ đề AWS SNS (Phần 3)

Tạo chủ đề AWS SNS (Phần 3)
Tạo chủ đề AWS SNS (Phần 3)
Tạo chủ đề AWS SNS (Phần 3)
Tạo chủ đề AWS SNS (Phần 3)
Tạo chủ đề AWS SNS (Phần 3)
Tạo chủ đề AWS SNS (Phần 3)
  1. Nhập tên vào trường Tên cho quy tắc của bạn. Trong trường Mô tả, hãy nhập mô tả cho quy tắc của bạn. Tiếp tục đến phần Nguồn thư, chúng tôi sẽ chọn phiên bản SQL cập nhật nhất trong phần “Sử dụng phiên bản SQL”. Nhập * vào thuộc tính để chọn toàn bộ thông báo MQTT từ chủ đề, trong trường hợp của chúng tôi, chủ đề của chúng tôi là "TempHumid".
  2. Sau đó, thêm hành động thông báo “SNS” cho quy tắc của bạn. Sau đó, nhấp vào “Định cấu hình hành động”.
  3. Trong trang “Định cấu hình hành động”, chọn chủ đề SNS mà bạn vừa tạo và định dạng thư là RAW. Sau đó, chọn vai trò bạn vừa tạo bằng AWS CLI và nhấp vào “Thêm hành động”.
  4. Hành động của bạn sẽ được định cấu hình và quay lại “Tạo quy tắc”.
  5. Nhấp vào chỉnh sửa nếu bạn muốn chỉnh sửa quy tắc.

Bước 12: Tạo nhóm trên Amazon S3

Tạo nhóm trên Amazon S3
Tạo nhóm trên Amazon S3
Tạo nhóm trên Amazon S3
Tạo nhóm trên Amazon S3
Tạo nhóm trên Amazon S3
Tạo nhóm trên Amazon S3
  1. Tìm kiếm S3 trong thanh tìm kiếm AWS.
  2. Trong trang Amazon S3, hãy nhấp vào nút “Tạo nhóm” để bắt đầu.
  3. Điền vào biểu mẫu bật lên xuất hiện với thông tin sau:

    • Tên nhóm: seroma-bucket (tên này phải là duy nhất trên tất cả các nhóm Amazon S3 hiện có)
    • Khu vực: Tây Hoa Kỳ (Oregon)
    • Sao chép Cài đặt: (Bỏ qua)
  4. Đối với các bước từ 2 đến 3, chỉ cần bỏ qua bằng cách nhấp vào “Tiếp theo” vì không có gì cần thay đổi. Ở bước 4, nhấp vào “Tạo nhóm”.
  5. Sau khi tạo, bạn sẽ thấy nhóm của mình trên trang chủ.

Bước 13: Tạo Chính sách AWS (Phần 1)

Tạo Chính sách AWS (Phần 1)
Tạo Chính sách AWS (Phần 1)
Tạo Chính sách AWS (Phần 1)
Tạo Chính sách AWS (Phần 1)
Tạo Chính sách AWS (Phần 1)
Tạo Chính sách AWS (Phần 1)
  1. Nhấp vào nhóm bạn đã tạo để vào trang trên, sau đó tiếp tục đến “Chính sách nhóm” trong tab “Quyền”.
  2. Tiếp theo, nhấp vào liên kết “Trình tạo chính sách” ở cuối trang để tạo chính sách AWS của bạn.
  3. Trong biểu mẫu, hãy nhập các giá trị sau:

    • Loại chính sách: Chính sách nhóm S3
    • Hiệu lực: Cho phép
    • Hiệu trưởng: *
    • Dịch vụ AWS: Amazon S3
    • Hành động: GetObject
    • Tên tài nguyên Amazon (ARN): arn: aws: s3::: seroma-bucket
  4. Sau khi điền đầy đủ thông tin, bạn bấm vào Add Statement.
  5. Nhấp vào nút "Tạo chính sách".

Bước 14: Tạo chính sách AWS (Phần 2)

Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
Tạo Chính sách AWS (Phần 2)
  1. Sao chép các mã được tạo và nhấp vào đóng.
  2. Quay lại trình chỉnh sửa Chính sách nhóm Amazon S3 của bạn và dán các mã đã sao chép trước đó.
  3. Thêm “/ *” vào các mã ngay sau Mã tài nguyên, như trong hình trên, sau đó nhấp vào lưu.
  4. Sau khi làm như vậy, nhóm của bạn sẽ được thiết lập thành công và sẵn sàng để sử dụng.

Bước 15: Tạo bảng cho DynamoDB

Tạo bảng cho DynamoDB
Tạo bảng cho DynamoDB
Tạo bảng cho DynamoDB
Tạo bảng cho DynamoDB
  1. Tìm kiếm DynamoDB trong thanh tìm kiếm Dịch vụ AWS
  2. Click vào "Tạo bảng" và tạo 3 bảng với thông tin bên dưới: (Chỉ thay đổi "tên bảng" và "khóa chính")

    • accesslog, pk datetimevalue
    • roomstatus, pk datetimevalue
    • dữ liệu nhân viên, tên người dùng pk

Bước 16: Roomstatus.py

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

Phần này chứa mã cho roomstatus.py, mã này ghi tất cả dữ liệu liên quan đến chính phòng máy chủ mỗi phút. Điều này bao gồm nhiệt độ, độ ẩm, chuyển động (hình ảnh và video nếu đúng) và nhật ký truy cập. Nó cũng ghi dữ liệu vào Bảng tính Google, dữ liệu vào DynamoDB, hình ảnh và video (nếu có) vào S3, hiển thị thông tin trên màn hình LCD, gửi SMS và Email khi có nghi ngờ vi phạm hoặc khi nhiệt độ hoặc độ ẩm không đều.

Để chạy các tệp python, hãy thay đổi thư mục thành nơi chứa tệp và nhập vào bảng điều khiển: "sudo python"

Hình 2: Các chức năng được khai báo để cho phép cảnh báo qua SMS và Email và tải lên S3

Hình 3: Các biến được khai báo cho các hàm và RPi hoạt động

Hình 4: Bắt đầu vòng lặp nhận các giá trị nhiệt độ và độ ẩm từ RPi. Nó cũng ghi dữ liệu vào bảng tính Google

Hình 5: Phần bảo mật của vòng lặp. Nó sẽ chỉ kích hoạt từ 7 giờ tối đến 7 giờ sáng (ngoài giờ). Nó sẽ kiểm tra chuyển động trong khoảng thời gian một phút. Nếu phát hiện chuyển động, nó sẽ chụp ảnh và quay video, tải lên S3, đồng thời ghi thông tin lên DynamoDB để tham khảo sau này. Sau đó, nó sẽ gửi SMS và Email nếu có bất kỳ điều gì bất thường.

Hình 6: Phần cuối của vòng lặp. Nó cũng ghi dữ liệu vào DynamoDB và gửi cảnh báo tương ứng. Dòng cuối cùng của vòng lặp sẽ làm cho script ở chế độ ngủ cho đến khi đạt đến phút tiếp theo.

Bước 17: Rfid.py

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

Phần này chứa mã cho rfid.py, mã này bổ sung thêm chức năng theo dõi khi một nhân viên truy cập vào phòng máy chủ. Nó cũng là một phần của khía cạnh bảo mật của Seroma, nơi một nhân viên không được phép truy cập vào phòng máy chủ sau giờ làm việc, để ngăn chặn vi phạm dữ liệu. Nó cũng gửi Email và SMS cho tất cả nhân viên nếu nghi ngờ có vi phạm.

Hình 2: Bắt đầu logic đầu đọc RFID. Bất cứ khi nào một thẻ được quét đối với đầu đọc, id (uid) duy nhất của thẻ sẽ được lấy. Sau đó, chúng tôi thử tìm giá trị uid của thẻ trong bảng dữ liệu nhân viên để xem thẻ đó thuộc về nhân viên nào hay không. ngoài giờ. Nếu đúng như vậy, nó sẽ cảnh báo những nhân viên còn lại thông qua SMS và gửi Email đến các địa chỉ email đã đăng ký. Nếu vẫn đang trong giờ hành chính, nó sẽ ghi một hàng vào bảng accesslog trong cơ sở dữ liệu với dữ liệu liên quan. Nó cũng sẽ hiển thị thông báo chào mừng trên màn hình LCD.

Bước 18: Server.py

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

Đây là tệp server.py. Chúng tôi sẽ sử dụng khung Flask cho cổng thông tin điện tử. Các tệp HTML được đưa vào / các mẫu cũng được đính kèm.

Pic 1: Định tuyến đầu tiên cho Flask. Nó sẽ chuyển hướng người dùng đến trang đăng nhập nếu họ chưa đăng nhập và trang tổng quan nếu họ đang đăng nhập. Đồng thời xác định một chức năng được sử dụng trong tính năng phát trực tiếp

Hình 2, 3, 4: Các tuyến đường cho bình. Nó lấy dữ liệu từ bảng DynamoDB và sau đó trả chúng về các tệp HTML để chúng có thể được sử dụng ở đó.

Hình 5: 2 tuyến đường cuối cùng cho Flask. Nó xử lý chức năng đăng xuất và chức năng phát trực tiếp. Nó cũng chỉ định cổng mà trang web sẽ chạy.

Bước 19: Telegram.py

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

Phần này bao gồm mã cho bot điện tín của Seroma. Nó sử dụng thư viện tele để khai thác trên API Bot của Telegram. Nó hoạt động bằng cách chấp nhận các truy vấn mà nó nhận được và hiển thị thông tin tương ứng cho người dùng. Người dùng có thể nhập 'help' để có danh sách đầy đủ các lệnh.

Hình 1, 2: Để thiết lập bot điện tín, bạn cần sử dụng BotFather. Chỉ cần chạy qua các hướng dẫn để nhận được API HTTP mà chúng tôi cần trong mã của mình.

Hình 4: Ví dụ về một hàm lấy một số hàng dữ liệu nhất định từ cơ sở dữ liệu dựa trên yêu cầu của người dùng

Hình 5: Cách chúng tôi lấy thông tin đầu vào của người dùng và quyết định những gì sẽ chạy cho phù hợp.

Bước 20: Phát trực tiếp (camera_pi.py)

Phát trực tiếp (camera_pi.py)
Phát trực tiếp (camera_pi.py)
Phát trực tiếp (camera_pi.py)
Phát trực tiếp (camera_pi.py)
Phát trực tiếp (camera_pi.py)
Phát trực tiếp (camera_pi.py)

Chúng tôi đã triển khai một tính năng mới cho hệ thống giám sát phòng máy chủ của mình, một luồng trực tiếp về những gì đang diễn ra trong Phòng Máy chủ, có thể truy cập tính năng này bất kỳ lúc nào, ở bất kỳ đâu. Cách hoạt động của luồng trực tiếp này: Đây là một tính năng được thực hiện trong Flask, cùng với Pi Camera. Các khung hình video được tải xuống giống như nó đang diễn ra trong đời thực, vì vậy bạn thực sự có thể thấy rằng có độ trễ nhỏ (1-2 giây) khi các khung hình video được tải xuống và ghép lại với nhau. Không thể thực hiện điều này nếu không phân luồng, vì luồng nền đọc các khung hình từ máy ảnh và lưu trữ khung hình hiện tại. Sau đó, ghép tất cả các khung này lại với nhau sẽ tạo ra một luồng trực tiếp.

Pic 2: Đây là một tệp riêng biệt, nơi tất cả các khung video được lưu trữ và như bạn có thể thấy, chúng tôi đang sử dụng mô-đun picamera để truy cập máy ảnh raspberry pi của chúng tôi vì đó là thứ chúng tôi quen thuộc nhất. Chúng tôi có một Máy ảnh lớp để chúng tôi có thể nhập chức năng như thể nó là một buổi phát trực tiếp chứ không phải nhiều hình ảnh ghép lại với nhau, do đó trong tệp ứng dụng chính sẽ coi nó như một luồng trực tiếp mà không phải lo lắng về những gì đang xảy ra phía sau hậu trường.

Hình 3: Đây là một phần của tệp server.py của chúng tôi, nơi phần luồng trực tiếp được mã hoá. Lớp chính mà chúng tôi đã nhập cho lớp này là Máy ảnh từ tệp camera_pi.py ở đầu tệp server.py của chúng tôi. Chúng tôi đã xác định một hàm tại thư mục gốc của chúng tôi, gen, tuy nhiên, nó chỉ được sử dụng khi chúng tôi truy cập / video_feed nơi phát trực tiếp của chúng tôi ở đó, nơi nó sẽ lặp qua hàm này và trả lại luồng trực tiếp trên trang web.

Đề xuất: