Làm quen với Telegraf trong 5 phút (Quick Start)
Nếu bạn cần một công cụ “nhẹ đô”, cài xong chạy ngay để gom toàn bộ thông số CPU, RAM, Disk từ server về một mối thì Telegraf là lựa chọn số 1. Thay vì hì hục viết script curl hay python phức tạp, bạn chỉ cần tinh chỉnh vài dòng trong file .conf là đủ.
Cùng bắt tay vào cài đặt nhanh trên Ubuntu/Debian để đẩy dữ liệu về InfluxDB. Ở đây, mình giả định bạn đã có sẵn InfluxDB hoặc đang dùng bản Cloud:
# Thêm repo chính thức từ InfluxData
wget -q https://repos.influxdata.com/influxdata-archive_key.gpg
echo "393e8779c8945d3195561a4411ac3c21c177026f151cb854766e13b29527e5e0 influxdata-archive_key.gpg" | sha256sum -c && cat influxdata-archive_key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive.gpg] https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdata.list
# Cài đặt Telegraf
sudo apt-get update && sudo apt-get install telegraf
# Kích hoạt dịch vụ
sudo systemctl enable --now telegraf
Cài xong, bạn tìm thấy file cấu hình tại /etc/telegraf/telegraf.conf. Hãy mở file, tìm mục [[outputs.influxdb_v2]] và điền URL, Token cùng Bucket. Chỉ mất 30 giây để dữ liệu bắt đầu “đổ” về InfluxDB của bạn.
Telegraf là gì và tại sao nó lại được tin dùng?
Nói một cách đơn giản, Telegraf là một agent mã nguồn mở viết bằng Go, thuộc hệ sinh thái TICK stack nổi tiếng. Điểm cộng lớn nhất là nó cực kỳ tiết kiệm tài nguyên (chỉ chiếm khoảng 10-50MB RAM). Với hơn 300 plugins tích hợp sẵn, nó có thể đọc mọi thứ: từ chỉ số MySQL, Redis đến các bản tin MQTT từ thiết bị IoT.
Luồng xử lý của Telegraf vận hành qua 4 giai đoạn:
- Inputs: Thu thập metrics (CPU, Docker, Nginx…).
- Processors: Chỉnh sửa, gắn tag hoặc lọc dữ liệu.
- Aggregators: Gom nhóm dữ liệu, ví dụ như tính trung bình cộng mỗi phút.
- Outputs: Đích đến của dữ liệu (InfluxDB, Prometheus, Kafka…).
Hệ thống mình đang quản lý dùng Telegraf + InfluxDB + Grafana để theo dõi 15 server Linux. Nhờ nó, mình từng phát hiện một con worker node bị tràn RAM trước khi người dùng kịp nhận ra web đang chậm đi rõ rệt.
Cấu hình Telegraf thu thập dữ liệu thực tế
Đừng để file cấu hình mặc định dài hàng nghìn dòng làm bạn nản lòng. Kinh nghiệm của mình là xóa sạch hoặc comment hết lại, chỉ giữ những gì thực sự cần. Dưới đây là cấu hình mẫu để theo dõi tài nguyên và Docker.
1. Giám sát tài nguyên hệ thống
Chèn đoạn mã sau vào file /etc/telegraf/telegraf.conf:
[[inputs.cpu]]
percpu = true
totalcpu = true
report_active = false
[[inputs.mem]]
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "overlay", "squashfs"]
[[inputs.net]]
interfaces = ["eth0", "enp*"]
2. Theo dõi Docker Containers
Muốn biết container nào đang “ngốn” tài nguyên nhất? Hãy dùng plugin docker. Lưu ý quan trọng: user telegraf phải có quyền truy cập vào socket của Docker.
# Cấp quyền cho Telegraf
sudo usermod -aG docker telegraf
# Cấu hình trong telegraf.conf
[[inputs.docker]]
endpoint = "unix:///var/run/docker.sock"
container_names = []
timeout = "5s"
perdevice = false
total = true
Đẩy dữ liệu về InfluxDB
Đây là bước cuối để lưu trữ dữ liệu. Với InfluxDB 2.x, cấu hình sẽ như sau:
[[outputs.influxdb_v2]]
urls = ["http://192.168.1.100:8086"]
token = "YOUR_SECURE_TOKEN_HERE"
organization = "my-org"
bucket = "server-metrics"
Mẹo nhỏ cho bạn: Hãy dùng biến môi trường để lưu Token thay vì viết trực tiếp. Cách này giúp bảo mật thông tin nếu bạn lỡ tay đẩy code lên GitHub.
Kinh nghiệm “xương máu” khi vận hành
Sau nhiều năm làm việc với hệ thống giám sát, mình rút ra 3 lưu ý quan trọng để tránh mất dữ liệu:
Luôn kiểm tra trước khi áp dụng
Mỗi khi sửa file conf, đừng vội restart service ngay lập tức. Hãy chạy lệnh kiểm tra:
telegraf --config /etc/telegraf/telegraf.conf --test
Nếu terminal hiện ra các dòng thông số nhảy liên tục, chúc mừng bạn, cấu hình đã chuẩn.
Điều chỉnh khoảng thời gian thu thập (Interval)
Mặc định Telegraf sẽ lấy dữ liệu mỗi 10 giây. Với server không quá quan trọng, mình thường tăng lên 30s hoặc 60s. Việc này giúp giảm tải CPU và tiết kiệm dung lượng lưu trữ đáng kể cho InfluxDB.
Xử lý khi mất kết nối mạng
Nếu InfluxDB bị sập hoặc mạng chập chờn, Telegraf sẽ dùng bộ đệm (buffer) để giữ dữ liệu. Bạn nên tăng metric_buffer_limit trong phần [agent] lên khoảng 10.000.
Trước đây, mình từng mất sạch 2 tiếng dữ liệu vì để buffer mặc định quá thấp khi đứt cáp. Đừng để mình rơi vào tình cảnh đó giống mình nhé.
Tóm lại, Telegraf là một công cụ cực kỳ linh hoạt và mạnh mẽ. Kết hợp với Grafana để vẽ biểu đồ, bạn sẽ nắm trọn “sức khỏe” hạ tầng trong lòng bàn tay. Chúc các bạn setup thành công!

