Cài đặt Telegraf trên Ubuntu 24.04
Ta sẽ thêm kho lưu trữ chính thức của InfluxData vào hệ thống Ubuntu 24.04 để cài đặt Telegraf phiên bản mới nhất.
Việc sử dụng repository chính hãng đảm bảo tính tương thích cao nhất với InfluxDB và nhận được các bản cập nhật bảo mật ngay lập tức.
Kết quả mong đợi: Gói Telegraf được cài đặt thành công và dịch vụ sẵn sàng để cấu hình.
Cài đặt khóa GPG của InfluxData:
sudo apt-get update
wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | sudo tee -a /etc/apt/keyrings/influxdata-archive_compat.key
Kiểm tra khóa đã được thêm vào keyrings.
Thêm repository InfluxData vào danh sách nguồn:
echo "deb [signed-by=/etc/apt/keyrings/influxdata-archive_compat.key] https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdata.list
File nguồn mới xuất hiện tại `/etc/apt/sources.list.d/influxdata.list`.
Cập nhật danh sách gói và cài đặt Telegraf:
sudo apt-get update
sudo apt-get install telegraf
Telegraf được cài đặt và dịch vụ tự động khởi chạy (hoặc ở trạng thái inactive ready).
Kiểm tra trạng thái dịch vụ Telegraf:
sudo systemctl status telegraf
Hệ thống trả về trạng thái `active (running)`.
Cấu hình Telegraf để thu thập dữ liệu Host
Bây giờ ta cần chỉnh sửa file cấu hình chính của Telegraf để kích hoạt các plugin thu thập thông tin hệ thống.
File cấu hình mặc định của Telegraf trên Ubuntu nằm tại `/etc/telegraf/telegraf.conf`.
Ta sẽ tạo một file cấu hình mới hoặc ghi đè file cũ để đảm bảo các plugin `inputs` cần thiết (CPU, Memory, Disk, Net) được bật.
Để đơn giản và tránh bị ghi đè khi upgrade, ta sẽ cấu hình trực tiếp vào file chính hoặc tạo file riêng trong thư mục `/etc/telegraf/telegraf.d/`. Ở đây ta sẽ chỉnh sửa file chính `/etc/telegraf/telegraf.conf` để tập trung cấu hình.
Sử dụng nano để mở file cấu hình:
sudo nano /etc/telegraf/telegraf.conf
File mở ra với nhiều comment. Ta cần tìm và uncomment (bỏ dấu #) các phần plugin cần thiết.
Bắt đầu bằng việc xóa comment và cấu hình plugin `cpu` để lấy thông số CPU:
[[inputs.cpu]]
## Có thể thu thập theo từng core hoặc tổng hợp.
percpu = true
totalcpu = true
Telegraf sẽ bắt đầu thu thập dữ liệu CPU theo từng core và tổng hợp.
Tiếp theo, cấu hình plugin `mem` để lấy thông tin RAM:
[[inputs.mem]]
## Thu thập bộ nhớ RAM (total, used, free, etc.)
Telegraf sẽ thu thập các chỉ số bộ nhớ của hệ thống.
Cấu hình plugin `disk` để lấy thông tin dung lượng và I/O của ổ cứng:
[[inputs.disk]]
## Loại bỏ các mount point ảo không cần thiết để giảm nhiễu
ignore_fs = ["tmpfs", "devtmpfs", "shm", "overlay"]
device = ["/dev/sda1"]
total = true
Telegraf sẽ bỏ qua các hệ thống tập tin ảo và chỉ tập trung vào ổ cứng vật lý thực tế.
Cấu hình plugin `net` để lấy thông tin mạng (bytes in/out, packets):
[[inputs.net]]
## Thu thập thống kê mạng cho tất cả các giao diện
interface = ["eth0", "ens33", "enp0s3"]
per_interface = true
Thay thế tên giao diện mạng bằng tên thực tế của server bạn (dùng lệnh `ip a` để xem). Telegraf sẽ thu thập lưu lượng mạng chi tiết.
Cấu hình Output để gửi dữ liệu về InfluxDB
Sau khi đã bật các plugin thu thập, ta cần cấu hình nơi lưu trữ dữ liệu, đó là InfluxDB đã cài đặt ở các phần trước.
Ta sẽ sử dụng plugin `output.influxdb` để gửi dữ liệu qua giao thức HTTP API.
Tìm phần `[[outputs.influxdb]]` trong file `/etc/telegraf/telegraf.conf` (thường nằm gần cuối file hoặc bị comment hết).
Cấu hình kết nối đến InfluxDB 2.x. Lưu ý: InfluxDB 2.x yêu cầu Token, URL, và Organization/Bucket cụ thể.
Thay thế các biến `[URL]`, `[TOKEN]`, `[ORG]`, `[BUCKET]` bằng thông tin thực tế từ Phần 3 (IAM) và Phần 4 (Bucket) của series này.
Đoạn cấu hình `output` cần thêm vào cuối file `/etc/telegraf/telegraf.conf`:
[[outputs.influxdb]]
## Địa chỉ URL của InfluxDB
urls = ["http://localhost:8086"]
## Token truy cập được tạo ở InfluxDB UI
token = "YOUR_INFLUXDB_TOKEN_HERE"
## Tên Organization (Org)
organization = "your_org_name"
## Tên Bucket nơi lưu dữ liệu
bucket = "system_metrics"
## Định dạng timestamp (mặc định là ns, giữ nguyên cho InfluxDB 2.x)
precision = "ns"
Lưu file lại (`Ctrl+O`, `Enter`, `Ctrl+X` trong nano).
Telegraf đã được cấu hình để gửi dữ liệu hệ thống vào bucket `system_metrics` của InfluxDB.
Khởi động lại và kiểm tra hoạt động
Sau khi chỉnh sửa file cấu hình, ta cần khởi động lại dịch vụ Telegraf để áp dụng các thay đổi.
Khởi động lại dịch vụ:
sudo systemctl restart telegraf
Dịch vụ Telegraf đã chạy lại với cấu hình mới.
Kiểm tra log để đảm bảo không có lỗi cấu hình (syntax error) hoặc lỗi kết nối:
sudo journalctl -u telegraf --no-pager -n 50
Log sẽ hiển thị các dòng `INFO` về việc plugin đã load thành công. Nếu có lỗi, dòng `ERROR` sẽ xuất hiện ngay lập tức.
Để kiểm tra xem Telegraf đang thu thập dữ liệu gì trước khi gửi, ta chạy chế độ debug một lần (không lưu vào InfluxDB, chỉ in ra console):
telegraf --config /etc/telegraf/telegraf.conf --test
Màn hình sẽ in ra các dòng dữ liệu thô (raw data) theo định dạng Influx Line Protocol, ví dụ: `cpu,host=ubuntu24 cpu_usage_system=0,25 ...`.
Xác minh dữ liệu đã vào InfluxDB
Cuối cùng, ta cần xác minh dữ liệu đã được Telegraf gửi và InfluxDB đã nhận vào Bucket chưa.
Cách nhanh nhất là sử dụng CLI của InfluxDB hoặc truy vấn trực tiếp qua API.
Sử dụng lệnh `influx query` để truy vấn dữ liệu trong bucket vừa tạo. Cần thay thế `your_org_name` và `system_metrics` bằng tên thực tế.
Truy vấn để lấy 10 dòng dữ liệu CPU mới nhất:
influx query -o 'your_org_name' -b 'system_metrics' --token 'YOUR_INFLUXDB_TOKEN_HERE' -- 'from(bucket: "system_metrics") |> range(start: -1m) |> filter(fn: (r) => r._measurement == "cpu") |> limit(n: 10)'
Kết quả trả về là bảng dữ liệu với các cột `_time`, `_field`, `_value` chứa thông số CPU.
Để kiểm tra các plugin khác như Memory hoặc Disk, ta đổi tên measurement trong lệnh query:
influx query -o 'your_org_name' -b 'system_metrics' --token 'YOUR_INFLUXDB_TOKEN_HERE' -- 'from(bucket: "system_metrics") |> range(start: -1m) |> filter(fn: (r) => r._measurement == "mem") |> limit(n: 10)'
Hệ thống trả về dữ liệu RAM (total, used, free).
Tương tự cho Disk và Network bằng cách thay `_measurement` thành `disk` hoặc `net`.
Nếu thấy dữ liệu xuất hiện, quy trình thu thập dữ liệu với Telegraf đã hoàn tất thành công.
Điều hướng series:
Mục lục: Series: Triển khai Database Time-Series với InfluxDB trên Ubuntu 24.04
« Phần 4: Khái niệm dữ liệu Time-Series và mô hình hóa Bucket
Phần 6: Truy vấn và phân tích dữ liệu với Flux »