Hướng dẫn sử dụng công cụ Netdata giám sát hiệu năng Ubuntu

Chia sẻ

Netdata là một công cụ mã nguồn mở miễn phí cho phép chúng ta giám sát theo thời gian thực cũng như là công cụ gỡ rối cho cloud servers, containers, applications. Công cụ cung cấp các số liệu theo thời gian thực như hiệu năng CPU, mức sử dụng RAM & ổ đĩa, các thống kê về băng thông
Ngoài ra, Netdata cũng cung cấp một phiên bản nền web kèm theo các cảnh báo thông minh giúp các bạn giám sát và sửa những lỗi hệ thống
Có hai cách bạn có thể cài Netdata theo hai cách, sử dụng script tự động hoặc clone từ Github. Ở đây chúng tôi sẽ hướng dẫn theo cách thứ nhất vì nó nhanh và đơn giản

Nền tảng hỗ trợ

Hiện tại netdata hỗ trợ các bản phân phối LTS của Ubuntu

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Hướng dẫn cài đặt

Bạn chạy câu lệnh sau

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

Script sẽ làm những thao tác sau

  • Tự động phát hiện bản phân phối của bạn, cập nhật danh sách các package và cài đặt tất cả những packages được yêu cầu để netdata có thể hoạt động
  • Tải về mã nguồn netdata và lưu lại ở thư mục /usr/src/netdata.git
  • Cài đặt netdata bằng cách chạy script ./netdata-installer.sh
  • Tiến hành cập nhật thông tin vào cron.daily để đảm bảo rằng netdata được cập nhật hàng ngày


Sau khi script được chạy, bạn sẽ được hướng dẫn cách truy cập Netdata từ một trình duyệt web và cách quản lí chúng như một dịch vụ systemd

Quá trình cài đặt sẽ diễn ra tầm 10 phút và bạn có thể thấy màn hình sau đây

Sau khi cài đặt xong, hãy gõ 3 câu lệnh đây để kích hoạt và đảm bảo là service netdata đã hoạt động

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata


Mặc định thì netdata sẽ sử dụng Port 19999 và có thể được kiểm tra bằng công cụ netstat

sudo netstat -pnltu | grep netdata


Nếu bạn sử dụng ufw, hãy đảm bảo mở Port 19999 trên ufw

sudo ufw allow 19999/tcp
sudo ufw reload

Cuối cùng bạn có thể truy cập vào netdata theo địa chỉ http://server-ip:19999/

Bạn có thể chuyển qua các biểu đồ khác nhau bằng cách click vào thông số ở slidebar bên phải, ví dụ để kiểm tra các thông số về network interface thì bạn click vào mục Network Interfaces

Bảo mật cơ bản cho netdata

Cho tới thời điểm này thì bạn vẫn có thể truy cập vào netdata mà không cần xác thực gì cả, mà netdata lại chứa rất nhiều thông số về hệ thống và có thể tạo ra rủi ro bảo mật vì vậy chúng ta cần cấu hình một lớp bảo mật cơ bản ở đây chúng ta sẽ dùng htpasswd.
Chúng ta sẽ cài Nginx web server và apache2-utils bằng câu lệnh sau

sudo apt install nginx apache2-utils

Sau khi cài đặt chúng ta sẽ tạo một file cấu hình tại thư mục /etc/nginx/conf.d. Tuy nhiên hãy thoải mái sử dụng thư mục sites-available nếu bạn cần dùng Nginx cho nhu cầu khác

sudo vim /etc/nginx/conf.d/default.conf

Gõ một file cấu hình với nội dung mẫu như sau, nhớ thay thế server_ip và example.com bằng các thông số của bạn

upstream netdata-backend {
server 127.0.0.1:19999;
keepalive 64;
}
server {
listen server_ip:80;
server_name example.com;
auth_basic "Authentication Required";
auth_basic_user_file netdata-access;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://netdata-backend;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
}

Để xác thực, bạn sẽ tạo ra một username và mật khẩu cho một user chẳng hạn như cloudzone sử dụng công cụ htpasswd và lưu thông tin xác thực ở trong file netdata-access

sudo htpasswd -c /etc/nginx/netdata-access cloudzone

Nhập mật khẩu và xác nhận

Cuối cùng bạn khởi động là Nginx để thay đổi có hiệu lực

sudo systemctl restart nginx

Truy cập lại vào netdata tại http://server-ip bạn sẽ thấy một popup để bạn nhập username và password vừa tạo

Sau khi nhập thông tin login bạn có thể thấy netdata hoạt động như hình

Chia sẻ