Màn hình cấu hình kết nối InfluxDB làm nguồn dữ liệu trong Grafana
Máy Tính

Hướng Dẫn Thiết Lập Hệ Thống Giám Sát Nhà Thông Minh Toàn Diện Với InfluxDB, Home Assistant và Grafana

Trong thế giới công nghệ phát triển nhanh chóng, việc giám sát ngôi nhà thông minh đã trở thành một nhu cầu thiết yếu. Có vô số lựa chọn để thực hiện điều này, từ việc sử dụng các công cụ mạnh mẽ như Prometheus hay Home Assistant với hàng loạt tích hợp, cho đến Grafana, InfluxDB, hoặc kết hợp linh hoạt tất cả. Gần đây, tôi đã dành thời gian để tự tay thiết lập một cấu hình toàn diện sử dụng InfluxDB, Home Assistant và Grafana nhằm giám sát ngôi nhà thông minh của mình. Mặc dù quá trình này đòi hỏi không ít công sức và sự kiên trì ban đầu, nhưng kết quả cuối cùng hoàn toàn xứng đáng với những gì đã bỏ ra.

Hệ thống được thiết lập trên TrueNAS, sử dụng các ảnh chính thức cho từng ứng dụng. Tôi cũng triển khai Telegraf trên máy Mac để thu thập dữ liệu và đưa vào InfluxDB. Toàn bộ dữ liệu sau đó được đọc từ InfluxDB và hiển thị trên Grafana, với các truy vấn được viết bằng InfluxQL. Thành quả là một bảng điều khiển (dashboard) tuyệt đẹp, có khả năng hiển thị các biểu đồ theo thời gian thực về nhiều khía cạnh khác nhau của ngôi nhà thông minh, mang lại cái nhìn trực quan và sự kiểm soát vượt trội.

Thiết Lập InfluxDB và Telegraf: Thử Thách Ban Đầu

Bước Khó Nhất: Làm Chủ InfluxDB 2.0

Không nghi ngờ gì nữa, việc thiết lập InfluxDB là phần phức tạp nhất trong toàn bộ quy trình, đặc biệt là với những thay đổi đáng kể trong phiên bản 2.0. Về cơ bản, InfluxDB đã chuyển từ việc chấp nhận nhiều định dạng dữ liệu khác nhau sang chỉ hỗ trợ một định dạng cụ thể – định dạng của Telegraf. Lý do đằng sau thay đổi này là nhằm tối thiểu hóa những gì InfluxDB cần hỗ trợ, đồng nghĩa với việc bạn không thể sử dụng các công cụ như Graphite hay SNMP trực tiếp nữa. Đây có thể coi là một cải tiến tốt, nhưng điều đó cũng có nghĩa là rất nhiều thông tin bạn tìm thấy trực tuyến có thể đã lỗi thời. Trong quá trình thiết lập, bạn sẽ được cung cấp một mã API token. Hãy đảm bảo lưu trữ mã này ở nơi an toàn, vì đây là một token cực kỳ quan trọng và sẽ được sử dụng nhiều lần sau này.

Việc cài đặt container và cấu hình tổ chức, tài khoản của tôi diễn ra khá dễ dàng. Tuy nhiên, tìm cách để Telegraf hoạt động mới là phần tôi gặp nhiều khó khăn nhất. Trong trường hợp của tôi, sau khi thêm một thiết bị Telegraf vào InfluxDB, nó đã cung cấp API token và một lệnh để chạy trong terminal nhằm bắt đầu chia sẻ dữ liệu. Lệnh đó như sau:

telegraf --config http://192.168.1.5:30115/api/v2/telegrafs/0e9f980bb8fdd000

Tuy nhiên, lệnh này đã không hoạt động. Sau khi sử dụng wget để tải file cấu hình và kiểm tra, tôi nhận ra rằng nó đang cố gắng chia sẻ dữ liệu đến địa chỉ 192.168.1.1, tức là cổng mặc định của tôi, điều này rõ ràng là không chính xác. Tôi đã chỉnh sửa cấu hình để thêm chức năng thu thập thông tin CPU và thay đổi địa chỉ IP thành 192.168.1.5. Sau đó, tôi chạy lại lệnh, nhưng trỏ nó đến cấu hình cục bộ đã tải xuống và chỉnh sửa của mình. Lần này, mọi thứ hoạt động trơn tru và tôi bắt đầu thu thập dữ liệu từ máy Mac của mình.

Nếu bạn muốn xem danh sách các plugin mà Telegraf có thể thu thập dữ liệu, hãy tham khảo kho mã nguồn Telegraf chính thức trên GitHub. Mỗi plugin đều có một cấu hình mặc định mà bạn chỉ cần sao chép và dán vào tệp cấu hình Telegraf tổng thể của mình. Dữ liệu sau đó sẽ tự động được chia sẻ với máy chủ InfluxDB của bạn. Bạn có thể kiểm tra và tạo bảng điều khiển ngay trong InfluxDB nếu muốn, nhưng cá nhân tôi muốn chuyển mọi thứ sang Grafana để có trải nghiệm tốt hơn.

Tích Hợp Home Assistant Với InfluxDB

Tiếp theo, tôi thiết lập Home Assistant để xuất dữ liệu sang InfluxDB. Tích hợp của Home Assistant là một tích hợp cũ, có nghĩa là nó chỉ được kiểm soát thông qua một tệp YAML. Bạn sẽ cần chỉnh sửa tệp configuration.yaml của Home Assistant và thêm cấu hình cho InfluxDB2. Bạn có thể tìm thấy hướng dẫn chi tiết về cách thực hiện và những gì cần thêm tùy thuộc vào thiết lập của bạn tại đây. Các bước cần thực hiện để sửa đổi tệp đó sẽ khác nhau tùy thuộc vào cách bạn chạy Home Assistant.

Một khi bạn đã cấu hình mọi thứ và có thể thấy dữ liệu xuất hiện trong InfluxDB, bạn đã sẵn sàng chuyển sang Grafana.

Cài Đặt và Kết Nối Grafana

Kéo Dữ Liệu Từ InfluxDB Sang Grafana

Việc đưa Grafana vào hoạt động tương đối dễ dàng hơn nhiều, vì bạn chỉ cần trỏ nó đến InfluxDB. Trong Grafana, hãy truy cập vào phần Data sources (Nguồn dữ liệu) và tìm kiếm InfluxDB, sau đó thêm nó và điền các chi tiết kết nối cho InfluxQL. Các thông tin bạn cần cung cấp bao gồm:

  • URL: Đây là địa chỉ mà bạn sử dụng để truy cập InfluxDB.
  • Database: Tên của tổ chức (organization) bạn đã tạo trong InfluxDB.
  • Username: Tên người dùng của bạn.
  • Password: Chính là API token mà bạn đã nhận được khi thiết lập InfluxDB.

Màn hình cấu hình kết nối InfluxDB làm nguồn dữ liệu trong GrafanaMàn hình cấu hình kết nối InfluxDB làm nguồn dữ liệu trong Grafana

Mọi trường khác có thể bỏ qua. Sau khi điền đầy đủ, nhấp vào Save & test (Lưu & kiểm tra). Nếu kết nối thành công, bạn đã có thể bắt đầu tạo các biểu đồ của mình.

Tạo Bảng Điều Khiển (Dashboard) Đầu Tiên Trong Grafana

Biến Dữ Liệu Thô Thành Trực Quan Đẹp Mắt

Có rất nhiều mẫu bảng điều khiển Grafana khác nhau để bạn tự tạo, nhưng chúng ta sẽ bắt đầu với một số biểu đồ cơ bản để bạn làm quen với cách tạo chúng. Để bắt đầu, hãy chuyển đến tab Explore (Khám phá) ở bên trái.

Grafana sử dụng một trình tạo truy vấn khi bạn làm việc với InfluxQL, cho phép bạn chỉ cần nhấp và chọn các đối tượng mà bạn muốn đọc, thay vì phải tự viết tất cả các truy vấn. Chúng ta sẽ tạo biểu đồ phần trăm lưu trữ mà tôi đang sử dụng trong bảng điều khiển hiện tại của mình. Biểu đồ này lấy dữ liệu từ máy Mac của tôi bằng Telegraf, truyền đến InfluxDB, và sau đó được đọc bởi Grafana.

Bảng điều khiển Grafana hiển thị biểu đồ sử dụng CPU, dung lượng lưu trữ của Mac và nhiệt độ, độ ẩm phòng ngủ, phòng kháchBảng điều khiển Grafana hiển thị biểu đồ sử dụng CPU, dung lượng lưu trữ của Mac và nhiệt độ, độ ẩm phòng ngủ, phòng khách

Trong trình tạo truy vấn, bạn có thể chọn những gì bạn muốn đọc, từ đâu và thêm các điều kiện lọc. Trong trường hợp này, khá đơn giản, vì tôi chỉ cần đọc trường “% remaining” (phần trăm còn lại), do máy Mac của tôi là thiết bị duy nhất báo cáo. Nếu tôi có các thiết bị khác báo cáo, tôi cũng sẽ cần chỉ định tên thiết bị.

Giao diện công cụ tạo truy vấn (Query Builder) trong Grafana để chọn dữ liệu từ InfluxDBGiao diện công cụ tạo truy vấn (Query Builder) trong Grafana để chọn dữ liệu từ InfluxDB

Hiện tại, điều này đã hoạt động. Bây giờ, ở phía trên, nhấp vào Add (Thêm), và thêm nó vào một bảng điều khiển mới. Đặt tên cho bảng điều khiển của bạn nếu được nhắc, và bạn sẽ thấy trang hiển thị biểu đồ ở góc trên bên trái. Chúng ta sẽ sửa đổi biểu đồ vừa được thêm bằng cách di chuột qua nó, nhấp vào menu ba chấm ở góc trên bên phải, và chọn Edit (Chỉnh sửa).

Giao diện chỉnh sửa biểu đồ trong Grafana, hiển thị các tùy chọn cấu hìnhGiao diện chỉnh sửa biểu đồ trong Grafana, hiển thị các tùy chọn cấu hình

Lúc này, tất cả những gì nó hiển thị chỉ là các giá trị đọc chính xác tại các thời điểm cụ thể về dung lượng lưu trữ còn lại trên máy Mac của tôi. Nó không thực sự đẹp mắt, nhưng chúng ta sẽ thay đổi điều đó. Ở góc trên bên phải, nhấp vào Time series (Chuỗi thời gian) và bạn sẽ thấy hàng loạt tùy chọn khác. Thay đổi nó thành Gauge (Đồng hồ), và biểu đồ của bạn đã trông đẹp hơn đáng kể.

Với điều này, bạn có thể đặt tiêu đề và đây đã là một biểu đồ hoàn toàn có thể sử dụng được trên bảng điều khiển của bạn. Nhưng chúng ta sẽ thực hiện một thay đổi nhỏ để nó trông đẹp hơn nữa. Cuộn xuống menu bên phải và tìm phần ngưỡng (thresholds). Thay đổi từ Absolute (Tuyệt đối) sang Percentage (Phần trăm), và điều chỉnh giá trị phần trăm. Tôi đã thay đổi thành 10%, 20% và 30%.

Thiết lập và tùy chỉnh biểu đồ dạng đồng hồ (Gauge) trong Grafana với các ngưỡng màuThiết lập và tùy chỉnh biểu đồ dạng đồng hồ (Gauge) trong Grafana với các ngưỡng màu

Điều này hoạt động, nhưng có một vấn đề: màu sắc có lẽ nên được hoán đổi, phải không? Nó hoạt động bằng cách đọc các màu chúng ta đã gán cho nó, và màu chủ đạo của đồng hồ được chọn dựa trên ngưỡng mà chúng ta đang ở.

Rất may, đây là một cách sửa chữa khá dễ dàng! Nhấp vào biểu tượng màu sắc bên cạnh mỗi phần trăm và chỉ cần hoán đổi thứ tự của chúng. Đồng hồ của bạn bây giờ sẽ có màu xanh lá cây (giả sử bạn đang ở trên ngưỡng 30%), và các màu đại diện cho các phần trăm sẽ cảm thấy tự nhiên hơn.

Trực Quan Hóa Dữ Liệu: Giá Trị Vượt Trội Cho Ngôi Nhà Thông Minh

Biểu đồ dạng đồng hồ (Gauge) hoàn chỉnh trong Grafana hiển thị phần trăm dung lượng trốngBiểu đồ dạng đồng hồ (Gauge) hoàn chỉnh trong Grafana hiển thị phần trăm dung lượng trống

Mặc dù đây là một biểu đồ khá cơ bản, nhưng có vô số bảng điều khiển khác được thiết kế để chấp nhận mọi loại dữ liệu đầu vào nhằm trực quan hóa ngôi nhà thông minh của bạn. Gần đây, tôi đang rất hứng thú với Home Assistant, tìm kiếm một số cảm biến và đặt mua thêm một vài loại trực tuyến. Tôi có thể đưa tất cả dữ liệu vào InfluxDB và đọc nó ra với Grafana để tạo các bảng điều khiển của mình, và chúng trông thật tuyệt vời. Tôi có một bảng điều khiển tinh vi hơn một biểu đồ đơn lẻ, mặc dù nó vẫn còn khá đơn giản và tôi đang trong quá trình mở rộng nó.

Cá nhân tôi sẽ nghiêng về việc sử dụng bảng điều khiển của Home Assistant cho hầu hết các tác vụ trực quan hóa, nhưng sức mạnh mà Grafana mang lại gần như không thể sánh kịp. Có quá nhiều điều bạn có thể làm với nó, và đây là một hệ thống đáng giá để thiết lập và vận hành một khi bạn đã làm được. Chắc chắn, các dịch vụ khác nhau có thể hơi khó tính, nhưng bạn có được rất nhiều quyền kiểm soát. Bạn thậm chí có thể thiết lập khóa API trong Grafana để Home Assistant có thể đọc từ đó, và sau đó thêm các biểu đồ của bạn như một đối tượng camera trong Home Assistant để hiển thị trên bảng điều khiển. Mặc dù Home Assistant có thể tạo biểu đồ dữ liệu cho bạn, Grafana mang đến nhiều tùy chọn hơn đáng kể.

Tuy nhiên, dù bằng cách nào đi nữa, tôi thực sự khuyên bạn nên thiết lập một dịch vụ trực quan hóa nào đó cho ngôi nhà thông minh của mình. Bạn có thể xem mọi thứ ở một nơi duy nhất và có thể đặt cảnh báo thông qua các ứng dụng như Home Assistant nếu có điều gì đó không ổn. Hiện tại, tôi nhận được thông báo nếu độ ẩm quá cao, và tôi có thể mua một máy hút ẩm tích hợp Home Assistant nếu muốn tự động hóa hoàn toàn quy trình này.

Nhà thông minh là một “lỗ hổng thỏ” (rabbit hole) đầy mê hoặc, nhưng nó có thể mang lại những phần thưởng vô cùng xứng đáng một khi bạn bắt đầu khám phá.


Related posts

Snipping Tool trên Windows 11: Trích Xuất Văn Bản Dễ Dàng Hơn Bao Giờ Hết

Administrator

7 Linh Kiện PC Bạn Nên Nâng Cấp Ngay Lập Tức Vào Năm 2025

Administrator

Cách Giải Phóng Dung Lượng Ổ Đĩa Với Tính Năng “Tệp Theo Yêu Cầu” Của OneDrive

Administrator

5 Ứng Dụng Miễn Phí Tuyệt Vời Từ Microsoft Store Nâng Tầm Trải Nghiệm Windows

Administrator

Không Có “Thời Điểm Vàng” Để Build PC: Hãy Bắt Đầu Ngay!

Administrator

5 Món Phần Cứng Máy Tính Lỗi Thời Mà Ai Cũng Mừng Khi Chúng Biến Mất

Administrator