Tìm kiếm trang web

Triển khai Coreflux MQTT Broker với cơ sở dữ liệu được quản lý


Giới thiệu

MQTT broker kết nối các thiết bị và ứng dụng IoT thông qua mô hình nhắn tin publish-subscribe, làm cho chúng trở thành phần quan trọng trong cơ sở hạ tầng IoT hiện đại. Coreflux là một MQTT broker low-code cung cấp khả năng xử lý và biến đổi dữ liệu theo thời gian thực, cho phép bạn tích hợp trực tiếp với các cơ sở dữ liệu được quản lý bởi Linux-Console.net bao gồm MongoDB, PostgreSQL, MySQL và OpenSearch mà không cần viết mã tích hợp tùy chỉnh.

Những gì bạn sẽ học: Hướng dẫn này sẽ dẫn bạn qua việc triển khai một pipeline dữ liệu IoT hoàn chỉnh — từ việc thiết lập một cụm cơ sở dữ liệu quản lý và broker Coreflux MQTT trên Linux-Console.net, đến việc cấu hình mạng VPC an toàn, xây dựng các mô hình biến đổi dữ liệu sử dụng Ngôn ngữ của Vật thể (LoT) của Coreflux, và tự động lưu trữ dữ liệu IoT đã xử lý vào cơ sở dữ liệu mà bạn chọn. Cuối cùng, bạn sẽ có một thiết lập sẵn sàng cho sản xuất, xử lý một cách hiệu quả các tin nhắn thời gian thực và lưu trữ dữ liệu bền vững cho các ứng dụng IoT.

Điểm chính

Trước khi đi vào quy trình triển khai từng bước, đây là những điểm chính mà bạn sẽ học:

  • Triển khai một cụm cơ sở dữ liệu được quản lý (PostgreSQL, MongoDB, MySQL hoặc OpenSearch) trên Linux-Console.net để lưu trữ dữ liệu IoT có khả năng mở rộng.
  • Cài đặt máy chủ Coreflux MQTT trên Droplet Linux-Console.net sử dụng hình ảnh Marketplace hoặc Docker.
  • Tạo mạng VPC an toàn để kết nối broker MQTT và cơ sở dữ liệu của bạn mà không bị phơi bày công khai.
  • Xây dựng các đường dẫn dữ liệu thời gian thực bằng Ngôn ngữ Vạn Vật (LoT) của Coreflux cho tự động hóa IoT với ít mã.
  • Chuyển đổi và lưu trữ dữ liệu IoT tự động từ các chủ đề MQTT vào bảng cơ sở dữ liệu, tập hợp, hoặc chỉ mục.
  • Xác minh luồng dữ liệu từ đầu đến cuối từ các cảm biến mô phỏng qua các mô hình chuyển đổi đến lưu trữ cơ sở dữ liệu.

Hướng dẫn này cung cấp một nền tảng sẵn sàng cho sản xuất cho các ứng dụng IoT cần nhắn tin thời gian thực kết hợp với lưu trữ dữ liệu bền vững và các khả năng nâng cao như tìm kiếm, phân tích hoặc truy vấn quan hệ.

Những gì bạn sẽ xây dựng

Vào cuối hướng dẫn tự động hóa này, bạn sẽ triển khai:

  • Một cụm cơ sở dữ liệu được quản lý (PostgreSQL, MongoDB, MySQL hoặc OpenSearch) cho lưu trữ có thể mở rộng
  • Một droplet Linux-Console.net đang chạy máy chủ MQTT Coreflux
  • Một mạng Đám mây Riêng Ảo (VPC) cho giao tiếp IoT an toàn
  • Mô phỏng dữ liệu thời gian thực sử dụng tiện ích mở rộng LoT Notebook
  • Mô hình chuyển đổi dữ liệu low code và các tuyến tích hợp cơ sở dữ liệu
  • Hoàn thiện Pipeline Tích hợp & Chuyển đổi Dữ liệu cho Tự động hóa IoT

Đối tác Coreflux & Linux-Console.net

Coreflux cung cấp một Broker MQTT gọn nhẹ và các công cụ Dữ liệu Pipeline thông qua ngôn ngữ lập trình Language-of-Things cho Giao tiếp IoT Hiệu quả trên Linux-Console.net.

MQTT là gì?

MQTT (Message Queuing Telemetry Transport) là một giao thức mạng nhẹ theo mô hình xuất bản-đăng ký, được sử dụng rộng rãi trong các hệ sinh thái IoT. Được thiết kế cho các thiết bị hạn chế và các mạng băng thông thấp, độ trễ cao hoặc không đáng tin cậy, MQTT cho phép truyền tin hiệu quả, theo thời gian thực trong các môi trường có băng thông hạn chế.

Về Coreflux

Coreflux cung cấp một MQTT broker nhẹ để tạo điều kiện cho việc giao tiếp hiệu quả, theo thời gian thực giữa các thiết bị IoT và các ứng dụng, bao gồm cả khả năng chuyển đổi dữ liệu theo thời gian thực cần thiết cho từng trường hợp sử dụng. Được xây dựng để mở rộng và đáng tin cậy, Coreflux được thiết kế cho các môi trường nơi độ trễ thấp và thông lượng cao là rất quan trọng.

Coreflux xử lý việc định tuyến tin nhắn và luồng dữ liệu giữa các thiết bị, cho dù bạn đang xây dựng một dự án IoT nhỏ hay triển khai một hệ thống giám sát công nghiệp.

Với Coreflux trên Linux-Console.net, bạn sẽ nhận được:

Xử lý dữ liệu: Tập trung các nhu cầu xử lý dữ liệu của bạn ngay tại nơi dữ liệu của bạn tồn tại, đảm bảo xử lý dữ liệu theo thời gian thực.

Tích hợp Dữ liệu: Dễ dàng tích hợp với các dịch vụ khác của Linux-Console.net như Cơ sở dữ liệu được Quản lý (PostgreSQL, MongoDB, MySQL hoặc OpenSearch), đảm bảo một hệ sinh thái duy nhất và đơn giản cho tất cả nhu cầu dữ liệu của bạn.

Khả năng mở rộng: Dễ dàng xử lý khối lượng dữ liệu và thiết bị đang tăng lên mà không làm giảm hiệu suất.

Độ tin cậy: Đảm bảo thông điệp nhất quán và đáng tin cậy trên tất cả các thiết bị kết nối.

Điều kiện tiên quyết

Trước khi bạn bắt đầu hướng dẫn triển khai MQTT broker này, bạn sẽ cần:

  • Một tài khoản Linux-Console.net có kích hoạt chức năng thanh toán
  • Hiểu biết về các khái niệm của giao thức MQTT và kiến trúc IoT (xem phần giới thiệu về MQTT của chúng tôi để biết thêm thông tin cơ bản)
  • Visual Studio Code (dành cho tiện ích LoT Notebook)

Thời gian ước tính: Hướng dẫn này mất khoảng 30-45 phút để hoàn thành, tùy thuộc vào thời gian cung cấp cơ sở dữ liệu (thường từ 1-5 phút cho mỗi cụm cơ sở dữ liệu).

Bước 1 — Tạo cơ sở hạ tầng mạng cho Tự động hóa IoT

Tạo mạng VPC để giao tiếp MQTT an toàn

Đầu tiên, bạn sẽ tạo một Mạng Riêng Ảo (VPC) để đảm bảo giao tiếp an toàn giữa các dịch vụ IoT của bạn và MQTT broker, mà không cần truy cập công khai.

  1. Đăng nhập vào bảng điều khiển Linux-Console.net của bạn
  2. Đi tới Mạng → VPC từ thanh bên trái
  3. Nhấp vào Tạo Mạng VPC

  1. Cấu hình VPC của bạn cho tự động hóa IoT:

    1. Tên: coreflux-integrations-vpc (hoặc tên VPC của bạn)
    2. Khu vực trung tâm dữ liệu: Chọn Frankfurt (hoặc khu vực bạn ưu tiên)
    3. Phạm vi IP: Sử dụng mặc định hoặc cấu hình theo nhu cầu
    4. Mô tả: Thêm một mô tả có ý nghĩa cho mạng MQTT broker và cơ sở dữ liệu của bạn
  2. Nhấp vào Tạo Mạng VPC

VPC sẽ cung cấp mạng riêng biệt cho tất cả các tài nguyên IoT của bạn, đảm bảo giao tiếp an toàn giữa trình môi giới MQTT Coreflux và các cơ sở dữ liệu được quản lý. Để biết thêm chi tiết về cấu hình VPC, hãy xem hướng dẫn của chúng tôi về cách tạo mạng VPC.

Bước 2 — Thiết lập cơ sở dữ liệu được quản lý cho lưu trữ có thể mở rộng

Chọn một trong các tùy chọn cơ sở dữ liệu sau dựa trên yêu cầu ứng dụng IoT của bạn:

  • PostgreSQL: Lý tưởng cho dữ liệu có cấu trúc cần truy vấn quan hệ, tuân thủ ACID và các mối quan hệ phức tạp
  • MySQL: Tuyệt vời cho các khối lượng công việc có cấu trúc và các truy vấn giao dịch với độ nhất quán cao và hỗ trợ công cụ rộng rãi
  • MongoDB: Hoàn hảo cho việc lưu trữ tài liệu linh hoạt với các sơ đồ khác nhau và phát triển nhanh
  • OpenSearch: Tuyệt vời cho tìm kiếm nâng cao, phân tích, phân tích nhật ký và trực quan hóa dữ liệu chuỗi thời gian

Thiết lập cơ sở dữ liệu PostgreSQL được quản lý

Managed PostgreSQL trên Linux-Console.net là lựa chọn phù hợp khi khối lượng công việc IoT của bạn cần cấu trúc quan hệ, tính nhất quán cao và phân tích SQL nâng cao, đồng thời được hỗ trợ bởi sao lưu tự động, giám sát và bảo trì.

  1. Từ bảng điều khiển Linux-Console.net, điều hướng đến Cơ sở dữ liệu

  2. Nhấp vào Tạo cụm cơ sở dữ liệu

  3. Cấu hình cụm PostgreSQL của bạn cho tự động hóa IoT:

    • Động cơ cơ sở dữ liệu: Chọn PostgreSQL
    • Phiên bản: Chọn phiên bản ổn định mới nhất
    • Khu vực trung tâm dữ liệu: Chọn Frankfurt (giống VPC của bạn)
    • Mạng VPC: Chọn coreflux-integrations-vpc mà bạn đã tạo
    • Tên cụm cơ sở dữ liệu: postgresql-coreflux-test
    • Dự án: Chọn dự án mục tiêu của bạn
  4. Chọn gói của bạn dựa trên IoT mà bạn cần:

    1. Để phát triển: gói Cơ bản với 1 GB RAM
    2. Đối với sản xuất: Đa năng hoặc cao hơn cho lưu trữ có thể mở rộng
  5. Nhấp vào Tạo cụm cơ sở dữ liệu

Quá trình tạo cơ sở dữ liệu được quản lý thường mất từ 1-5 phút. Khi hoàn tất, bạn sẽ được chuyển hướng đến trang tổng quan cơ sở dữ liệu, nơi bạn có thể xem chi tiết kết nối và thực hiện các hành động quản trị.

Cấu hình truy cập cơ sở dữ liệu PostgreSQL cho tích hợp MQTT Broker

Bạn sẽ được hướng dẫn với các bước Bắt đầu, nơi hiển thị chi tiết kết nối của bạn và bạn có thể cấu hình các quy tắc truy cập đến (khuyến nghị giới hạn chỉ cho IP và VPC của bạn).

  1. Nhấn Bắt đầu để cấu hình cơ sở dữ liệu PostgreSQL của bạn
  2. [Tùy chọn] Hạn chế kết nối đến:

    • Thêm địa chỉ IP của máy tính cục bộ để truy cập quản lý
    • Giọt nước sẽ tự động được phép qua mạng VPC

Để biết chi tiết kết nối, bạn sẽ thấy hai tùy chọn - Mạng Công cộng và Mạng VPC. Tùy chọn đầu tiên dùng để truy cập từ bên ngoài cho các công cụ như DBeaver, trong khi tùy chọn thứ hai sẽ được dịch vụ Coreflux sử dụng để truy cập cơ sở dữ liệu.

  1. Ghi chú các chi tiết kết nối được cung cấp, cả cho truy cập công cộng và truy cập VPC (chi tiết riêng cho từng loại):

    • Máy chủ: Tên máy chủ cơ sở dữ liệu của bạn
    • Người dùng: Người dùng quản trị mặc định
    • Mật khẩu: Mật khẩu bảo mật được tạo tự động
    • Cơ sở dữ liệu: Tên cơ sở dữ liệu xác thực

Kiểm tra kết nối cơ sở dữ liệu PostgreSQL

Bạn có thể kiểm tra kết nối PostgreSQL bằng DBeaver với các tham số kết nối được cung cấp, sử dụng thông tin đăng nhập truy cập công cộng:

Tạo Cơ sở Dữ liệu và Người dùng Ứng dụng PostgreSQL (Tùy chọn)

Để bảo mật và tổ chức tốt hơn, hãy tạo một người dùng và cơ sở dữ liệu riêng cho ứng dụng tự động hóa IoT của bạn. Việc này cũng có thể thực hiện thông qua DBeaver hoặc CLI, nhưng Linux-Console.net cung cấp một cách tiếp cận thân thiện với người dùng:

  1. Đi tới tab Người dùng & Cơ sở dữ liệu trong cụm cơ sở dữ liệu đã quản lý của bạn
  2. Tạo Người Dùng:

    • Tên người dùng: coreflux-broker-client
    • Mật khẩu: Tự động tạo
  3. Tạo cơ sở dữ liệu:

    • Tên cơ sở dữ liệu: coreflux-broker-data

Lưu ý: Bạn có thể cần thay đổi quyền người dùng trong cơ sở dữ liệu để có thể tạo bảng, chèn và truy vấn dữ liệu. Đối với PostgreSQL, cấp các quyền cần thiết bằng lệnh GRANT CREATE, INSERT, SELECT ON DATABASE coreflux-broker-data TO coreflux-broker-client;. Đối với MySQL, sử dụng GRANT CREATE, INSERT, SELECT ON coreflux-broker-data.* TO 'coreflux-broker-client'@'%';. Xem hướng dẫn nhanh PostgreSQL và tài liệu MySQL của chúng tôi để biết thêm chi tiết.

Thiết lập cơ sở dữ liệu MySQL được quản lý

Managed MySQL trên Linux-Console.net là lý tưởng cho dữ liệu IoT có cấu trúc và giao dịch khi bạn muốn SQL quen thuộc, hỗ trợ hệ sinh thái rộng lớn, và một dịch vụ được quản lý hoàn toàn xử lý sao lưu, cập nhật và giám sát.

  1. Từ bảng điều khiển Linux-Console.net, điều hướng đến Cơ sở dữ liệu

  2. Nhấp vào Tạo cụm cơ sở dữ liệu

  3. Cấu hình MySQL cluster của bạn cho tự động hóa IoT:

    • Trình cơ sở dữ liệu: Chọn MySQL
    • Phiên bản: Chọn phiên bản ổn định mới nhất
    • Khu vực trung tâm dữ liệu: Chọn Frankfurt (giống VPC của bạn)
    • Mạng VPC: Chọn coreflux-integrations-vpc mà bạn đã tạo
    • Tên cụm cơ sở dữ liệu: mysql-coreflux-test
    • Dự án: Chọn dự án mục tiêu của bạn
  4. Chọn gói của bạn dựa trên IoT mà bạn cần:

    • Để phát triển: gói Cơ bản với 1 GB RAM
    • Đối với sản xuất: Đa năng hoặc cao hơn cho lưu trữ có thể mở rộng
  5. Nhấp vào Tạo cụm cơ sở dữ liệu

Quá trình tạo cơ sở dữ liệu được quản lý thường mất từ 1-5 phút. Khi hoàn tất, bạn sẽ được chuyển hướng đến trang tổng quan cơ sở dữ liệu, nơi bạn có thể xem chi tiết kết nối và thực hiện các hành động quản trị.

Cấu hình truy cập cơ sở dữ liệu MySQL cho tích hợp MQTT Broker

Bạn sẽ được hướng dẫn với các bước Bắt đầu, nơi hiển thị chi tiết kết nối của bạn và bạn có thể cấu hình các quy tắc truy cập đến (khuyến nghị giới hạn chỉ cho IP và VPC của bạn).

  1. Nhấn Bắt đầu để cấu hình cơ sở dữ liệu MySQL của bạn
  2. [Tùy chọn] Hạn chế kết nối đến:

    • Thêm địa chỉ IP của máy tính cục bộ để truy cập quản lý
    • Giọt nước sẽ tự động được phép qua mạng VPC

Để biết chi tiết kết nối, bạn sẽ thấy hai tùy chọn - Mạng Công cộng và Mạng VPC. Tùy chọn đầu tiên dùng để truy cập bên ngoài cho các công cụ như DBeaver, trong khi tùy chọn thứ hai sẽ được dịch vụ Coreflux sử dụng để truy cập cơ sở dữ liệu.

  1. Ghi chú các chi tiết kết nối được cung cấp, cả cho truy cập công khai và truy cập VPC (chi tiết riêng cho từng loại):

    • Máy chủ: Tên máy chủ cơ sở dữ liệu của bạn
    • Người dùng: Người dùng quản trị mặc định
    • Mật khẩu: Mật khẩu an toàn được tạo tự động
    • Cơ sở dữ liệu: Tên cơ sở dữ liệu xác thực

Kiểm tra kết nối cơ sở dữ liệu MySQL

Bạn có thể kiểm tra kết nối MySQL bằng DBeaver với các thông số kết nối được cung cấp, sử dụng thông tin đăng nhập truy cập công khai.

Lưu ý: Bạn có thể cần thay đổi cài đặt driver của DBeaver — đặt allowPublicKeyRetrieval=true.

Tạo Cơ sở Dữ liệu và Người dùng Ứng dụng MySQL (Tùy chọn)

Để bảo mật và tổ chức tốt hơn, hãy tạo một người dùng và cơ sở dữ liệu riêng cho ứng dụng tự động hóa IoT của bạn. Việc này cũng có thể thực hiện thông qua DBeaver hoặc CLI, nhưng Linux-Console.net cung cấp một cách tiếp cận thân thiện với người dùng:

  1. Đi tới tab Người dùng & Cơ sở dữ liệu trong cụm cơ sở dữ liệu đã quản lý của bạn
  2. Tạo Người Dùng:

    • Tên người dùng: coreflux-broker-client
    • Mật khẩu: Tự tạo
  3. Tạo Cơ Sở Dữ Liệu:

    • Tên cơ sở dữ liệu: coreflux-broker-data

Thiết lập cơ sở dữ liệu MongoDB được quản lý

Managed MongoDB trên Linux-Console.net rất phù hợp với các payload IoT linh hoạt hoặc đang phát triển, cho phép bạn lưu trữ các tài liệu cảm biến đa dạng mà không cần schema cố định, trong khi nền tảng xử lý sao chép, sao lưu và giám sát.

  1. Từ bảng điều khiển Linux-Console.net, điều hướng đến Cơ sở dữ liệu

  2. Nhấp vào Tạo cụm cơ sở dữ liệu

  3. Cấu hình cụm MongoDB của bạn cho tự động hóa IoT:

    • Động cơ cơ sở dữ liệu: Chọn MongoDB
    • Phiên bản: Chọn phiên bản ổn định mới nhất
    • Khu vực trung tâm dữ liệu: Chọn Frankfurt (giống VPC của bạn)
    • Mạng VPC: Chọn coreflux-integrations-vpc mà bạn đã tạo
    • Tên cụm cơ sở dữ liệu: mongodb-coreflux-test
    • Dự án: Chọn dự án mục tiêu của bạn
  4. Chọn gói của bạn dựa trên IoT mà bạn cần:

    • Để phát triển: gói Cơ bản với 1 GB RAM
    • Đối với sản xuất: Đa năng hoặc cao hơn cho lưu trữ có thể mở rộng
  5. Nhấp vào Tạo cụm cơ sở dữ liệu

Quá trình tạo cơ sở dữ liệu được quản lý thường mất từ 1-5 phút. Khi hoàn tất, bạn sẽ được chuyển hướng đến trang tổng quan cơ sở dữ liệu, nơi bạn có thể xem chi tiết kết nối và thực hiện các hành động quản trị.

Cấu hình truy cập cơ sở dữ liệu MongoDB cho tích hợp MQTT Broker

Bạn sẽ được hướng dẫn với các bước Bắt đầu, nơi hiển thị chi tiết kết nối của bạn và bạn có thể cấu hình các quy tắc truy cập đến (khuyến nghị giới hạn chỉ cho IP và VPC của bạn).

  1. Nhấp vào Bắt đầu để cấu hình cơ sở dữ liệu MongoDB của bạn
  2. [Tùy chọn] Hạn chế kết nối đến:

    • Thêm địa chỉ IP của máy tính cục bộ để truy cập quản lý
    • Giọt nước sẽ tự động được phép qua mạng VPC

Để biết chi tiết kết nối, bạn sẽ thấy hai tùy chọn: Mạng Công cộng và Mạng VPC. Tùy chọn đầu tiên dùng để truy cập từ bên ngoài cho các công cụ như MongoDB Compass, trong khi tùy chọn thứ hai sẽ được dịch vụ Coreflux sử dụng để truy cập cơ sở dữ liệu.

  1. Ghi chú các chi tiết kết nối được cung cấp, cả cho truy cập công cộng và truy cập VPC (chi tiết riêng cho từng loại):

    • Máy chủ: Tên máy chủ cơ sở dữ liệu của bạn
    • Người dùng: Người dùng quản trị mặc định
    • Mật khẩu: Mật khẩu bảo mật được tạo tự động
    • Cơ sở dữ liệu: Tên cơ sở dữ liệu xác thực

Kiểm tra kết nối cơ sở dữ liệu MongoDB

Bạn có thể kiểm tra kết nối MongoDB bằng MongoDB Compass hoặc chuỗi kết nối được cung cấp, sử dụng thông tin đăng nhập truy cập công khai:

mongodb://username:password@mongodb-host:27017/defaultauthdb?ssl=true

Tạo Cơ sở Dữ liệu và Người dùng Ứng dụng MongoDB (Tùy chọn)

Để bảo mật và tổ chức tốt hơn, hãy tạo một người dùng và cơ sở dữ liệu riêng cho ứng dụng tự động hóa IoT của bạn. Việc này cũng có thể thực hiện thông qua MongoDB Compass hoặc CLI, nhưng Linux-Console.net cung cấp một cách tiếp cận thân thiện với người dùng:

  1. Đi tới tab Người dùng & Cơ sở dữ liệu trong cụm cơ sở dữ liệu đã quản lý của bạn
  2. Tạo Người Dùng:

    • Tên người dùng: coreflux-broker-client
    • Mật khẩu: Tự động tạo
  3. Tạo cơ sở dữ liệu:

    • Tên cơ sở dữ liệu: coreflux-broker-data

Thiết lập cơ sở dữ liệu OpenSearch được quản lý

Managed OpenSearch trên Linux-Console.net được thiết kế cho tìm kiếm, phân tích nhật ký và bảng điều khiển dữ liệu theo thời gian trên dữ liệu IoT có khối lượng lớn, với dịch vụ quản lý sức khỏe cụm, mở rộng và lưu trữ chỉ mục cho bạn.

  1. Từ bảng điều khiển Linux-Console.net, điều hướng đến Cơ sở dữ liệu

  2. Nhấp vào Tạo cụm cơ sở dữ liệu

  3. Cấu hình cụm OpenSearch của bạn cho Tự động hóa IoT:

    • Động cơ cơ sở dữ liệu: Chọn OpenSearch
    • Phiên bản: Chọn phiên bản ổn định mới nhất
    • Khu vực trung tâm dữ liệu: Chọn Frankfurt (giống VPC của bạn)
    • Mạng VPC: Chọn coreflux-integrations-vpc mà bạn đã tạo
    • Tên cụm cơ sở dữ liệu: opensearch-coreflux-test
    • Dự án: Chọn dự án mục tiêu của bạn
  4. Chọn gói của bạn dựa trên IoT mà bạn cần:

    1. Để phát triển: gói Cơ bản với 1 GB RAM
    2. Đối với sản xuất: Đa năng hoặc cao hơn cho lưu trữ có thể mở rộng
  5. Nhấp vào Tạo cụm cơ sở dữ liệu

Quá trình tạo cơ sở dữ liệu được quản lý thường mất từ 1-5 phút. Khi hoàn tất, bạn sẽ được chuyển hướng đến trang tổng quan cơ sở dữ liệu, nơi bạn có thể xem chi tiết kết nối và thực hiện các hành động quản trị.

Cấu hình truy cập cơ sở dữ liệu OpenSearch cho tích hợp MQTT Broker

Bạn sẽ được hướng dẫn với các bước Bắt đầu, nơi hiển thị chi tiết kết nối của bạn và bạn có thể cấu hình các quy tắc truy cập đến (khuyến nghị giới hạn chỉ cho IP và VPC của bạn).

  1. Nhấn Bắt đầu để cấu hình cơ sở dữ liệu OpenSearch của bạn
  2. [Tùy chọn] Hạn chế kết nối đến:

    • Thêm địa chỉ IP của máy tính cục bộ để truy cập quản lý
    • Giọt nước sẽ được tự động cho phép qua mạng VPC

Đối với chi tiết kết nối, bạn sẽ thấy hai tùy chọn: Mạng Công cộng và Mạng VPC. Tùy chọn đầu tiên dành cho truy cập bên ngoài cho các công cụ, trong khi tùy chọn thứ hai sẽ được dịch vụ Coreflux sử dụng để truy cập cơ sở dữ liệu. Bạn cũng sẽ thấy URL và các tham số để truy cập OpenSearch Dashboards.

  1. Ghi chú các chi tiết kết nối được cung cấp, cả đối với truy cập công khai và truy cập VPC (chi tiết riêng cho từng loại):

    • Máy chủ: Tên máy chủ cơ sở dữ liệu của bạn
    • Người dùng: Người dùng quản trị mặc định
    • Mật khẩu: Mật khẩu an toàn được tạo tự động
    • Cơ sở dữ liệu: Tên cơ sở dữ liệu xác thực

Kiểm tra kết nối cơ sở dữ liệu OpenSearch

Bạn có thể kiểm tra kết nối OpenSearch bằng OpenSearch Dashboards với thông tin đăng nhập được cung cấp:

Bước 3 — Triển khai Coreflux MQTT Broker trên Droplet Linux-Console.net

Tạo Droplet Linux-Console.net

  1. Đi tới Droplets trong bảng điều khiển Linux-Console.net của bạn
  2. Nhấp vào Tạo Droplet

  1. Cấu hình droplet của bạn để triển khai MQTT broker:

    • Chọn Khu Vực: Frankfurt (giống như cơ sở dữ liệu được quản lý của bạn)
    • Mạng VPC: Chọn coreflux-integrations-vpc
    • Chọn một hình ảnh: Vào tab Marketplace
    • Tìm kiếm “Coreflux” và chọn Coreflux từ Marketplace

  1. Chọn kích thước cho khối lượng công việc IoT của bạn:

    • Để phát triển: gói Cơ bản với 2 GB bộ nhớ
    • Đối với sản xuất: gói Cơ bản hoặc Mục đích chung với bộ nhớ từ 4 GB trở lên cho hiệu suất linh hoạt
  2. Chọn Phương Thức Xác Thực:

    • Khóa SSH: Được khuyên dùng để tăng cường bảo mật

      1. Một khóa có thể được tạo cục bộ bằng cách sử dụng ssh-keygen
    • Mật khẩu: Lựa chọn thay thế
  3. Hoàn tất chi tiết:

    • Tên máy chủ: coreflux-test-broker
    • Dự án: Chọn dự án của bạn
    • Thẻ: Thêm các thẻ liên quan cho tổ chức DevOps
  4. Nhấp Tạo Droplet

  5. Xem Trang chủ Droplet và chờ cho nó hoàn tất việc triển khai

Phương án khác - Cài đặt Coreflux MQTT Broker với Docker trên Droplet Docker Image

Sử dụng cùng phương pháp như với Coreflux Droplet, chọn Docker làm hình ảnh Marketplace.

Khi droplet của bạn đã chạy, hãy kết nối với nó qua SSH bằng phương thức xác thực đã định hoặc bảng điều khiển web có sẵn trên trang chủ Droplet:

ssh root@your-droplet-ip

Chạy Coreflux MQTT broker bằng Docker:

docker run -d \
  --name coreflux \
  -p 1883:1883 \
  -p 1884:1884 \
  -p 5000:5000 \
  -p 443:443 \
  coreflux/coreflux-mqtt-broker-t:1.6.3

Lệnh Docker này:

  • Chạy container ở chế độ tách biệt (-d)
  • Đặt tên cho thùng chứa là coreflux
  • Mở các cổng cần thiết cho MQTT và giao diện web
  • Sử dụng hình ảnh Coreflux mới nhất

Xác minh MQTT broker đang chạy:

docker ps

Bạn nên thấy một container đang chạy:

Xác thực việc triển khai MQTT Broker bằng cách kết nối với nó sử dụng các giá trị mặc định

Bạn có thể truy cập broker MQTT thông qua một client MQTT như MQTT Explorer để xác thực quyền truy cập vào broker, bất kể phương pháp triển khai nào được sử dụng.

Bước 4 — Cấu hình Quy tắc Tường lửa cho Giao tiếp IoT An toàn (Tùy chọn)

Đối với triển khai tự động hóa IoT trong sản xuất, hãy cấu hình các quy tắc tường lửa để giới hạn quyền truy cập:

  1. Đi tới Mạng → tường lửa

  2. Nhấn Tạo Tường Lửa

  3. Cấu hình các quy tắc đầu vào cho bộ điều khiển MQTT để bảo mật:

    • SSH: Cổng 22 từ địa chỉ IP của bạn
    • MQTT: Cổng 1883 từ các nguồn ứng dụng IoT của bạn
    • MQTT với TLS: Cổng 1884 cho MQTT với TLS bảo mật
    • WebSocket: Cổng 5000 cho MQTT qua WebSocket
    • WebSocket với TLS: Cổng 443 cho MQTT qua WebSocket với TLS
  4. Áp dụng tường lửa cho droplet của bạn

Để cấu hình tường lửa chi tiết, hãy tham khảo hướng dẫn khởi động nhanh tường lửa của Linux-Console.net. Mẹo sản xuất: Chỉ giới hạn cổng MQTT 1883 cho các địa chỉ IP nguồn hoặc phạm vi VPC cụ thể, và ưu tiên cổng 1884 (MQTT với TLS) cho kết nối thiết bị bên ngoài. Hãy cân nhắc sử dụng Nền tảng Ứng dụng Linux-Console.net với mạng riêng nếu bạn cần các lớp bảo mật bổ sung.

Bước 5 — Thiết lập tích hợp dữ liệu IoT với Ngôn ngữ Vật kết của Coreflux

Cài đặt Tiện ích Mở rộng Sổ tay LoT

Tiện ích mở rộng LoT (Language of Things) Notebook cho Visual Studio Code cung cấp một môi trường phát triển low code tích hợp cho lập trình MQTT broker và tự động hóa IoT. Tìm hiểu thêm về Language of Things (LoT) của Coreflux cho tự động hóa IoT low-code.

  1. Mở Visual Studio Code
  2. Đi tới Tiện ích mở rộng (Ctrl+Shift+X)
  3. Tìm kiếm “LoT Notebooks”
  4. Cài đặt Tiện ích Mở rộng LoT VSCode Notebooks bởi Coreflux

Kết nối với MQTT Broker của bạn

Cấu hình kết nối tới máy chủ Coreflux MQTT của bạn, sử dụng thông tin đăng nhập mặc định, khi được yêu cầu trên thanh trên cùng hoặc bằng cách nhấp vào nút MQTT trên thanh dưới bên trái:

  • Người dùng: root
  • Mật khẩu: coreflux

Giả sử không có lỗi, bạn sẽ thấy trạng thái kết nối MQTT với broker ở thanh trạng thái phía dưới, bên trái.

Bước 6 — Tạo dữ liệu trong MQTT Broker thông qua Actions

Đối với trường hợp sử dụng này, chúng ta sẽ xây dựng một tích hợp dữ liệu thô, thông qua một pipeline chuyển đổi, vào cơ sở dữ liệu. Tuy nhiên, vì chúng ta không kết nối với bất kỳ thiết bị MQTT nào trong bản demo, chúng ta sẽ tận dụng các khả năng của LoT và sử dụng một Hành động để mô phỏng dữ liệu thiết bị.

Trong LoT, một Hành động là logic có thể thực thi được, được kích hoạt bởi các sự kiện cụ thể như khoảng thời gian định sẵn, cập nhật chủ đề hoặc các lời gọi rõ ràng từ các hành động khác hoặc các thành phần của hệ thống. Hành động cho phép tương tác động với các chủ đề MQTT, các biến nội bộ và payload, tạo điều kiện cho các quy trình tự động hóa IoT phức tạp.

Do đó, chúng ta có thể sử dụng một Hành động tạo ra dữ liệu về các chủ đề nhất định trong một khoảng thời gian xác định, sau đó dữ liệu này có thể được sử dụng bởi phần còn lại của quy trình mà chúng ta sẽ định nghĩa bên dưới.

Bạn có thể tải kho lưu trữ GitHub cùng với dự án mẫu.

Tạo Dữ Liệu IoT Mô Phỏng

Tạo một Hành động để tạo dữ liệu cảm biến mô phỏng bằng giao diện LoT (Ngôn ngữ Vạn vật) low code:

DEFINE ACTION RANDOMIZEMachineData
ON EVERY 10 SECONDS DO
    PUBLISH TOPIC "raw_data/machine1" WITH RANDOM BETWEEN 0 AND 10
    PUBLISH TOPIC "raw_data/station2" WITH RANDOM BETWEEN 0 AND 60

Trong sổ tay được cung cấp, bạn cũng có một Hành động thực hiện bộ đếm tăng dần để mô phỏng dữ liệu, như một phương án thay thế cho Hành động được cung cấp.

Khi bạn chạy Hành động này, nó sẽ:

  • Triển khai tự động đến MQTT broker
  • Tạo dữ liệu cảm biến IoT mô phỏng mỗi 10 giây
  • Xuất bản dữ liệu thời gian thực tới các chủ đề MQTT cụ thể
  • Hiển thị trạng thái đồng bộ trong giao diện LoT Notebook

    • Trạng thái này cho biết liệu mã trên Sổ tay LoT có khác với mã đang chạy trong broker hay không, hoặc nếu mã hoàn toàn bị thiếu

Bước 7 — Tạo mô hình chuyển đổi dữ liệu cho xử lý theo thời gian thực

Định nghĩa Mô hình Dữ liệu với Ngôn ngữ của Vạn vật

Mô hình trong Coreflux được sử dụng để biến đổi, tổng hợp và tính toán các giá trị từ các chủ đề MQTT đầu vào, đồng thời xuất kết quả lên các chủ đề mới. Chúng là nền tảng cho việc tạo ra UNS - Không gian tên thống nhất - của hệ thống của bạn, áp dụng cho nhiều nguồn dữ liệu khác nhau của bạn.

Theo cách này, một Mô hình cho phép bạn định nghĩa cách dữ liệu thô IoT nên được cấu trúc và biến đổi, cả đối với một thiết bị duy nhất hoặc nhiều thiết bị cùng lúc (thông qua việc sử dụng ký tự đại diện +). Một mô hình cũng đóng vai trò là lược đồ dữ liệu chính được sử dụng cho lưu trữ có thể mở rộng vào cơ sở dữ liệu được quản lý.

DEFINE MODEL MachineData WITH TOPIC "Simulator/Machine/+/Data"

    ADD "energy" WITH TOPIC "raw_data/+" AS TRIGGER

    ADD "energy_wh" WITH (energy * 1000)

    ADD "production_status" WITH (IF energy > 5 THEN "active" ELSE "inactive")

    ADD "production_count" WITH (IF production_status EQUALS "active" THEN (production_count + 1) ELSE 0)

    ADD "stoppage" WITH (IF production_status EQUALS "inactive" THEN 1 ELSE 0)

    ADD "maintenance_alert" WITH (IF energy > 50 THEN TRUE ELSE FALSE)

    ADD "timestamp" WITH TIMESTAMP "UTC"

Mô hình thấp mã này:

  • Sử dụng ký tự đại diện + để áp dụng cho tất cả máy tự động
  • Chuyển đổi năng lượng sang watt-giờ (energy_wh) bằng cách nhân với 1000
  • Xác định trạng thái sản xuất dựa trên ngưỡng năng lượng
  • Theo dõi số lượng sản xuất và các sự kiện dừng máy
  • Thêm dấu thời gian vào tất cả các điểm dữ liệu thời gian thực
  • Trích xuất ID máy từ cấu trúc chủ đề
  • Xuất bản dữ liệu có cấu trúc lên các chủ đề Simulator/Machine/Data (thay thế dấu + bằng mỗi chủ đề phù hợp với định dạng của dữ liệu nguồn/kích hoạt)

Khi chúng ta tạo ra hai cảm biến/máy móc mô phỏng với Action, chúng ta có thể thấy cấu trúc Mô hình được áp dụng tự động cho cả hai, tạo ra cả một đối tượng json và các chủ đề riêng lẻ.

Bước 8 — Thiết lập tích hợp cơ sở dữ liệu cho lưu trữ có thể mở rộng

Chọn phần tích hợp cơ sở dữ liệu phù hợp với cơ sở dữ liệu bạn đã chọn ở Bước 2.

Tích hợp PostgreSQL

Trong phần này, bạn sẽ học cách lưu trữ dữ liệu IoT đã xử lý của mình trong một cơ sở dữ liệu PostgreSQL được quản lý trên Linux-Console.net.

Để lưu trữ dữ liệu IoT đã xử lý của bạn trong cơ sở dữ liệu được quản lý PostgreSQL, bạn sẽ định nghĩa một Route trong Coreflux. Routes chỉ định cách dữ liệu được gửi từ MQTT broker của bạn đến cụm PostgreSQL bằng một cấu hình đơn giản, ít mã:

DEFINE ROUTE PostgreSQL_Log WITH TYPE POSTGRESQL

    ADD SQL_CONFIG

        WITH SERVER "db-postgresql.db.onmyserver.com"

        WITH PORT 25060

        WITH DATABASE "defaultdb"

        WITH USERNAME "doadmin"

        WITH PASSWORD "AVNS_pass"

        WITH USE_SSL TRUE

        WITH TRUST_SERVER_CERTIFICATE FALSE

Thay thế bằng thông tin kết nối PostgreSQL của bạn từ Linux-Console.net và chạy Route trong Sổ tay LoT của bạn. Quan trọng: Sử dụng thông tin kết nối VPC (không phải công khai) để bảo mật tốt hơn và giảm độ trễ. Tên máy chủ và cổng VPC khác với chuỗi kết nối công khai — kiểm tra trang chi tiết kết nối của cụm cơ sở dữ liệu của bạn để xem cả hai tùy chọn.

Cập nhật mô hình cho bộ nhớ cơ sở dữ liệu PostgreSQL

Chỉnh sửa mô hình LoT của bạn để sử dụng tuyến cơ sở dữ liệu cho lưu trữ mở rộng, bằng cách thêm điều này vào cuối Mô hình:

STORE IN "PostgreSQL_Log"

    WITH TABLE "MachineProductionData"

Ngoài ra, thêm một tham số với chủ đề, để có một định danh duy nhất cho mỗi mục trong cơ sở dữ liệu được quản lý của bạn.

DEFINE MODEL MachineData WITH TOPIC "Simulator/Machine/+/Data"

    ADD "energy" WITH TOPIC "raw_data/+" AS TRIGGER

    ADD "device_name" WITH REPLACE "+" WITH TOPIC POSITION 2 IN "+"

    ADD "energy_wh" WITH (energy * 1000)

    ADD "production_status" WITH (IF energy > 5 THEN "active" ELSE "inactive")

    ADD "production_count" WITH (IF production_status EQUALS "active" THEN (production_count + 1) ELSE 0)

    ADD "stoppage" WITH (IF production_status EQUALS "inactive" THEN 1 ELSE 0)

    ADD "maintenance_alert" WITH (IF energy > 50 THEN TRUE ELSE FALSE)

    ADD "timestamp" WITH TIMESTAMP "UTC"

    STORE IN "PostgreSQL_Log"

        WITH TABLE "MachineProductionData"

Sau khi bạn triển khai hành động cập nhật này, tất cả dữ liệu sẽ tự động được lưu vào cơ sở dữ liệu khi có thay đổi.

Tích hợp MySQL

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ được sử dụng rộng rãi, làm cho nó trở thành lựa chọn tuyệt vời để lưu trữ và phân tích dữ liệu IoT ở quy mô lớn. Trong phần này, bạn sẽ tìm hiểu cách kết nối broker Coreflux MQTT của mình với cơ sở dữ liệu MySQL được quản lý trên Linux-Console.net, để dữ liệu thiết bị thời gian thực của bạn được lưu trữ một cách an toàn và đáng tin cậy cho mục đích phân tích, báo cáo hoặc tích hợp với các ứng dụng khác.

Để kích hoạt tích hợp này, bạn phải xác định một Route trong LoT (Language of Things) của Coreflux, hướng dẫn nơi và cách dữ liệu đã xử lý sẽ được gửi đi. Dưới đây là định dạng low-code cần thiết để định tuyến dữ liệu đến cơ sở dữ liệu MySQL. Hãy đảm bảo thay thế bằng thông tin kết nối của riêng bạn khi cần thiết:

DEFINE ROUTE MySQL_Log WITH TYPE MYSQL
    ADD SQL_CONFIG
        WITH SERVER "db-mysql.db.onmyserver.com"
        WITH PORT 25060
        WITH DATABASE "defaultdb"
        WITH USERNAME "doadmin"
        WITH PASSWORD "AVNS_pass"
        WITH USE_SSL TRUE
        WITH TRUST_SERVER_CERTIFICATE FALSE

Thay thế bằng chi tiết kết nối MySQL của bạn từ Linux-Console.net và chạy Route trong Notebook LoT của bạn. Quan trọng: Sử dụng chi tiết kết nối VPC (không phải công khai) để bảo mật tốt hơn và giảm độ trễ. Nếu bạn gặp sự cố kết nối, hãy kiểm tra xem TRUST_SERVER_CERTIFICATE đã được thiết lập đúng cho phiên bản MySQL của bạn chưa — một số phiên bản yêu cầu TRUE, trong khi các phiên bản khác hoạt động với FALSE.

Cập nhật mô hình cho bộ nhớ cơ sở dữ liệu MySQL

Chỉnh sửa mô hình LoT của bạn để sử dụng tuyến cơ sở dữ liệu cho lưu trữ mở rộng, bằng cách thêm điều này vào cuối Mô hình:

STORE IN "MySQL_Log"
    WITH TABLE "MachineProductionData"

Ngoài ra, thêm một tham số với chủ đề, để có một định danh duy nhất cho mỗi mục trong cơ sở dữ liệu được quản lý của bạn.

DEFINE MODEL MachineData WITH TOPIC "Simulator/Machine/+/Data"
    ADD "energy" WITH TOPIC "raw_data/+" AS TRIGGER
    ADD "device_name" WITH REPLACE "+" WITH TOPIC POSITION 2 IN "+"
    ADD "energy_wh" WITH (energy * 1000)
    ADD "production_status" WITH (IF energy > 5 THEN "active" ELSE "inactive")
    ADD "production_count" WITH (IF production_status EQUALS "active" THEN (production_count + 1) ELSE 0)
    ADD "stoppage" WITH (IF production_status EQUALS "inactive" THEN 1 ELSE 0)
    ADD "maintenance_alert" WITH (IF energy > 50 THEN TRUE ELSE FALSE)
    ADD "timestamp" WITH TIMESTAMP "UTC"
    STORE IN "MySQL_Log"
        WITH TABLE "MachineProductionData"

Sau khi bạn triển khai hành động cập nhật này, tất cả dữ liệu sẽ tự động được lưu vào cơ sở dữ liệu khi có thay đổi.

Tích hợp MongoDB

MongoDB là một cơ sở dữ liệu NoSQL rất phù hợp để lưu trữ và truy vấn dữ liệu IoT với các sơ đồ linh hoạt. Trong phần này, bạn sẽ học cách kết nối trung gian MQTT Coreflux của mình với cơ sở dữ liệu MongoDB được quản lý trên Linux-Console.net, để dữ liệu thiết bị thời gian thực của bạn được lưu trữ một cách an toàn và đáng tin cậy cho phân tích, báo cáo hoặc tích hợp với các ứng dụng khác.

Để kích hoạt tích hợp này, bạn phải xác định một Route trong LoT (Language of Things) của Coreflux, hướng dẫn nơi và cách dữ liệu đã xử lý sẽ được gửi. Dưới đây là định dạng low-code cần thiết để định tuyến dữ liệu tới cơ sở dữ liệu MongoDB. Hãy chắc chắn thay thế bằng thông tin kết nối của riêng bạn khi cần thiết:

DEFINE ROUTE mongo_route WITH TYPE MONGODB
    ADD MONGODB_CONFIG
        WITH CONNECTION_STRING "mongodb+srv://<username>:<password>@<cluster-uri>/<database>?tls=true&authSource=admin&replicaSet=<replica-set>"
        WITH DATABASE "admin"

Thay thế bằng chi tiết kết nối MongoDB của bạn từ Linux-Console.net và chạy Route trong Sổ tay LoT của bạn. Quan trọng: Sử dụng định dạng chuỗi kết nối VPC khi có sẵn. Chuỗi kết nối nên bao gồm các tham số tls=true và authSource=admin. Để khắc phục sự cố kết nối MongoDB, hãy xem hướng dẫn của chúng tôi về cách kết nối đến MongoDB.

Cập nhật mô hình cho bộ nhớ cơ sở dữ liệu MongoDB

Chỉnh sửa mô hình LoT của bạn để sử dụng tuyến cơ sở dữ liệu cho lưu trữ mở rộng, bằng cách thêm điều này vào cuối Mô hình:

STORE IN "mongo_route"
    WITH TABLE "MachineProductionData"

Ngoài ra, thêm một tham số với chủ đề, để có một định danh duy nhất cho mỗi mục trong cơ sở dữ liệu được quản lý của bạn.

DEFINE MODEL MachineData WITH TOPIC "Simulator/Machine/+/Data"
    ADD "energy" WITH TOPIC "raw_data/+" AS TRIGGER
    ADD "device_name" WITH REPLACE "+" WITH TOPIC POSITION 2 IN "+"
    ADD "energy_wh" WITH (energy * 1000)
    ADD "production_status" WITH (IF energy > 5 THEN "active" ELSE "inactive")
    ADD "production_count" WITH (IF production_status EQUALS "active" THEN (production_count + 1) ELSE 0)
    ADD "stoppage" WITH (IF production_status EQUALS "inactive" THEN 1 ELSE 0)
    ADD "maintenance_alert" WITH (IF energy > 50 THEN TRUE ELSE FALSE)
    ADD "timestamp" WITH TIMESTAMP "UTC"
    STORE IN "mongo_route"
        WITH TABLE "MachineProductionData"

Sau khi bạn triển khai hành động cập nhật này, tất cả dữ liệu sẽ tự động được lưu vào cơ sở dữ liệu khi có thay đổi.

Tích hợp OpenSearch

OpenSearch là một công cụ tìm kiếm và phân tích phân tán được thiết kế cho xử lý dữ liệu quy mô lớn và phân tích theo thời gian thực. Trong phần này, bạn sẽ học cách kết nối broker Coreflux MQTT của mình với cơ sở dữ liệu OpenSearch được quản lý trên Linux-Console.net, để dữ liệu thiết bị theo thời gian thực của bạn được lưu trữ một cách an toàn và đáng tin cậy cho việc phân tích, báo cáo hoặc tích hợp với các ứng dụng khác.

Để kích hoạt tích hợp này, bạn phải xác định một Route trong LoT (Language of Things) của Coreflux, hướng dẫn nơi và cách dữ liệu đã xử lý sẽ được gửi. Dưới đây là định dạng low-code cần thiết để định tuyến dữ liệu tới cơ sở dữ liệu OpenSearch. Hãy chắc chắn thay thế bằng thông tin kết nối của riêng bạn khi cần thiết:

DEFINE ROUTE OpenSearch_log WITH TYPE OPENSEARCH
    ADD OPENSEARCH_CONFIG
        WITH BASE_URL "https://my-opensearch-cluster:9200"
        WITH USERNAME "myuser"
        WITH PASSWORD "mypassword"
        WITH USE_SSL TRUE
        WITH IGNORE_CERT_ERRORS FALSE

Thay thế bằng thông tin kết nối OpenSearch của bạn từ Linux-Console.net và chạy Route trong LoT Notebook của bạn. Quan trọng: Sử dụng URL cơ sở VPC (không phải công khai) khi có sẵn. Định dạng URL cơ sở thường là https://ten-may-chu-cua-ban:9200. Để truy cập OpenSearch Dashboards, hãy sử dụng URL Dashboards riêng được cung cấp trong chi tiết cụm cơ sở dữ liệu của bạn. Xem hướng dẫn nhanh OpenSearch của chúng tôi để biết thêm chi tiết.

Cập nhật mô hình cho bộ nhớ cơ sở dữ liệu OpenSearch

Chỉnh sửa mô hình LoT của bạn để sử dụng tuyến cơ sở dữ liệu cho lưu trữ mở rộng, bằng cách thêm điều này vào cuối Mô hình:

STORE IN "OpenSearch_Log"
    WITH TABLE "MachineProductionData"

Ngoài ra, thêm một tham số với chủ đề, để có một định danh duy nhất cho mỗi mục trong cơ sở dữ liệu quản lý của bạn.

DEFINE MODEL MachineData WITH TOPIC "Simulator/Machine/+/Data"
    ADD "energy" WITH TOPIC "raw_data/+" AS TRIGGER
    ADD "device_name" WITH REPLACE "+" WITH TOPIC POSITION 2 IN "+"
    ADD "energy_wh" WITH (energy * 1000)
    ADD "production_status" WITH (IF energy > 5 THEN "active" ELSE "inactive")
    ADD "production_count" WITH (IF production_status EQUALS "active" THEN (production_count + 1) ELSE 0)
    ADD "stoppage" WITH (IF production_status EQUALS "inactive" THEN 1 ELSE 0)
    ADD "maintenance_alert" WITH (IF energy > 50 THEN TRUE ELSE FALSE)
    ADD "timestamp" WITH TIMESTAMP "UTC"
    STORE IN "OpenSearch_Log"
        WITH TABLE "MachineProductionData"

Sau khi bạn triển khai hành động cập nhật này, tất cả dữ liệu sẽ tự động được lưu vào cơ sở dữ liệu khi có thay đổi.

Bước 9 — Xác minh toàn bộ quy trình tự động hóa IoT

Giám sát Dòng Dữ liệu Thời gian Thực

  1. MQTT Explorer: Sử dụng một MQTT client để xác minh dữ liệu thời gian thực được xuất bản
  2. Trình Khách Hàng Cơ Sở Dữ Liệu: Kết nối để xác minh lưu trữ dữ liệu (DBeaver cho PostgreSQL, MongoDB Compass cho MongoDB, hoặc OpenSearch Dashboards cho OpenSearch)

Xác minh bộ nhớ của PostgreSQL

Kết nối với cơ sở dữ liệu được quản lý PostgreSQL của bạn bằng DBeaver để xác minh bộ nhớ có thể mở rộng:

  1. Sử dụng chuỗi kết nối từ cơ sở dữ liệu Linux-Console.net của bạn
  2. Đi đến cơ sở dữ liệu coreflux-broker-data (hoặc tên bạn đã đặt cho cơ sở dữ liệu)
  3. Kiểm tra bảng MachineProductionData để tìm các bản ghi đã lưu

Như chúng ta đã thấy trước đây, tất cả dữ liệu đều có sẵn trong MQTT Broker để sử dụng và tích hợp cho các mục đích khác.

Xác minh bộ nhớ MongoDB

Kết nối với cơ sở dữ liệu được quản lý MongoDB của bạn bằng MongoDB Compass để xác minh bộ nhớ có thể mở rộng:

  1. Sử dụng chuỗi kết nối từ cơ sở dữ liệu Linux-Console.net của bạn
  2. Đi đến cơ sở dữ liệu coreflux-broker-data (hoặc tên bạn đã đặt cho cơ sở dữ liệu)
  3. Kiểm tra bộ sưu tập MachineProductionData để xem các tài liệu đã lưu

Bạn nên xem các tài liệu dữ liệu thời gian thực với cấu trúc tương tự:

{
  "_id": {
    "$oid": "68626dc3e8385cbe9a1666c3"
  },
  "energy": 36,
  "energy_wh": 36000,
  "production_status": "active",
  "production_count": 31,
  "stoppage": 0,
  "maintenance_alert": false,
  "timestamp": "2025-06-30 10:58:11",
  "device_name": "station2"
}

Như chúng ta đã thấy trước đây, tất cả dữ liệu đều có sẵn trong MQTT Broker để sử dụng và tích hợp cho các mục đích khác.

Xác minh bộ nhớ MySQL

Kết nối với cơ sở dữ liệu được quản lý MySQL của bạn bằng DBeaver để xác minh bộ nhớ có thể mở rộng:

  1. Sử dụng chuỗi kết nối từ cơ sở dữ liệu Linux-Console.net của bạn
  2. Điều hướng đến cơ sở dữ liệu coreflux-broker-data (hoặc tên bạn đã đặt cho cơ sở dữ liệu)
  3. Kiểm tra bảng MachineProductionData để xem các bản ghi đã lưu

Như với các tích hợp khác, tất cả dữ liệu cũng có sẵn trong MQTT Broker cho các mục đích sử dụng khác và các tích hợp tiếp theo.

Xác minh bộ nhớ OpenSearch

Mở OpenSearch Dashboards bằng URL và thông tin đăng nhập được cung cấp:

  1. Mở Menu và chọn tùy chọn Quản lý Chỉ mục

    1. Chọn tùy chọn Chỉ mục trong Menu và xem tên bảng của bạn có xuất hiện trong danh sách không

  1. Quay lại trang chính và chọn tùy chọn Khám phá trong Menu

    1. Tạo một Mẫu Chỉ mục theo các bước mà nó cung cấp
    2. Quay lại trang Khám phá và bạn sẽ thấy dữ liệu của mình

Như chúng ta đã thấy trước đây, tất cả dữ liệu đều có sẵn trong MQTT Broker để sử dụng và tích hợp cho các mục đích khác.

Bước 10 - Mở rộng trường hợp sử dụng và tích hợp của bạn

Kiểm tra khả năng LoT

  • Xuất bản Dữ liệu Mẫu: Sử dụng MQTT Explorer để xuất bản các bộ dữ liệu mẫu lên máy chủ Coreflux của bạn. Thử nghiệm với các cấu trúc payload khác nhau và các Mô hình/Hành động khác nhau để xem cách chúng được xử lý và lưu trữ trong cơ sở dữ liệu bạn đã chọn.
  • Xác thực dữ liệu: Xác minh rằng dữ liệu trong cơ sở dữ liệu của bạn khớp với các payload mà bạn đã xuất bản. Kiểm tra tính nhất quán và độ chính xác bằng cách sử dụng client cơ sở dữ liệu của bạn (DBeaver cho PostgreSQL, MongoDB Compass cho MongoDB, hoặc OpenSearch Dashboards cho OpenSearch), đảm bảo rằng tích hợp tự động hóa IoT của bạn hoạt động đúng như mong đợi. So sánh các dấu thời gian, chuyển đổi trường và kiểu dữ liệu để xác thực dữ liệu thời gian thực của bạn.
  • Giám sát theo thời gian thực: Thiết lập một nguồn dữ liệu thời gian thực liên tục bằng cách sử dụng một nguồn dữ liệu MQTT khác, chẳng hạn như một cảm biến đơn giản có kết nối MQTT. Quan sát cách Coreflux và cơ sở dữ liệu của bạn xử lý các luồng dữ liệu IoT đến và khám phá thời gian phản hồi cho việc truy xuất dữ liệu và truy vấn.

Xây dựng phân tích và trực quan hóa

  • Tạo Bảng Điều Khiển: Tích hợp với các công cụ trực quan hóa như Grafana để tạo bảng điều khiển hiển thị dữ liệu IoT của bạn, lấy từ cả các chủ đề MQTT trực tiếp và các truy vấn cơ sở dữ liệu lịch sử. Theo dõi các chỉ số như thời gian hoạt động của thiết bị, dữ liệu cảm biến, số lượng sản xuất, hoặc cảnh báo bảo trì từ các hệ thống tự động hóa của bạn. Tìm hiểu cách thiết lập giám sát với hướng dẫn của chúng tôi về giám sát các cơ sở dữ liệu do Linux-Console.net quản lý với Prometheus và Grafana. Đối với bảng điều khiển thời gian thực, đăng ký trực tiếp các chủ đề MQTT; đối với các xu hướng và tổng hợp lịch sử, hãy truy vấn cơ sở dữ liệu của bạn.
  • Phân tích xu hướng: Tận dụng khả năng của cơ sở dữ liệu của bạn để phân tích các xu hướng theo thời gian:

    • PostgreSQL: Sử dụng truy vấn SQL để phân tích quan hệ phức tạp
    • MongoDB: Sử dụng khung tổng hợp để phân tích dựa trên tài liệu
    • OpenSearch: Sử dụng phân tích nâng cao và khả năng tìm kiếm để tìm kiếm toàn văn và phân tích chuỗi thời gian
  • Tích hợp đa cơ sở dữ liệu: Khám phá việc tích hợp thêm các cơ sở dữ liệu được quản lý như MongoDB cho dữ liệu phi cấu trúc, PostgreSQL cho dữ liệu quan hệ, MySQL cho các truy vấn có cấu trúc, hoặc OpenSearch cho phân tích nâng cao và khả năng tìm kiếm. Sử dụng các tuyến Coreflux để gửi dữ liệu đến nhiều điểm đến cùng lúc.

Tối ưu hóa và mở rộng hạ tầng IoT của bạn

  • Kiểm thử tải: Mô phỏng lưu lượng cao bằng cách đăng nhiều tin nhắn cùng lúc sử dụng LoT Notebook hoặc các script tự động. Giám sát cách máy chủ MQTT Coreflux và cụm cơ sở dữ liệu của bạn xử lý tải và xác định bất kỳ điểm nghẽn nào trong Pipeline Dữ liệu của bạn.
  • Scaling: Linux-Console.net cung cấp các tùy chọn mở rộng theo chiều dọc và chiều ngang. Tăng tài nguyên droplet (CPU, RAM hoặc lưu trữ) khi nhu cầu dữ liệu IoT của bạn tăng lên. Mở rộng cụm cơ sở dữ liệu được quản lý của bạn để xử lý các bộ dữ liệu lớn hơn và cấu hình cảnh báo tự động khi gần đạt giới hạn tài nguyên.

Câu hỏi thường gặp

1. Làm thế nào để tôi tích hợp Coreflux MQTT broker với một cơ sở dữ liệu được quản lý?

Bạn tích hợp Coreflux MQTT broker với cơ sở dữ liệu được quản lý bằng cách định nghĩa một Route trong LoT trỏ đến dịch vụ mục tiêu của bạn (PostgreSQL, MySQL, MongoDB hoặc OpenSearch). Mỗi route sử dụng các tham số kết nối phù hợp (máy chủ hoặc chuỗi kết nối, cổng, tên cơ sở dữ liệu, tên người dùng, mật khẩu và các tùy chọn SSL/TLS) và tự động lưu trữ payload của tin nhắn MQTT vào các bảng, tập hợp hoặc chỉ mục. Khi route đã được định nghĩa, bạn gắn nó vào một Model với chỉ thị STORE IN để mọi tin nhắn đã xử lý được ghi vào cơ sở dữ liệu mà bạn đã chọn.

2. Tôi có thể lưu dữ liệu MQTT trực tiếp vào cơ sở dữ liệu mà không cần viết mã tích hợp tùy chỉnh không?

Đúng vậy. Coreflux được thiết kế như một lớp tích hợp low-code, vì vậy bạn không cần viết mã ứng dụng hay các công việc ETL bên ngoài để lưu trữ dữ liệu. Đối với từng loại cơ sở dữ liệu, bạn cấu hình một tuyến LoT (ví dụ: PostgreSQL_Log, MySQL_Log, mongo_route, hoặc OpenSearch_Log) và sau đó mở rộng mô hình của bạn với STORE IN "<route_name>" WITH TABLE "MachineProductionData". Coreflux xử lý pooling kết nối, thử lại và xử lý lỗi, vì vậy bạn có thể tập trung vào việc mô hình hóa các chủ đề và chuyển đổi thay vì viết mã cơ sở dữ liệu thông thường.

3. Tôi nên chọn cơ sở dữ liệu được quản lý nào để lưu trữ dữ liệu IoT MQTT?

Cơ sở dữ liệu được quản lý tốt nhất cho dữ liệu MQTT IoT của bạn phụ thuộc vào cấu trúc dữ liệu, nhu cầu truy vấn và mục tiêu phân tích của bạn. Sử dụng bảng so sánh dưới đây để giúp bạn đưa ra quyết định:

Cơ sở dữ liệuTốt nhất choVí dụ về các trường hợp sử dụng
PostgreSQLĐộ nhất quán cao, sơ đồ quan hệ, các truy vấn SQL phức tạpMạng cảm biến công nghiệp, sự kiện giao dịch, phân tích
MySQLDữ liệu quan hệ, truy vấn có cấu trúc, khả năng tương thích rộngHệ thống tồn kho, chỉ số sản xuất, hồ sơ kinh doanh truyền thống
MongoDBLược đồ linh hoạt, có khả năng phát triển; lưu trữ tài liệuCác thiết bị kết nối với khối lượng dữ liệu thay đổi, dữ liệu viễn thám IoT với định dạng thay đổi
OpenSearchTìm kiếm toàn văn, phân tích, bảng điều khiển, lập chỉ mục nhật kýPhân tích dữ liệu theo chuỗi thời gian, giám sát, nhật ký sự kiện, tìm kiếm và trực quan hóa IoT

Mẹo: Bạn có thể sử dụng nhiều cơ sở dữ liệu được quản lý cùng một lúc bằng cách cấu hình nhiều tuyến Coreflux. Điều này cho phép lưu trữ dữ liệu IoT có cấu trúc trong PostgreSQL hoặc MySQL, tổng hợp nhật ký và số liệu trong OpenSearch, và thu thập dữ liệu phi cấu trúc hoặc không theo sơ đồ trong MongoDB, tất cả từ cùng một luồng MQTT.

4. Kiến trúc này xử lý cả phân tích thời gian thực và phân tích lịch sử như thế nào?

Coreflux giữ tất cả các giá trị đã xử lý sẵn sàng trên các chủ đề MQTT để tiêu thụ theo thời gian thực, dashboard hoặc các pipeline bổ sung, trong khi Routes lưu trữ cùng dữ liệu đã được mô hình hóa đó vào cơ sở dữ liệu của bạn để truy vấn lịch sử. Trong thực tế, bạn có thể đăng ký các chủ đề để phản hồi ngay lập tức (cảnh báo, vòng lặp điều khiển) và truy vấn PostgreSQL/MySQL/MongoDB/OpenSearch để lấy tổng hợp, xu hướng và phân tích dài hạn. Thiết kế hai đường dẫn này phản ánh các mô hình phổ biến trong hướng dẫn tích hợp dữ liệu MQTT và IoT, nơi một broker cung cấp nhắn tin trực tiếp và các cơ sở dữ liệu cung cấp lưu trữ bền vững và phân tích.

5. Mức độ bảo mật của kết nối giữa Coreflux và các cơ sở dữ liệu được quản lý như thế nào?

Khi triển khai trên Linux-Console.net, bạn có thể sử dụng mạng VPC để giữ tất cả các liên lạc giữa broker MQTT Coreflux và các cơ sở dữ liệu của bạn ở chế độ riêng tư. VPC cách ly các nguồn lực của bạn khỏi truy cập internet công cộng, và các cơ sở dữ liệu được quản lý bởi Linux-Console.net hỗ trợ mã hóa TLS cho các kết nối. Ngoài ra, bạn có thể tạo các người dùng cơ sở dữ liệu riêng với quyền hạn giới hạn cho ứng dụng Coreflux của mình, theo nguyên tắc quyền hạn tối thiểu.

6. Cài đặt này có phù hợp cho các triển khai IoT trong môi trường sản xuất không?

Vâng. Kiến trúc này phản ánh các mô hình thường được sử dụng trong việc tích hợp MQTT và cơ sở dữ liệu thực tế, nơi một broker điều phối lưu lượng thiết bị và một tầng cơ sở dữ liệu được quản lý cung cấp khả năng bền vững và phân tích. Cơ sở dữ liệu được quản lý của Linux-Console.net cung cấp sao lưu tự động, khả năng sẵn sàng cao và giám sát, trong khi broker Coreflux MQTT có thể mở rộng theo chiều ngang để xử lý lượng thông điệp lớn. Đối với môi trường sản xuất, bạn cũng nên cấu hình các quy tắc tường lửa, sử dụng thông tin xác thực mạnh, bật TLS cho các kết nối MQTT và cơ sở dữ liệu, và định kích thước các droplets và cụm máy chủ dựa trên khối lượng thông điệp dự kiến.

7. Tôi có thể chạy máy chủ MQTT mà không cần truy cập internet công cộng, hoặc trong môi trường kết hợp không?

Đúng. Các broker MQTT thường được triển khai trong các mạng riêng hoặc môi trường biên, và các nguồn công khai luôn ghi nhận rằng MQTT có thể hoạt động mà không cần internet công cộng miễn là các client có thể kết nối đến broker. Với Linux-Console.net, bạn có thể giữ Coreflux và cơ sở dữ liệu của mình bên trong VPC và chỉ phơi bày những gì thật sự cần thiết (ví dụ, VPN, máy chủ bastion, hoặc các quy tắc tường lửa hạn chế). Bạn cũng có thể đồng bộ các chủ đề được chọn với các broker khác hoặc các khu vực đám mây nếu bạn cần kiến trúc lai hoặc nhiều địa điểm.

8. Có bất kỳ hạn chế hoặc sự đánh đổi nào khi sử dụng MQTT với cơ sở dữ liệu cho dữ liệu IoT không?

MQTT được tối ưu hóa cho việc nhắn tin nhẹ và dựa trên sự kiện; các cơ sở dữ liệu được tối ưu hóa cho lưu trữ và truy vấn. Lưu trữ mọi tin nhắn thô có thể trở nên tốn kém hoặc gây rối, vì vậy các thực hành tốt nhất khuyên nên mô hình hóa dữ liệu một cách cẩn thận (ví dụ, tổng hợp số liệu, lọc chủ đề hoặc giảm mẫu). Các thiết bị một công suất rất thấp hoặc mạng bị giới hạn nghiêm ngặt có thể gặp khó khăn với kết nối liên tục hoặc tải TLS, trong trường hợp này bạn có thể cần điều chỉnh mức QoS, gộp lô và chính sách lưu trữ. Miễn là bạn thiết kế mô hình và tuyến đường của mình với những cân nhắc này, MQTT kết hợp với cơ sở dữ liệu được quản lý hoạt động tốt cho hầu hết các kịch bản IoT.

9. Làm thế nào để tôi chọn giữa PostgreSQL, MySQL, MongoDB và OpenSearch cho dự án IoT của mình?

Bạn nên chọn một cơ sở dữ liệu được quản lý dựa trên cấu trúc dữ liệu IoT của bạn, khả năng mở rộng và cách bạn muốn truy vấn dữ liệu thiết bị của mình. Bảng dưới đây tóm tắt những ưu điểm của từng tùy chọn:

Cơ sở dữ liệuTốt nhất khi…Các trường hợp sử dụng điển hìnhĐiểm mạnh chính
PostgreSQLBạn cần các truy vấn quan hệ phức tạp, nhất quán mạnh mẽ và tính toàn vẹn giao dịch (hỗ trợ ACID).Mạng cảm biến công nghiệp, kết hợp dữ liệu thiết bị với sản xuất, cần phân tích trên các bộ dữ liệu đã được ghép nốiCác sơ đồ quan hệ, SQL nâng cao, tính nhất quán
MySQLKhối lượng công việc của bạn được cấu trúc, với nhu cầu công cụ và khả năng tương thích rộng.Theo dõi tồn kho, hệ thống kinh doanh truyền thống, chỉ số sản xuấtNhu cầu quan hệ đơn giản hơn, hỗ trợ rộng rãi
MongoDBDữ liệu và cấu trúc thiết bị của bạn phát triển, hoặc bạn muốn tạo mẫu nhanh với bộ lưu trữ linh hoạt dựa trên tài liệu.Telemetrie IoT với các định dạng biến đổi, phát triển nhanh, dữ liệu bán cấu trúcLược đồ linh hoạt, dễ dàng mở rộng, tạo mẫu nhanh
OpenSearchBạn cần phân tích, tìm kiếm hoặc tạo bảng điều khiển từ khối lượng lớn dữ liệu IoT (nhật ký, chuỗi thời gian, sự kiện).Tìm kiếm dữ liệu cảm biến, phân tích nhật ký, trực quan hóa, truy vấn theo từ khóa/thời gianTìm kiếm, toàn văn, phân tích, tổng hợp nhanh

Kết luận

Việc tích hợp Coreflux MQTT broker với các dịch vụ cơ sở dữ liệu được quản lý của Linux-Console.net (PostgreSQL, MongoDB, MySQL hoặc OpenSearch) mang đến cho bạn một thiết lập hoàn chỉnh cho việc xử lý và lưu trữ dữ liệu IoT theo thời gian thực. Theo hướng dẫn này, bạn đã xây dựng một quy trình tự động hóa thu thập, xử lý và lưu trữ dữ liệu IoT bằng các phương pháp phát triển low-code.

Với kiến trúc của Coreflux và các tính năng lưu trữ của cơ sở dữ liệu mà bạn chọn, bạn có thể xử lý khối lượng lớn dữ liệu thời gian thực và truy vấn để thu thập thông tin chi tiết. Dù bạn đang giám sát các hệ thống công nghiệp, theo dõi cảm biến môi trường hay quản lý cơ sở hạ tầng thành phố thông minh, thiết lập này cho phép bạn đưa ra các quyết định dựa trên dữ liệu từ cả các chủ đề MQTT trực tiếp và các truy vấn cơ sở dữ liệu lịch sử.

Bạn có thể tìm hiểu thêm về các cơ sở dữ liệu được quản lý bởi Linux-Console.net và khám phá các cấu hình Droplet nâng cao trong tài liệu của Linux-Console.net.

Bạn có thể thử các trường hợp sử dụng được cung cấp hoặc triển khai các trường hợp sử dụng của riêng bạn bằng Coreflux & Linux-Console.net. Bạn cũng có thể nhận Coreflux MQTT Broker miễn phí trên Thị trường Droplet của Linux-Console.net hoặc thông qua trang web của Coreflux.

Tìm hiểu thêm về những gì bạn có thể làm với Coreflux và LoT trong Tài liệu và Hướng dẫn của Coreflux.

Tài nguyên và Tài liệu bổ sung

Lưu ý: Mặc dù hướng dẫn này sử dụng hình ảnh Coreflux hoặc Docker Marketplace để triển khai đơn giản, bạn cũng có thể cài đặt trực tiếp Coreflux MQTT broker trên Ubuntu. Để biết hướng dẫn cài đặt thủ công, hãy truy cập Hướng dẫn Cài đặt Coreflux.

Hướng Dẫn Cài Đặt Linux-Console.net

Quản lý dự án

  • Cách Tạo và Quản Lý Dự Án trên Linux-Console.net - Tổ chức hiệu quả các tài nguyên hạ tầng IoT của bạn

Cơ sở hạ tầng mạng

  • Cách Tạo Mạng VPC - Thiết lập mạng riêng an toàn cho MQTT broker và cơ sở dữ liệu của bạn
  • Hướng Dẫn Khởi Động Nhanh Firewall - Cấu Hình Quy Tắc Bảo Mật cho Môi Trường IoT Sản Xuất

Triển khai Droplet

  • Cách Tạo Droplet - Hướng dẫn đầy đủ để triển khai máy ảo
  • Ứng dụng Docker 1-Click - Triển khai môi trường Docker được cấu hình sẵn từ Marketplace của Linux-Console.net
  • Hướng dẫn Cài đặt Docker bằng 1-Click - Hướng dẫn thiết lập Docker từng bước

Quản lý cơ sở dữ liệu

  • Bắt đầu với cơ sở dữ liệu PostgreSQL - Hướng dẫn nhanh để thiết lập và sử dụng PostgreSQL được quản lý trên Linux-Console.net
  • Cách Quản Lý Cơ Sở Dữ Liệu MongoDB - Tạo và quản lý cơ sở dữ liệu và người dùng MongoDB
  • Cách Kết Nối với MongoDB - Kết nối với cụm MongoDB được quản lý của bạn từ các ứng dụng
  • Giới thiệu về OpenSearch - Hiểu các khái niệm của OpenSearch và những nguyên tắc cơ bản về tìm kiếm

Quản lý máy chủ

  • Cài đặt Droplet được đề xuất - Thực tiễn tốt nhất cho bảo mật và cấu hình máy chủ
  • Kết nối với Droplet qua Bảng điều khiển - Truy cập droplet của bạn thông qua bảng điều khiển trên web

Các Hướng Dẫn Liên Quan trên Linux-Console.net

  • Cách Cài đặt và Sử dụng PostgreSQL trên Ubuntu - Hướng dẫn cài đặt PostgreSQL thủ công cho các triển khai tự quản lý
  • Cách cài đặt MongoDB trên Ubuntu - Hướng dẫn cài đặt MongoDB thủ công cho các triển khai tự quản lý
  • Giới thiệu về MongoDB - Hiểu các khái niệm MongoDB và những kiến thức cơ bản về cơ sở dữ liệu dạng tài liệu

Cảm ơn bạn đã học cùng cộng đồng Linux-Console.net.