Chuyên mục
Linux

Hướng dẫn cài đặt Netdata – Công cụ theo dõi hệ thống thời gian thực

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)

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,rw

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

export TMPDIR="/root/netdata/tmp"

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...

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/

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=https://app.netdata.cloud

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.

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ả.

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại gửi tặng mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Trả lời