Summary
Bài viết này khám phá cách thu thập và lưu trữ chỉ số phần cứng trong các hệ thống IoT tự xây dựng, đồng thời mang đến những giá trị thiết thực cho người đọc về việc tối ưu hóa quy trình quản lý dữ liệu. Key Points:
- Thu thập dữ liệu thời gian thực với kiến trúc phân tán và công nghệ stream processing để đảm bảo tính chính xác và độ trễ thấp.
- Sử dụng AI/ML trong phân tích dữ liệu để phát hiện lỗi phần cứng sớm, từ đó cải thiện hiệu quả giám sát và giảm thiểu sự cố.
- Lưu trữ dữ liệu bằng cơ sở dữ liệu NoSQL phân tán như MongoDB hay InfluxDB giúp xử lý khối lượng lớn thông tin từ nhiều thiết bị IoT.
Tổng quan về việc thu thập số liệu phần cứng với thiết bị IoT
Trong một hệ thống IoT tự chế, có rất nhiều ứng dụng chịu trách nhiệm thu thập, phân tích và lưu trữ dữ liệu từ các cảm biến khác nhau. Bạn có thể chạy tất cả các ứng dụng trên cùng một máy hoặc chia chúng ra thành nhiều máy khác nhau. Mỗi loại cảm biến sẽ cung cấp những thông tin riêng biệt và bạn cũng có nhiều cách để truy cập cũng như lưu trữ dữ liệu đó. Tuy nhiên, khi mọi thứ hoạt động tốt thì không sao, nhưng đến lúc nào đó mà mọi thứ ngừng hoạt động, thì đây chính là thời điểm mà bạn cần phải xem xét lại toàn bộ hệ thống của mình.
Lý do cần theo dõi các thông số từ hệ thống và cảm biến
Điều đầu tiên bạn nên làm là kiểm tra các thông số từ tất cả hệ thống và cảm biến của mình. Những hệ thống, chẳng hạn như máy tính thông thường hoặc máy tính bo mạch đơn, có thể được truy vấn để lấy thông tin về tải trọng, bộ nhớ RAM và dung lượng đĩa, cũng như mức độ sử dụng mạng. Các cảm biến cũng có thể cung cấp dữ liệu về mức tiêu thụ điện năng và chu kỳ xử lý. Tất cả mọi thứ cần phải được đo lường để xác định trạng thái hoạt động. Nhưng làm thế nào để thu thập những thông số này? Và bạn sẽ lưu trữ chúng ra sao? Liệu bạn có muốn truy cập vào chúng khi xảy ra sự cố hay chủ động nhận cảnh báo khi cần thiết?
Extended Perspectives Comparison:
Hệ thống | Vai trò | Mô tả |
---|---|---|
CollectD | Agent | Công cụ nhẹ để thu thập các chỉ số hệ thống với nhiều plugin tùy chỉnh. |
Node Exporter | Agent | Cung cấp điểm cuối số liệu cho hệ thống Linux, dễ dàng sử dụng và cấu hình. |
SNMP | Agent | Giao thức cũ để lấy số liệu từ thiết bị mạng thông qua ID có cấu trúc cây. |
Telegraf | Agent, Aggregator | Tác nhân linh hoạt với khả năng thu thập và tổng hợp dữ liệu từ nhiều nguồn khác nhau. |
Home Assistant | Agent, Aggregator | Nền tảng tùy chỉnh cho cảm biến kết nối đa dạng và hỗ trợ tự động hóa dựa trên giá trị cảm biến. |
Hướng dẫn thu thập và lưu trữ số liệu một cách hệ thống
Mục tiêu của bài viết này là cung cấp một cái nhìn tổng quan và giới thiệu về các khía cạnh của việc thu thập và lưu trữ số liệu một cách hệ thống trong một ngăn xếp IoT tự làm. Đầu tiên, tôi sẽ trình bày một hướng dẫn, cùng với những câu hỏi giúp bạn hình thành phương pháp thu thập số liệu. Tiếp theo, tôi sẽ giới thiệu vài ứng dụng và hệ thống cụ thể thực hiện một hoặc nhiều vai trò trong việc thu thập, tổng hợp và lưu trữ số liệu.
Câu hỏi cần đặt ra để xác định các thông số cần giám sát
Trong mạng IoT của bạn, các ứng dụng và công nghệ xác định các thông số có sẵn. Bước đầu tiên là lập danh sách tất cả máy tính và cảm biến mà bạn đang sở hữu: 1. Tôi có những máy tính nào? 2. Tôi sở hữu những cảm biến nào? 3. Thông tin từ cảm biến được truyền đến ứng dụng như thế nào? (đẩy hay kéo) Khi đã có câu trả lời, bức tranh tổng thể sẽ hiện ra về các thiết bị giao tiếp và cách thức trao đổi dữ liệu. Tiếp theo, hãy xác định danh sách các thông số bổ sung mà bạn muốn ghi lại.

Thiết lập hệ thống thu thập và lưu trữ dữ liệu hiệu quả
1. Tôi có muốn đo lường mức độ hoạt động chung của các thiết bị của mình không? 2. Đối với máy tính của tôi, những chỉ số phần cứng nào là cần thiết để theo dõi? 3. Đối với máy tính của tôi, những chỉ số phần cứng bổ sung nào hữu ích để theo dõi? 4. Đối với cảm biến của tôi, những chỉ số phần mềm nào ngoài dữ liệu cảm biến cũng hữu ích để theo dõi? 5. Đối với tất cả các chỉ số máy tính: Tần suất ghi lại mỗi chỉ số nên là bao nhiêu? 6. Đối với tất cả các chỉ số cảm biến: Tần suất ghi lại mỗi chỉ số nên là bao nhiêu? Khi bạn đã trả lời những câu hỏi này, bước cuối cùng là xác định hệ thống thu thập và lưu trữ các chỉ số. 1. Hệ thống nào thu thập các chỉ số này? 2. Làm thế nào mà hệ thống đo lường thu thập dữ liệu? (đẩy hay kéo) 3. Dữ liệu về các chỉ số được lưu trữ trong bao lâu?
Các thành phần chính trong quy trình thu thập số liệu
Nếu nhiều hệ thống thu thập dữ liệu: Liệu có nên tổng hợp dữ liệu chỉ trên một máy? Khi bạn hiểu rõ hệ thống số liệu, rất có thể bạn sẽ phát hiện ra sự không khớp giữa các thông số mà bạn muốn thu thập, dữ liệu mà hệ thống số liệu có thể ghi lại và lưu lượng dữ liệu giữa chúng. Có thể bạn cần sử dụng thêm một hệ thống khác, chẳng hạn như một trình trung gian, để truyền tải dữ liệu. Hoặc đơn giản là số liệu đó không có sẵn trên một hệ thống hoặc cảm biến nào đó. Điều này tạo thành một vòng lặp mà bạn cần phải vượt qua nhiều lần để đến được với một khái niệm vừa dễ quản lý vừa bền vững.
## Thực tiễn: Thu thập và Lưu trữ Số liệu
Với các tùy chọn chung đã được xem xét, hãy cùng thảo luận về không gian thiết kế thực tiễn mà bạn có cho việc thu thập và lưu trữ số liệu. Bạn cần phân biệt và cân nhắc những thành phần hoặc vai trò sau đây trong việc thu thập số liệu:
- **Đại lý (Agent)**: Là hệ thống hoặc quy trình thu thập các thông số từ máy tính hoặc cảm biến. Đại lý này có thể chạy trên chính máy nơi phát sinh các thông tin đó, hoặc nó cũng có thể hoạt động trên một máy khác và liên lạc với mục tiêu để lấy số liệu.
- **Người tập hợp (Aggregator)**: Người tập hợp điều phối các đại lý trong việc thu thập dữ liệu, rồi kết nối với kho lưu trữ để lưu giữ các thông tin đã được ghi lại.
Việc hiểu rõ nguyên tắc hoạt động của các cảm biến như cảm biến nhiệt độ dựa vào hiệu ứng thermistor hay cảm biến ánh sáng sử dụng quang trở sẽ giúp làm sáng tỏ cách thức hoạt động của toàn bộ quá trình này. Ngoài ra, chất liệu của bảng mạch in như FR4 hay nhôm cũng đóng vai trò quan trọng trong khả năng xử lý tín hiệu trước khi lưu trữ của vi điều khiển. Tất cả những yếu tố này góp phần tạo nên một cấu trúc thiết kế mạnh mẽ cho hệ thống IoT mà chúng ta đang hướng tới.
## Thực tiễn: Thu thập và Lưu trữ Số liệu
Với các tùy chọn chung đã được xem xét, hãy cùng thảo luận về không gian thiết kế thực tiễn mà bạn có cho việc thu thập và lưu trữ số liệu. Bạn cần phân biệt và cân nhắc những thành phần hoặc vai trò sau đây trong việc thu thập số liệu:
- **Đại lý (Agent)**: Là hệ thống hoặc quy trình thu thập các thông số từ máy tính hoặc cảm biến. Đại lý này có thể chạy trên chính máy nơi phát sinh các thông tin đó, hoặc nó cũng có thể hoạt động trên một máy khác và liên lạc với mục tiêu để lấy số liệu.
- **Người tập hợp (Aggregator)**: Người tập hợp điều phối các đại lý trong việc thu thập dữ liệu, rồi kết nối với kho lưu trữ để lưu giữ các thông tin đã được ghi lại.
Việc hiểu rõ nguyên tắc hoạt động của các cảm biến như cảm biến nhiệt độ dựa vào hiệu ứng thermistor hay cảm biến ánh sáng sử dụng quang trở sẽ giúp làm sáng tỏ cách thức hoạt động của toàn bộ quá trình này. Ngoài ra, chất liệu của bảng mạch in như FR4 hay nhôm cũng đóng vai trò quan trọng trong khả năng xử lý tín hiệu trước khi lưu trữ của vi điều khiển. Tất cả những yếu tố này góp phần tạo nên một cấu trúc thiết kế mạnh mẽ cho hệ thống IoT mà chúng ta đang hướng tới.
Giới thiệu các ứng dụng cụ thể cho việc thu thập và lưu trữ dữ liệu
Trong việc thu thập và lưu trữ dữ liệu, các ứng dụng cụ thể thường có vai trò khác nhau. Một số hệ thống phù hợp với một chức năng nhất định, trong khi những hệ thống khác lại đảm nhận nhiều vai trò cùng lúc. Dưới đây là một số ví dụ về các ứng dụng mà tôi đã làm việc và quen thuộc. Hãy ghi nhớ rằng danh sách này chỉ giới hạn ở những hệ thống mà tôi biết đến.
## CollectD
**Vai trò:** agent
CollectD là một công cụ nhẹ dành cho Linux để cấu hình thu thập các chỉ số. Nó được cài đặt như một dịch vụ hệ thống và sở hữu rất nhiều plugin để thu thập bất kỳ loại thông tin nào bạn cần. Ví dụ dưới đây minh họa cách thức thu thập thông tin về CPU và đĩa:
Các cảm biến như CollectD không chỉ giúp theo dõi hiệu suất của máy chủ mà còn hỗ trợ quản lý tài nguyên hiệu quả hơn nhờ vào khả năng điều chỉnh linh hoạt dựa trên nhu cầu thực tế. Thêm nữa, việc sử dụng các giao thức IoT như MQTT hoặc CoAP để truyền tải dữ liệu từ cảm biến đến nền tảng lưu trữ cũng góp phần tối ưu hóa quá trình này, đảm bảo rằng mọi thông tin quan trọng đều được xử lý kịp thời và chính xác.
## CollectD
**Vai trò:** agent
CollectD là một công cụ nhẹ dành cho Linux để cấu hình thu thập các chỉ số. Nó được cài đặt như một dịch vụ hệ thống và sở hữu rất nhiều plugin để thu thập bất kỳ loại thông tin nào bạn cần. Ví dụ dưới đây minh họa cách thức thu thập thông tin về CPU và đĩa:
Hostname "nexus"
Interval 60
LoadPlugin cpu
LoadPlugin disk
<Plugin cpu>
ReportByState true
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/sda1/"
Disk "/sda2/"
</Plugin>
Các cảm biến như CollectD không chỉ giúp theo dõi hiệu suất của máy chủ mà còn hỗ trợ quản lý tài nguyên hiệu quả hơn nhờ vào khả năng điều chỉnh linh hoạt dựa trên nhu cầu thực tế. Thêm nữa, việc sử dụng các giao thức IoT như MQTT hoặc CoAP để truyền tải dữ liệu từ cảm biến đến nền tảng lưu trữ cũng góp phần tối ưu hóa quá trình này, đảm bảo rằng mọi thông tin quan trọng đều được xử lý kịp thời và chính xác.
Chi tiết về CollectD - Một công cụ thu thập số liệu nhẹ nhàng
## Node Exporter_roles: agent_
Người thu thập số liệu [Node exporter] là một công cụ đa năng dùng để thu thập số liệu cho hệ thống Linux. Được phát hành dưới dạng một tệp nhị phân duy nhất, nó cung cấp một điểm cuối số liệu trên máy chủ của nó. Dưới đây là một ví dụ về cách sử dụng:
## SNMP_roles: agent_
[SNMP] là một giao thức cũ hơn được sử dụng để lấy số liệu từ các thiết bị mạng như router, switch và firewall. Các thiết bị hỗ trợ SNMP được gọi và truy vấn thông qua một hệ thống định danh có cấu trúc theo dạng cây, giúp tổ chức các số liệu có sẵn theo cách rõ ràng hơn. Ví dụ, để lấy tải hệ thống trong vòng 15 phút, bạn sẽ cần truy vấn ID [1.3.6.1.4.1.2021.10.1.3], thực hiện lệnh sau:
## Telegraf_roles: agent, aggregator_
[Telegraf] là một tác nhân thu thập dữ liệu rất linh hoạt và mạnh mẽ đồng thời cũng đóng vai trò là bộ tổng hợp dữ liệu cho nhiều loại ứng dụng khác nhau trong môi trường giám sát hệ thống hiện đại.
Với khả năng tùy chỉnh cao, Telegraf cho phép người dùng dễ dàng cấu hình để phù hợp với nhu cầu riêng biệt của từng ứng dụng hoặc hạ tầng cụ thể mà họ đang vận hành và quản lý dữ liệu hiệu quả từ nhiều nguồn khác nhau như cơ sở dữ liệu hay dịch vụ đám mây."
Người thu thập số liệu [Node exporter] là một công cụ đa năng dùng để thu thập số liệu cho hệ thống Linux. Được phát hành dưới dạng một tệp nhị phân duy nhất, nó cung cấp một điểm cuối số liệu trên máy chủ của nó. Dưới đây là một ví dụ về cách sử dụng:
curl localhost:9000
# HELP node_boot_time_seconds Thời gian khởi động máy, tính bằng thời gian Unix.
# TYPE node_boot_time_seconds gauge
node_boot_time_seconds 1.642755791e+09
# HELP node_context_switches_total Tổng số lần chuyển đổi ngữ cảnh.
# TYPE node_context_switches_total counter
node_context_switches_total 6.1337805256e+10
# HELP node_cpu_seconds_total Số giây mà CPU đã tiêu tốn trong mỗi chế độ.
# TYPE node_cpu_seconds_total counter
node_cpu_seconds_total{cpu="0",mode="idle"} 2.950242349e+07
node_cpu_seconds_total{cpu="0",mode="iowait"} 117189.98
node_cpu_seconds_total{cpu="0",mode="irq"} 0
node_cpu_seconds_total{cpu="0",mode="nice"} 1106.33
node_cpu_seconds_total{cpu="0",mode="softirq"} 24949.86
node_cpu_seconds_total{cpu="0",mode="steal"} 0
node_cpu_seconds_total{cpu="0",mode="system"} 382452.13
## SNMP_roles: agent_
[SNMP] là một giao thức cũ hơn được sử dụng để lấy số liệu từ các thiết bị mạng như router, switch và firewall. Các thiết bị hỗ trợ SNMP được gọi và truy vấn thông qua một hệ thống định danh có cấu trúc theo dạng cây, giúp tổ chức các số liệu có sẵn theo cách rõ ràng hơn. Ví dụ, để lấy tải hệ thống trong vòng 15 phút, bạn sẽ cần truy vấn ID [1.3.6.1.4.1.2021.10.1.3], thực hiện lệnh sau:
snmpwalk -v2c -c public localhost 1.3.6.1.4.1.2021.10.1.3
UCD-SNMP-MIB::systemLoad .3 = Counter32: 0 .4
## Telegraf_roles: agent, aggregator_
[Telegraf] là một tác nhân thu thập dữ liệu rất linh hoạt và mạnh mẽ đồng thời cũng đóng vai trò là bộ tổng hợp dữ liệu cho nhiều loại ứng dụng khác nhau trong môi trường giám sát hệ thống hiện đại.
Với khả năng tùy chỉnh cao, Telegraf cho phép người dùng dễ dàng cấu hình để phù hợp với nhu cầu riêng biệt của từng ứng dụng hoặc hạ tầng cụ thể mà họ đang vận hành và quản lý dữ liệu hiệu quả từ nhiều nguồn khác nhau như cơ sở dữ liệu hay dịch vụ đám mây."

Khám phá Node Exporter - Bộ thu thập thông tin đa năng cho hệ thống Linux
Khi hoạt động như một tác nhân, hệ thống sẽ thu thập dữ liệu từ tất cả các plugin đầu vào đã được cấu hình. Ví dụ, đây là cấu hình cơ bản để thu thập các chỉ số CPU và bộ nhớ:
Với vai trò là một trình tổng hợp, cũng có nhiều plugin đầu ra khác nhau. Dưới đây là cách viết dữ liệu vào một instance InfluxDB:
## Home Assistant - Vai trò: tác nhân, trình tổng hợp
Home Assistant (HA) là một nền tảng hoàn toàn tùy chỉnh. Vai trò chính của nó là cung cấp một bảng điều khiển toàn diện cho đủ loại cảm biến kết nối qua nhiều giao thức và công nghệ khác nhau. HA còn hỗ trợ tự động hóa và kịch bản để định nghĩa các chương trình phản ứng dựa trên giá trị của cảm biến, chẳng hạn như kích hoạt đèn khi phát hiện chuyển động.
[[inputs.cpu]]
[[inputs.mem]]
[agent]
interval = "60s"
round_interval = true
Với vai trò là một trình tổng hợp, cũng có nhiều plugin đầu ra khác nhau. Dưới đây là cách viết dữ liệu vào một instance InfluxDB:
[[outputs.influxdb]]
urls = ["http://influxdb:8086"]
database = "telegraf"
write_consistency = "any"
timeout = "5s"
# Xác thực HTTP Basic
username = REDACTED
password = REDACTED
## Home Assistant - Vai trò: tác nhân, trình tổng hợp
Home Assistant (HA) là một nền tảng hoàn toàn tùy chỉnh. Vai trò chính của nó là cung cấp một bảng điều khiển toàn diện cho đủ loại cảm biến kết nối qua nhiều giao thức và công nghệ khác nhau. HA còn hỗ trợ tự động hóa và kịch bản để định nghĩa các chương trình phản ứng dựa trên giá trị của cảm biến, chẳng hạn như kích hoạt đèn khi phát hiện chuyển động.
Tìm hiểu Prometheus - Giải pháp tập hợp và lưu trữ dữ liệu chuyên nghiệp
Home Assistant (HA) có thể thu thập các chỉ số phần cứng từ máy chủ của nó bằng cách kích hoạt nền tảng `systemmonitor` trong tệp cấu hình của nó:
Về cơ bản, tất cả dữ liệu cảm biến được lưu trữ trong một cơ sở dữ liệu nội bộ. Với nhiều nền tảng cảm biến và công nghệ khác nhau, bạn chỉ cần thêm chúng dưới dạng một `sensor` và HA sẽ bắt đầu tổng hợp các chỉ số. Ví dụ, để lắng nghe các tin nhắn MQTT về nhiệt độ CPU, bạn có thể sử dụng cấu hình sau:
## Node Red
Node Red là một ứng dụng độc đáo cung cấp môi trường lập trình đồ họa. Với điều này, bạn có thể định nghĩa sự chuyển đổi từ đầu vào sang đầu ra với bất kỳ mức độ phức tạp nào, bao gồm việc đọc, phân tích, định dạng và xuất với các điều kiện tùy chọn. Dưới đây là ví dụ về một định nghĩa dòng chảy mà phân tích các tin nhắn JSON MQTT cho biết nếu một nút đang hoạt động, sau đó lưu thông tin này vào InfluxDB.
## StatsD
StatsD là một trình tổng hợp số liệu nhỏ gọn với mức tiêu thụ bộ nhớ thấp. Nó thường nhận số liệu theo định dạng riêng qua UDP và sau đó chuyển tiếp số liệu đến hệ thống khác. Dưới đây là ví dụ cấu hình từ [Github repository] xác định các phiên bản statsd để lắng nghe và cấu hình máy chủ metrics.
## Prometheus
Prometheus là một trình tổng hợp metrics chất lượng sản xuất được sử dụng rộng rãi trong ngành công nghiệp. Nó cung cấp danh sách mở rộng các exporter để lấy metrics từ nhiều nguồn khác nhau. Ví dụ, để thu thập metrics được cung cấp bởi node exporter, bạn cần thêm cấu hình scrape sau:
Ngoài ra còn có những aggregator bổ sung do cộng đồng cung cấp như [mqtt-exporter] lắng nghe các tin nhắn MQTT và tiết lộ metrics tương thích với Prometheus. Prometheus đi kèm với cơ sở dữ liệu thời gian thực tích hợp cho phép lưu trữ tất cả metric đã thu thập. Bạn có thể truy vấn dữ liệu bằng cách kết hợp tên metric, thuộc tính của mục tiêu cũng như chức năng bổ sung.
## Graphite
Graphite bao gồm ba thành phần chính là Carbon (daemon tổng hợp metric), Whisper (cơ sở dữ liệu chuỗi thời gian sử dụng SQLite) và giao diện web để truy cập vào metric đã thu thập được.
Để thu thập metrics gửi qua TCP bắt đầu bằng chuỗi `nodes` và nên đươc đệm trong vòng 60 giây trước khi gửi tới cơ sở dữ liệu thì cần phải xác định cấu hình như sau:
Để truy cập vào metrics thì bảng điều khiển thường được sử dụng nhưng cũng hỗ trợ truy vấn văn bản nữa.
## InfluxDB
InfluxDB là một cơ sở dữ liệu chuỗi thời gian tinh vi được tối ưu hóa cho hiệu suất cao nhất quán khi xử lý khối lượng lớn thông tin đo đạc theo thời gian thực.Từng điểm đo trong InfluxDB bao gồm tags (dữ liệu rời rạc), fields (dữ liệu liên tục) cùng với dấu thời gian Unix dùng làm chỉ mục.Ví dụ dưới đây mô tả cách mà thông tin nhiệt độ được biểu diễn:
Nhìn chung việc thu thập chỉ số phần cứng cho thiết bị IoT của bạn có thể đạt được bằng nhiều kỹ thuật và giao thức khác nhau.Trong phần đầu tiên của bài viết này,bạn đã thấy hướng dẫn,các câu hỏi liên quan đến mục tiêu về số liệu mà bạn muốn đạt được.Bằng cách xây dựng bức tranh rõ nét về những thiết bị cần giám sát,những chỉ số cần thu thập,以及 lựa chọn phương pháp lưu trữ chúng,bạn sẽ nắm rõ hơn tình trạng hoạt động hiện tại.Còn ở phần thứ hai của bài viết ,bạn đã tìm hiểu những ứng dụng cụ thể cùng hệ thống kèm theo vài ví dụ ngắn gọn.Hệ thống đảm nhiệm những vai trò khác nhau trong việc thu thập、tổng hợp和lưu trữ数据指标.Trong bài viết tiếp theo,我将给出一个实际的实现方案,用于在我的IoT堆栈中进行指标监测。
sensor:
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /config
- type: disk_use
- type: disk_free
- type: memory_use_percent
- type: memory_use
- type: memory_free
- type: swap_use_percent
- type: swap_use
- type: swap_free
- type: load_1m
- type: load_5m
- type: load_15m
- type: processor_use
- type: processor_temperature
- type: last_boot
Về cơ bản, tất cả dữ liệu cảm biến được lưu trữ trong một cơ sở dữ liệu nội bộ. Với nhiều nền tảng cảm biến và công nghệ khác nhau, bạn chỉ cần thêm chúng dưới dạng một `sensor` và HA sẽ bắt đầu tổng hợp các chỉ số. Ví dụ, để lắng nghe các tin nhắn MQTT về nhiệt độ CPU, bạn có thể sử dụng cấu hình sau:
- platform: mqtt
state_topic: '/node/nexus/cpu_temperatures'
name: 'nexus.metric.cpu_temperature'
unit_of_measurement: '°C'
## Node Red
Node Red là một ứng dụng độc đáo cung cấp môi trường lập trình đồ họa. Với điều này, bạn có thể định nghĩa sự chuyển đổi từ đầu vào sang đầu ra với bất kỳ mức độ phức tạp nào, bao gồm việc đọc, phân tích, định dạng và xuất với các điều kiện tùy chọn. Dưới đây là ví dụ về một định nghĩa dòng chảy mà phân tích các tin nhắn JSON MQTT cho biết nếu một nút đang hoạt động, sau đó lưu thông tin này vào InfluxDB.
## StatsD
StatsD là một trình tổng hợp số liệu nhỏ gọn với mức tiêu thụ bộ nhớ thấp. Nó thường nhận số liệu theo định dạng riêng qua UDP và sau đó chuyển tiếp số liệu đến hệ thống khác. Dưới đây là ví dụ cấu hình từ [Github repository] xác định các phiên bản statsd để lắng nghe và cấu hình máy chủ metrics.
// source:https://github.com/statsd/statsd/blob/master/exampleProxyConfig.js
{
nodes:[
{host:'127.0.0.1',port :8127 ,adminport :8128},
{host :'127.0.0 .1', port :8129 ,adminport :8130},
{host :'127 .0 .0 .1', port :8131 ,adminport :8132}
],
server:'./servers/udp',
host:'0 .0 .0 .0',
port :8125 ,
udp_version :'udp4',
mgmt_port :8126 ,
forkCount : 0,
checkInterval :1000
}
## Prometheus
Prometheus là một trình tổng hợp metrics chất lượng sản xuất được sử dụng rộng rãi trong ngành công nghiệp. Nó cung cấp danh sách mở rộng các exporter để lấy metrics từ nhiều nguồn khác nhau. Ví dụ, để thu thập metrics được cung cấp bởi node exporter, bạn cần thêm cấu hình scrape sau:
- job_name:'nodes'
static_configs:
- targets:['http://nexus:9100']
Ngoài ra còn có những aggregator bổ sung do cộng đồng cung cấp như [mqtt-exporter] lắng nghe các tin nhắn MQTT và tiết lộ metrics tương thích với Prometheus. Prometheus đi kèm với cơ sở dữ liệu thời gian thực tích hợp cho phép lưu trữ tất cả metric đã thu thập. Bạn có thể truy vấn dữ liệu bằng cách kết hợp tên metric, thuộc tính của mục tiêu cũng như chức năng bổ sung.
## Graphite
Graphite bao gồm ba thành phần chính là Carbon (daemon tổng hợp metric), Whisper (cơ sở dữ liệu chuỗi thời gian sử dụng SQLite) và giao diện web để truy cập vào metric đã thu thập được.
Để thu thập metrics gửi qua TCP bắt đầu bằng chuỗi `nodes` và nên đươc đệm trong vòng 60 giây trước khi gửi tới cơ sở dữ liệu thì cần phải xác định cấu hình như sau:
[stats] pattern = ^nodes/.*
retentions = 60s:30d
Để truy cập vào metrics thì bảng điều khiển thường được sử dụng nhưng cũng hỗ trợ truy vấn văn bản nữa.
## InfluxDB
InfluxDB là một cơ sở dữ liệu chuỗi thời gian tinh vi được tối ưu hóa cho hiệu suất cao nhất quán khi xử lý khối lượng lớn thông tin đo đạc theo thời gian thực.Từng điểm đo trong InfluxDB bao gồm tags (dữ liệu rời rạc), fields (dữ liệu liên tục) cùng với dấu thời gian Unix dùng làm chỉ mục.Ví dụ dưới đây mô tả cách mà thông tin nhiệt độ được biểu diễn:
> select * from cpu_temperatures limit 10
name :cpu_temperatures time node temperature ---- ---- -----------1629979793360140718 raspberrypi 51。51629981542154078749 raspberrypi52。61629981601660331504 raspberrypi53。7
Nhìn chung việc thu thập chỉ số phần cứng cho thiết bị IoT của bạn có thể đạt được bằng nhiều kỹ thuật và giao thức khác nhau.Trong phần đầu tiên của bài viết này,bạn đã thấy hướng dẫn,các câu hỏi liên quan đến mục tiêu về số liệu mà bạn muốn đạt được.Bằng cách xây dựng bức tranh rõ nét về những thiết bị cần giám sát,những chỉ số cần thu thập,以及 lựa chọn phương pháp lưu trữ chúng,bạn sẽ nắm rõ hơn tình trạng hoạt động hiện tại.Còn ở phần thứ hai của bài viết ,bạn đã tìm hiểu những ứng dụng cụ thể cùng hệ thống kèm theo vài ví dụ ngắn gọn.Hệ thống đảm nhiệm những vai trò khác nhau trong việc thu thập、tổng hợp和lưu trữ数据指标.Trong bài viết tiếp theo,我将给出一个实际的实现方案,用于在我的IoT堆栈中进行指标监测。
Reference Articles
đặng xuân hoàng nghiên cứu công nghệ iot và ứng dụng ...
Ngoài ra giới thiệu về phần cứng ESP32 và Thingspeak. Chương 3: Trình bày các kịch bản thử nghiệm và kết quả của thực nghiệm để đưa ra đánh giá về hệ thống.
Hướng dẫn cơ bản về Ứng dụng IoT trong sản xuất
Các công nghệ IoT đang thay đổi cách xây dựng và vận hành các hệ thống sản xuất, thúc đẩy các cải tiến trên ba khía cạnh chính của chuyển đổi kỹ thuật số:.
Source: mctt.com.vnInternet of Things (IoT) là gì? Cẩm nang toàn diện về công ...
Mô hình IoT chính là cách bố trí các “công trình” trong thành phố này sao cho mọi thứ đều ăn khớp và vận hành mượt mà, tùy theo mục đích sử dụng ...
Source: VTI Solutions
Related Discussions