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
Mục Lục
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,rw
Code 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ủ
Đ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]
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!
Chắc là host của bạn có cài Docker nên UFW không hoạt động nữa. Bạn có thể tắt truy cập qua port 19999 theo hướng dẫn ở đây: https://learn.netdata.cloud/docs/configure/secure-nodes