Netdata là công cụ mã nguồn mở giúp theo dõi, giám sát tình trạng hoạt động của máy chủ theo thời gian thực cực kỳ mạnh mẽ. Netdata đã được ra đời từ 2013 nhưng mới đây mình mới biết đến nó trong khi đang tìm kiếm công cụ theo dõi tất cả các VPS đang sử dụng.

Netdata giúp bạn theo dõi gần như như mọi hoạt động của hệ thống:

  • Total and Per Core CPU usage, interrupts, softirqs and frequency.
  • Total Memory, RAM, Swap and Kernel usage.
  • Disk I/O (per disk: bandwidth, operations, backlog, utilization, etc).
  • Monitors Network interfaces including: bandwidth, packets, errors, drops, etc).
  • Monitors Netfilter / iptables Linux firewall connections, events, errors, etc.
  • Processes (running, blocked, forks, active, etc).
  • System Applications with the process tree (CPU, memory, swap, disk reads/writes, threads, etc).
  • Apache and Nginx Status monitoring with mod_status.
  • MySQL database monitoring: queries, updates, locks, issues, threads, etc.
  • Postfix email server message queue.
  • Squid proxy server bandwidth and requests monitoring.
  • Hardware sensors (temperature, voltage, fans, power, humidity, etc).
  • SNMP devices.

Netdata gồm có 2 thành phần chính:

  • Netdata Agent cài trên máy tính / máy chủ của bạn. Link Github
  • Netdata Cloud giúp bạn theo dõi tập trung tất cả máy chủ của mình.

Cả hai đều được cung cấp miễn phí. Quá ngon

Cài đặt Netdata Agent

Netdata Agent có thể được cài đặt trên mọi phiên bản Linux phổ biến (Ubuntu, Debian, CentOS,…), hoặc thông qua các giải pháp Docker / Kubernetes.

Cách nhanh nhất để cài Netdata là sử dụng one-line script installer

bash <(curl -Ss https://my-netdata.io/kickstart.sh)Code language: JavaScript (javascript)

Với một số bản cài đặt Ubuntu, có thể bạn sẽ gặp lỗi sau “Cannot install netdata from source (the source directory does not include netdata-installer.sh)”

Đó là do lỗi thư mục /tmp trên máy đang ở dạng read-only hoặc không có quyền exec.

Với Ubuntu, bạn cần chạy lệnh sau

mount /tmp -o remount,rwCode language: Nginx (nginx)

Với CentOS, bạn cần sử dụng lệnh

export TMPDIR="/root/netdata/tmp"Code language: JavaScript (javascript)

Sau đó cài đặt lại sử dụng one-line script installer ở trên.

Sau khi cài đặt thành công, bạn sẽ nhận được thông báo như sau

 --- We are done! ---

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...Code language: Bash (bash)

Sử dụng Netdata Dashboard

Bạn có thể theo dõi tình trạng hệ thống trực tiếp từ máy chủ của mình qua địa chỉ web:

http://<IP Adresss>:19999/Code language: JavaScript (javascript)

Tất cả thông tin trên dashboard này chỉ ở dạng read-only, nghĩa là chỉ để xem. Bạn không thể điều chỉnh, thay đổi được bất kỳ cấu hình hệ thống nào thông qua dashboard của Netdata.

Tuy nhiên, bất kỳ ai cũng có thể truy cập Dashboard này nếu biết IP của bạn. Tuy không ảnh hưởng gì đến bảo mật, nhưng nó sẽ khiến nhiều người không thoải mái khi biết người lạ có thể theo dõi hoạt động của máy chủ mình đang quản lý.

Do đó, để bảo mật, bạn nên khoá port 19999 để chặn truy cập trực tiếp vào Dashboard của Netdata. Thay vào đó, sử dụng Netdata Cloud sẽ tiện lợi hơn.

Thiết lập Netdata Cloud

Để sử dụng Netdata Cloud, bạn cần tạo tài khoản miễn phí tại đây: https://app.netdata.cloud/

TIếp theo bạn cần tạo Spaces (Không gian quản lý) và War Room (để phân loại máy chủ). War Rooms có thể được hiểu như tag của blog. Ví dụ bạn có thể tạo nhiều War Rooms như sau.

  • Singapore: các máy chủ đặt ở Singapore
  • UpCloud: các máy chủ đặt trên Upcloud
  • DigitalOcean: các máy chủ đặt trên DigitalOcean.

Máy chủ có thể được thêm vào nhiều War Room khác nhau để dễ theo dõi theo nhóm.

Để liên kết Netdata Cloud của bạn với máy chủ, bạn bấm vào Claim Nodes, chọn War Rooms, và copy câu lệnh để chuẩn bị cho chạy trên máy chủ

Bấm vào Claim Nodes
Copy đoạn script này vào cho chạy trên máy chủ

Đoạn mã sẽ có dạng như sau. Bạn copy và paste vào cli của máy chủ

sudo netdata-claim.sh -token=xxxxxxx -rooms=yyyyyyyyy -url=<a href="https://app.netdata.cloud">https://app.netdata.cloud</a>Code language: JavaScript (javascript)

Bạn sẽ nhận được thông báo này sau khi chạy xong (chỉ khoảng 1s)

Node was successfully claimed.Code language: Nginx (nginx)

Vậy là xong.

Chúc bạn cài đặt thành công và giám sát hệ thống hiệu quả.

[convertkit form=7087807]

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *


2 Comments

  1. Bạn cho mình hỏi cách khóa truy cập thông qua địa chỉ ip:port cụ thể được không, hiện tại mình dùng ufw để block port 19999 nhưng khi truy cập qua ip của vps dưới dạng x.x.x.x:19999 thì vẫn vào được trang netdata.
    Cám ơn bạn!