Cách cài đặt phần mềm giám sát Netdata trên AlmaLinux 9

theanh

Administrator
Nhân viên
Thu thập số liệu hệ thống và giám sát các ứng dụng của bạn bằng Netdata. Netdata là hệ thống giám sát mã nguồn mở, có thể mở rộng và theo thời gian thực dành cho máy chủ, vùng chứa và ứng dụng.

Netdata có thể thu thập số liệu từ nhiều hệ điều hành khác nhau, chẳng hạn như Linux, Unix, Windows và macOS. Ngoài ra, nó còn hỗ trợ công nghệ vùng chứa như Docker và Kubernetes.

Làm theo hướng dẫn của chúng tôi để cài đặt Netdata với Nginx làm proxy ngược trên máy chủ AlmaLinux 9.

Điều kiện tiên quyết​

Để bắt đầu, hãy đảm bảo bạn có những điều sau:
  • Máy chủ AlmaLinux 9.
  • Người dùng không phải root có quyền quản trị viên.
  • SELinux có chế độ cho phép.

Thiết lập kho lưu trữ​

Trước khi bắt đầu cài đặt, bạn sẽ thêm và kích hoạt một số kho lưu trữ cho Netdata. Bạn sẽ thêm kho lưu trữ EPEL và Netdata, sau đó kích hoạt kho lưu trữ RHEL crb (Code Ready Build) trên máy chủ AlmaLinux của bạn.

Để bắt đầu, hãy chạy lệnh sau để cài đặt gói dnf-plugins-core.
Mã:
sudo dnf install dnf-plugins-core -y
Bây giờ, hãy chạy lệnh bên dưới để thêm kho lưu trữ EPEL và kích hoạt kho lưu trữ CRB trên hệ thống của bạn. Nhập y khi được nhắc tiếp tục.
Mã:
sudo dnf install epel-release
sudo dnf config-manager --set-enabled crb

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22635%22%20height=%22186%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để thêm kho lưu trữ Netdata vào hệ thống của bạn. Trong trường hợp này, bạn sẽ sử dụng kho lưu trữ Netdata 2.2.
Mã:
sudo rpm -ivh https://repo.netdata.cloud/repos/stable/el/9/x86_64/netdata-repo-2-2.noarch.rpm

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22155%22%3E%3C/svg%3E


Sau khi hoàn tất, hãy kiểm tra các kho lưu trữ khả dụng trên máy AlmaLinux của bạn bằng cách sử dụng lệnh bên dưới lệnh.
Mã:
sudo dnf repolist
Đầu ra bạn sẽ nhận được như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22224%22%3E%3C/svg%3E

Tải xuống và cài đặt Netdata​

Bây giờ bạn đã định cấu hình kho lưu trữ, hãy bắt đầu cài đặt Netdata.

Trong ví dụ này, bạn sẽ cài đặt Netdata với các plugin bổ sung để giám sát hệ thống và ứng dụng của mình.

Thực hiện lệnh dnf sau để cài đặt Netdata. Nhập y để chấp nhận khóa GPG và tiến hành cài đặt, sau đó đợi cho đến khi hoàn tất.

Bạn có thể không cần tất cả các plugin Netdata đó, hãy đảm bảo điều chỉnh cài đặt gói của bạn.
Mã:
sudo dnf install netdata netdata-plugin-{apps,chartsd,cups,ebpf,go,pythond,perf,freeipmi,slabinfo,systemd-journal}

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22322%22%3E%3C/svg%3E


Sau khi bạn đã cài đặt Netdata, hãy chạy lệnh sau để bắt đầu và kích hoạt dịch vụ netdata.
Mã:
sudo systemctl start netdata
sudo systemctl enable netdata
Sau đó, xác minh dịch vụ netdata bằng cách thực hiện lệnh bên dưới.
Mã:
sudo systemctl status netdata
Nếu cài đặt thành công, dịch vụ netdata sẽ hoạt động (đang chạy) như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22313%22%3E%3C/svg%3E


Cuối cùng, mở cổng Netdata mặc định 19999 thông qua lệnh sau.

Trong ví dụ này, bạn sẽ thêm cổng 19999 tạm thời vì bạn sẽ thiết lập Nginx làm proxy ngược. Chúng tôi sẽ thực hiện việc này ở phần tiếp theo.
Mã:
sudo firewall-cmd --add-port=19999/tcp
Truy cập địa chỉ IP máy chủ của bạn theo sau là cổng 19999 (tức là: http://192.168.5.50:19999) bằng trình duyệt web bạn thích.

Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy bảng điều khiển Netdata như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22485%22%3E%3C/svg%3E

Cấu hình Netdata​

Sau khi cài đặt Netdata, bạn sẽ cấu hình Netdata để chạy trong tệp sock UNIX. Điều này cho phép bạn thiết lập Nginx làm proxy ngược cho Netdata, bạn sẽ thực hiện việc này ở bước tiếp theo.

Để bắt đầu cấu hình Netdata, hãy chạy lệnh sau để tải cấu hình Netdata xuống /etc/netdata/netdata.conf.
Mã:
wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
Di chuyển đến thư mục /etc/netdata và mở cấu hình mặc định netdata.conf bằng lệnh bên dưới.
Mã:
cd /etc/netdata
sudo ./edit-config netdata.conf
Tìm phần [web] và bỏ chú thích cho tùy chọn bind to. Sau đó, thay đổi tùy chọn bind mặc định thành UNIX socket unix:/var/run/netdata/netdata.sock.
Mã:
[web]
 bind to = unix:/var/run/netdata/netdata.sock
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, khởi động lại Netdata để áp dụng các thay đổi của bạn bằng cách thực hiện lệnh bên dưới.
Mã:
sudo systemctl restart netdata
Tại thời điểm này, Netdata phải chạy như một socket UNIX tại unix:/var/run/netdata/netdata.sock.

Xác minh socket UNIX Netdata bằng lệnh ss bên dưới.
Mã:
ss -pl | grep netdata.sock
Nếu cấu hình thành công, bạn sẽ nhận được thông báo sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2298%22%3E%3C/svg%3E

Cài đặt Nginx làm Proxy ngược​

Lúc này, bạn đã cài đặt Netdata trên máy chủ AlmaLinux 9. Ở bước tiếp theo, bạn sẽ cài đặt và cấu hình Nginx làm proxy ngược cho Netdata.

Ngoài ra, bạn có thể cần tên miền cho việc này, bạn có thể sử dụng tên miền phụ hoặc tên miền cục bộ.

Cài đặt Nginx​

Để bắt đầu, hãy cài đặt Nginx bằng lệnh dnf sau. Nhập y để tiếp tục cài đặt.
Mã:
sudo dnf install nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E


Sau khi bạn đã cài đặt Nginx, hãy thực hiện lệnh sau để tạo thư mục khối máy chủ /etc/nginx/server-blocks và mở cấu hình Nginx /etc/nginx/nginx.conf.
Mã:
mkdir -p /etc/nginx/server-blocks
sudo nano /etc/nginx/nginx.conf
Trong phần http {...}, thêm tùy chọn include... bên dưới.
Mã:
http {

 ...
 include /etc/nginx/server-blocks/*.conf;
}
Lưu và đóng tệp khi bạn hoàn tất.

Thêm Khối Máy chủ Cấu hình​

Tiếp theo, tạo một khối máy chủ Nginx mới cho proxy ngược Netdata /etc/nginx/server-blocks/netdata.conf bằng lệnh nano editor sau.
Mã:
sudo nano /etc/nginx/server-blocks/netdata.conf
Chèn cấu hình sau và đảm bảo nhập tên miền của bạn vào tham số server_name. Trong trường hợp này, chúng ta sẽ sử dụng miền netdata.howtoforge.local.

Ngoài ra, bạn sẽ bảo mật Netdata thông qua mô-đun auth_basic bằng tệp /etc/nginx/.passwords.
Mã:
upstream backend {
 # the Netdata server
 server unix:/var/run/netdata/netdata.sock;
 keepalive 1024;
}

server {
 # nginx listens to this
 listen 80;

 # the virtual host name of this
 server_name netdata.howtoforge.local;

 auth_basic "Protected";
 auth_basic_user_file /etc/nginx/.passwords;

 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://backend;
 proxy_http_version 1.1;
 proxy_pass_request_headers on;
 proxy_set_header Connection "keep-alive";
 proxy_store off;
 }
}
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy chạy lệnh bên dưới để tạo tệp mật khẩu /etc/nginx/.passwords.

Hãy nhớ thay đổi người dùng alice bằng tên người dùng của bạn. Sau đó, nhập mật khẩu của bạn và lặp lại.
Mã:
printf "alice:$(openssl passwd -apr1)" > /etc/nginx/.passwords

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22187%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh bên dưới để xác minh cú pháp Nginx của bạn. Nếu không có lỗi, bạn sẽ nhận được kết quả 'syntax is ok - test is successful'.
Mã:
sudo nginx -t
Sau đó, khởi động và bật Nginx bằng lệnh sau.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22714%22%20height=%22218%22%3E%3C/svg%3E


Sau khi Nginx khởi động, hãy xác minh bằng cách thực hiện lệnh bên dưới.
Mã:
sudo systemctl status nginx
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ nhận được đầu ra active (running), xác nhận rằng Nginx đang chạy.




Mở cổng HTTP và HTTPS​

Mở cổng HTTP và HTTPS trên máy chủ AlmaLinux của bạn để cho phép truy cập vào cài đặt Netdata của bạn. Thực hiện lệnh sau để thực hiện.
Mã:
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
Bây giờ hãy xác minh các quy tắc tường lửa bằng lệnh sau.
Mã:
sudo firewall-cmd --list-all
Hãy đảm bảo rằng bạn có cả dịch vụ HTTP và HTTPS trong danh sách dịch vụ tường lửa. Nếu không, hãy lặp lại lệnh trước đó.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22742%22%20height=%22262%22%3E%3C/svg%3E


Cuối cùng, hãy truy cập tên miền Netdata của bạn như http://netdata.howtoforge.local bằng trình duyệt web bạn thích.

Nhập tên người dùng và mật khẩu khi được nhắc xác thực cơ bản Nginx.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22475%22%20height=%22343%22%3E%3C/svg%3E


Nếu cài đặt Nginx thành công, bạn sẽ thấy bảng điều khiển giám sát Netdata như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22485%22%3E%3C/svg%3E

Bảo mật Netdata với Chứng chỉ SSL/TLS​

Sau khi cấu hình Nginx, bạn sẽ tạo chứng chỉ SSL/TLS để bảo mật cài đặt của mình.

Nếu bạn đang sử dụng tên miền cục bộ, bạn có thể tạo chứng chỉ Tự ký. Nhưng nếu sử dụng tên miền thực, hãy tạo chứng chỉ SSL/TLS bằng các bước sau:

Chạy lệnh sau để cài đặt Certbot và plugin Certbot Nginx vào hệ thống của bạn. Nhập y để tiến hành cài đặt.
Mã:
sudo dnf install certbot python3-certbot-nginx -y
Bây giờ hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS từ Letsencrypt. Hãy chắc chắn sửa đổi tên miền và địa chỉ email trước khi chạy lệnh này.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d netdata.howtoforge.local
Sau khi quá trình hoàn tất, Netdata của bạn sẽ được bảo mật bằng HTTPS. Bạn đã tạo chứng chỉ SSl/TLS từ Letsencrypt và triển khai HTTPS trên khối máy chủ Nginx của mình thông qua plugin Certbot Nginx.

Ví dụ: Giám sát Nginx bằng Netdata​

Nếu bạn đã làm theo cho đến giờ, bạn đã hoàn tất cài đặt Netdata của mình với Nginx làm proxy ngược và đã định cấu hình HTTPS. Bây giờ bạn sẽ học cách giám sát cơ bản với Netdata.

Trong trường hợp này, bạn sẽ thiết lập giám sát máy chủ web Nginx thông qua Netdata, để bạn có thể có bức tranh toàn cảnh hơn về cách giám sát các dịch vụ và ứng dụng khác.

Bật Nginx stub_status​

Tạo cấu hình mới /etc/nginx/default.d/stub.conf bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/nginx/default.d/stub.conf
Chèn cấu hình sau để bật mô-đun Nginx stub_status. Thao tác này sẽ hiển thị Nginx stub_status dưới URL /basic_status.
Mã:
location /basic_status {
 stub_status;
 server_tokens on;
}
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, chạy lệnh sau để xác minh cú pháp Nginx. Sau đó, khởi động lại Nginx để những thay đổi của bạn có hiệu lực.
Mã:
sudo nginx -t
sudo systemctl restart nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22642%22%20height=%22177%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh curl bên dưới để xác minh Nginx stub_status module.
Mã:
curl http://localhost/basic_status
Nếu cấu hình của bạn thành công, bạn sẽ thấy trạng thái từ máy chủ web Nginx của mình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22238%22%3E%3C/svg%3E

Bật Plugin Netdata để Giám sát Nginx​

Truy cập thư mục /etc/netdata và mở cấu hình plugin để giám sát Nginx. Plugin Netdata để giám sát Nginx là một phần của plugin Go, hãy truy cập danh sách plugin Netdata để biết thêm thông tin.
Mã:
cd /etc/netdata
sudo ./edit-config go.d/nginx.conf
Đảm bảo cấu hình url: http://127.0.0.1/stub_status khả dụng hoặc bạn có thể tạo thủ công. Lệnh này sẽ yêu cầu Netdata theo dõi Nginx qua URL: .
Mã:
jobs:
 - name: local
 url: http://127.0.0.1/stub_status
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, chạy lệnh sau để khởi động lại Netdata và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart netdata
Bây giờ bạn có thể kiểm tra hoặc kiểm tra ứng suất máy chủ web Nginx của mình bằng lệnh sau. ab hoặc Apache Benchmark là một phần của httpd-tools, hãy đảm bảo cài đặt nó trên máy của bạn.
Mã:
ab -n 50000 -c 500 http://localhost/
Quay lại bảng điều khiển dữ liệu Netdata và nhấp vào menu Nginx ở bên trái. Nếu cấu hình thành công, bạn sẽ thấy thông tin chi tiết về giám sát Nginx như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22457%22%3E%3C/svg%3E

Kết luận​

Để kết thúc, bạn đã hoàn tất cài đặt giải pháp giám sát Netdata trên máy chủ AlmaLinux 9. Bạn đã cài đặt Netdata với Nginx làm proxy ngược và bảo mật Netdata bằng chứng chỉ SSL/TLS.

Ngoài ra, bạn cũng đã tìm hiểu cách sử dụng cơ bản plugin Netdata để giám sát các ứng dụng của mình.

Từ đây, hãy kiểm tra danh sách Netdata có sẵn để giám sát các ứng dụng của bạn.
 
Back
Bên trên