Netdata là một hệ thống giám sát mã nguồn mở dành cho các hệ điều hành dựa trên Linux. Nó cung cấp hiệu suất và giám sát theo thời gian thực bằng cách sử dụng các bảng điều khiển đẹp và chi tiết. Nó cung cấp hàng trăm công cụ để giám sát máy chủ, CPU, mức sử dụng bộ nhớ, quy trình hệ thống, mức sử dụng đĩa, mạng IPv4 và IPv6, tường lửa hệ thống và các ứng dụng như Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM, v.v. Nó tích hợp với các công cụ giám sát khác như Prometheus, Graphite, Kafka, Grafana, v.v.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt và giám sát nhiều dịch vụ khác nhau bằng Netdata trên máy chủ Debian 12. Bạn cũng sẽ sử dụng nó để theo dõi số liệu của ngăn xếp LEMP và công cụ Docker.
[*]
Một số gói mà hệ thống của bạn cần.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Cho phép cả cổng HTTP và HTTPS.
Kích hoạt Tường lửa
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy thông báo tương tự đầu ra.
Chạy tập lệnh cài đặt bằng lệnh sau.
Cờ
Nhập
Trình cài đặt Netdata tự động bật và khởi động dịch vụ. Kiểm tra trạng thái của dịch vụ.
Nếu dịch vụ của bạn chưa được khởi động hoặc kích hoạt, bạn có thể thực hiện bằng lệnh sau.
Chạy lệnh sau để kiểm tra các cổng mở và quy trình bằng chúng.
Bạn sẽ nhận được kết quả tương tự. Netdata sử dụng cổng 19999 cho bảng điều khiển của mình, như được thấy trong kết quả bên dưới. Netdata sử dụng cổng 8125 để nhận số liệu thống kê từ các ứng dụng khác.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt tiện ích Nginx và Apache. Gói tiện ích Apache là bắt buộc đối với tiện ích
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
Debian 12 không đi kèm Snapd được cài đặt. Cài đặt gói Snapd.
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Xác minh xem Certbot có hoạt động bình thường không.
Tạo SSL chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo chứng chỉ nhóm Diffie-Hellman.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Dán mã sau vào nó.
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Chạy lệnh sau để tạo tệp mật khẩu để bật HTTP xác thực.
Xác minh cú pháp tệp cấu hình Nginx.
Khởi động lại dịch vụ Nginx để kích hoạt dịch vụ mới cấu hình.
Bạn sẽ nhận được bảng thông tin sau.
Bạn có thể tạm dừng, dừng và bắt đầu giám sát bất cứ lúc nào bằng cách sử dụng nút Phát trên bảng thông tin.
Bạn có thể truy cập nhiều bảng thông tin khác nhau bằng cách nhấp vào các tùy chọn từ thanh bên phải.
Theo mặc định, Netdata có thể theo dõi múi giờ của bạn một cách chính xác. Nếu không, hãy nhấp vào bộ đếm thời gian và chọn múi giờ chính xác trên cửa sổ bật lên để thay đổi.
Tệp được chia thành nhiều phần khác nhau, chẳng hạn như [global], [db], [web], [registry], v.v. Cấu hình mặc định là đủ để chúng ta bắt đầu. Netdata thu thập dữ liệu bằng hai loại plugin:
Mở tệp cấu hình Netdata.
Nhập dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Netdata để bật thay đổi.
Để lưu trữ nhiều số liệu hơn, bạn có hai tùy chọn sau:
Cấu hình Netdata để sử dụng nhiều RAM và dung lượng đĩa hơn
Mở tệp
Cấu hình các dòng sau bên dưới Phần
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Kích thước bộ đệm trang xác định lượng RAM được sử dụng và biến
Bạn có thể sử dụng Máy tính số liệu lưu trữ của Netdata để quyết định dung lượng RAM và dung lượng đĩa bạn cần.
Để thay đổi điều đó, hãy mở tệp cấu hình Netdata để chỉnh sửa.
Nhập dòng sau vào phần
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Truy cập trang Slack API và nhấp vào nút Tạo ứng dụng để bắt đầu tạo ứng dụng.
Nhấp vào liên kếtFrom Scratch để tạo ứng dụng.
Chọn tên cho ứng dụng của bạn và chọn không gian làm việc nơi bạn muốn Ứng dụng của mình xuất hiện. Nếu bạn không muốn liên kết ứng dụng của mình với không gian làm việc hiện tại, bạn có thể tạo một không gian làm việc khác và quay lại bước này.
Mở trang Webhook đến bằng cách chọn tùy chọn trong menu Tính năng từ thanh bên trái, sau đó kích hoạt webhook.
Nhấp vào Thêm Webhook mới để Nút Không gian làm việc ở cuối trang và chọn không gian làm việc của bạn và kênh mục tiêu để nhận thông báo.
Nhấp vào nút Cho phép để tiếp tục. Quay lại trang Webhooks đến và sao chép URL Webhook.
Quay lại thiết bị đầu cuối và chuyển sang
Netdata cung cấp một tập lệnh
Cuộn xuống mục sau phần.
Đảm bảo rằng biến
Nếu trình soạn thảo của bạn là Vim, hãy nhấn phím Escape để thoát khỏi chỉnh sửa, nhập :x và nhấn phím Enter để lưu tệp và thoát khỏi trình soạn thảo.
Nếu trình soạn thảo của bạn là Nano, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Netdata để áp dụng thay đổi.
Cài đặt
Tạo và mở tệp cấu hình cho
Dán mã sau vào nó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Netdata cung cấp một tập lệnh
Cuộn xuống phần sau và nhập đường dẫn đến
Xác định vị trí phần sau và nhập thông tin chi tiết của người gửi và người nhận, đồng thời đảm bảo rằng việc gửi email là đã bật.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Netdata để áp dụng các thay đổi.
Chạy tập lệnh thông báo Báo động để gửi thử nghiệm thông báo.
Bạn sẽ nhận được kết quả sau.
Thoát khỏi người dùng.
Mở ứng dụng Slack của bạn và bạn sẽ nhận được các cảnh báo sau.
Bạn cũng sẽ nhận được ba email về các cảnh báo thử nghiệm.
Chạy các lệnh sau để tạo và mở tệp cấu hình CPU.
Thay đổi giá trị của các tùy chọn warn và crit trong 10min_cpu_usage như hiển thị bên dưới.
Thay đổi dòng
Lưu tệp và thoát khỏi trình chỉnh sửa.
Cài đặt
Cài đặt trên sẽ gửi cảnh báo nếu mức sử dụng CPU giảm từ 60 đến 70% và cảnh báo nghiêm trọng khi mức sử dụng CPU giảm từ 75 đến 85%.
Khởi động lại Netdata dịch vụ.
Chúng ta hãy kiểm tra cài đặt bằng cách cài đặt ứng dụng Stress.
Chạy lệnh sau để tăng đột biến mức sử dụng CPU của máy chủ.
Để lệnh chạy trong 5-10 phút và bạn sẽ nhận được thông báo Sử dụng CPU cao. Sau khi nhận được những thông báo đó, hãy quay lại thiết bị đầu cuối và thoát lệnh bằng cách nhấn Ctrl + Z.
Sau khi dừng dịch vụ, bạn sẽ nhận được thông báo khôi phục CPU trên Slack.
Bạn sẽ nhận được các thông báo email sau cho cùng một thông báo.
Để bật giám sát máy chủ Nginx, chúng ta cần sử dụng
Nếu bạn không nhận được phản hồi, điều đó có nghĩa là cài đặt Nginx của bạn không hỗ trợ tính năng này. Trong trường hợp đó, bạn sẽ cần biên dịch Nginx.
Mở tệp cấu hình mặc định của Nginx
Nhập mã sau vào khối máy chủ trước dấu ngoặc nhọn đóng cuối cùng ngoặc vuông.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cấu hình Nginx.
Khởi động lại Nginx máy chủ.
Khởi động lại dịch vụ Netdata.
Bạn sẽ thấy thông tin chi tiết về kết nối Nginx trong bảng điều khiển Netdata của mình.
Chạy lệnh sau để tạo tệp cấu hình nhằm giám sát Nhật ký truy cập.
Cuộn xuống cuối tệp và tìm phần sau.
Thay đổi đường dẫn để theo dõi các tệp nhật ký tương ứng. Bạn có thể thêm nhiều phần để theo dõi nhiều máy chủ và tệp nhật ký truy cập của chúng. Tệp cấu hình của chúng tôi trông như sau.
Lưu và thoát khỏi trình chỉnh sửa.
Để truy cập các tệp nhật ký, Netdata cần có quyền truy cập vào thư mục. Theo mặc định, nhóm hệ thống
Khởi động lại Nginx và dịch vụ Netdata.
Tải lại bảng điều khiển Netdata để xem dữ liệu tệp nhật ký của bạn.
Nhập khóa GPG của MariaDB.
Tạo và mở tệp kho lưu trữ MariaDB.
Dán mã sau vào nó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cập nhật danh sách kho lưu trữ hệ thống.
Cài đặt MariaDB máy chủ.
MariaDB đã được bật và đang chạy. Kiểm tra trạng thái dịch vụ.
Khởi động tập lệnh cài đặt bảo mật MySQL. Tên tệp khác nhau trong trường hợp của MariaDB.
Mở tệp
Tìm phần
Đăng nhập vào shell MySQL.
Chạy các lệnh sau để tạo người dùng Netdata SQL và cấp cho người dùng đó quyền theo dõi MySQL stats.
Tạo tệp cấu hình MySQL cho Netdata.
Một tệp sẽ mở ra hiển thị tất cả các tùy chọn có thể. Nếu bạn hài lòng, hãy lưu và đóng tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại máy chủ MariaDB.
Khởi động lại dịch vụ Netdata.
Bảng điều khiển MariaDB/MySQL sẽ bắt đầu xuất hiện trong bảng điều khiển Netdata.
Debian 12 được cung cấp với PHP 8.2 theo mặc định. Nhưng để luôn cập nhật phiên bản PHP mới nhất, chúng ta sẽ sử dụng kho lưu trữ PHP của Ondrej.
Đầu tiên, nhập khóa GPG PHP của kho lưu trữ Sury.
Thêm kho lưu trữ PHP của Ondrej Sury.
Cập nhật kho lưu trữ hệ thống danh sách.
Bây giờ, bạn có thể cài đặt bất kỳ phiên bản PHP nào.
Xác minh cài đặt.
Chúng ta cần đặt người dùng/nhóm Unix của các quy trình PHP thành nginx. Tìm các dòng
Ngoài ra, hãy tìm các dòng
Cuộn xuống tệp để tìm tùy chọn
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại quy trình PHP-fpm.
Nhập mã sau vào khối máy chủ trước dấu ngoặc nhọn đóng cuối cùng ngoặc vuông.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cấu hình Nginx.
Khởi động lại Nginx máy chủ.
Khởi động lại dịch vụ Netdata.
Tải lại bảng điều khiển Netdata và bạn sẽ thấy số liệu thống kê PHP-FPM.
Trước tiên, chúng ta hãy cài đặt Docker.
Dịch vụ Docker đã được bật và bắt đầu. Bạn có thể kiểm tra trạng thái của dịch vụ.
Để theo dõi công cụ Docker, bạn cần bật tính năng số liệu của Docker.
Tạo và mở tệp
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. URL này được Prometheus sử dụng để theo dõi số liệu thống kê của Docker engine.
Tạo tệp cấu hình cho trình thu thập Docker.
Tạo tệp cấu hình khác cho Docker engine dành cho Prometheus.
Khởi động lại Netdata và Docker dịch vụ.
Tải lại bảng điều khiển Netdata và bạn có thể thấy số liệu thống kê Docker.
Bạn sẽ thấy một mục khác có tên
Bước tiếp theo là theo dõi vùng chứa Docker. Netdata sử dụng các nhóm điều khiển, được gọi là
Chạy một container thử nghiệm.
Kiểm tra trạng thái của container.
Tên của container là
Tải Dashboard và bạn sẽ có thể thấy số liệu thống kê của Container. Bạn có thể thấy ID container trong số liệu thống kê.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt và giám sát nhiều dịch vụ khác nhau bằng Netdata trên máy chủ Debian 12. Bạn cũng sẽ sử dụng nó để theo dõi số liệu của ngăn xếp LEMP và công cụ Docker.
Điều kiện tiên quyết
-
Máy chủ chạy Debian 12.
-
Người dùng không phải root có quyền sudo.
-
Tên miền đủ điều kiện (FQDN) nhưnetdata.example.com
trỏ đến máy chủ của bạn.
-
Tài khoản SMTP có dịch vụ email như Amazon SES hoặc Mailgun.
-
Đảm bảo mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Debian đi kèm với ufw (Uncomplicated Firewall) theo mặc định.Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Mã:
Status: inactive
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt NetData
Netdata đi kèm với một tập lệnh cài đặt có thể hoạt động trên bất kỳ bản phân phối Linux nào. Chạy lệnh sau để tải xuống tập lệnh cài đặt.
Mã:
$ wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh
Mã:
$ sudo sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
--stable-channel
cài đặt phiên bản ổn định của Netdata. Cờ --disable-telemetry
ngăn Netdata gửi số liệu thống kê ẩn danh trở lại máy chủ của họ. Có các cờ khác mà bạn có thể sử dụng để tùy chỉnh trình cài đặt của mình.Nhập
Y
để xác nhận thêm kho lưu trữ Netdata và cài đặt nó trên máy chủ của bạn. Bạn sẽ nhận được kết quả sau khi cài đặt thành công.
Mã:
Successfully installed the Netdata Agent.
Official documentation can be found online at https://learn.netdata.cloud/docs/.
Looking to monitor all of your infrastructure with Netdata? Check out Netdata Cloud at https://app.netdata.cloud.
Join our community and connect with us on: - GitHub: https://github.com/netdata/netdata/discussions - Discord: https://discord.gg/5ygS846fR6 - Our community forums: https://community.netdata.cloud/
[/root]# rm -rf /tmp/netdata-kickstart-wH4pebXveT OK
Mã:
$ sudo systemctl status netdata
? netdata.service - Real time performance monitoring Loaded: loaded (/lib/systemd/system/netdata.service; enabled; preset: enabled) Active: active (running) since Thu 2023-08-24 10:26:56 UTC; 42s ago Main PID: 2811 (netdata) Tasks: 82 (limit: 1107) Memory: 108.2M CPU: 4.271s CGroup: /system.slice/netdata.service ??2811 /usr/sbin/netdata -D -P /var/run/netdata/netdata.pid ??2822 /usr/sbin/netdata --special-spawn-server ??3127 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1 ??3137 /usr/libexec/netdata/plugins.d/go.d.plugin 1 ??3142 /usr/libexec/netdata/plugins.d/ebpf.plugin 1 ??3145 /usr/libexec/netdata/plugins.d/nfacct.plugin 1 ??3149 /usr/libexec/netdata/plugins.d/systemd-journal.plugin 1 ??3155 /usr/libexec/netdata/plugins.d/debugfs.plugin 1 ??3159 /usr/libexec/netdata/plugins.d/apps.plugin 1
Aug 24 10:26:58 netdata ebpf.plugin[3142]: set name of thread 3188 to EBPF SOFTIRQ
.......
Mã:
$ sudo systemctl enable netdata --now
Mã:
$ sudo ss -plnt | grep netdata
Mã:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=2811,fd=8))
LISTEN 0 4096 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=2811,fd=47))
LISTEN 0 4096 [::1]:8125 [::]:* users:(("netdata",pid=2811,fd=46))
LISTEN 0 4096 [::]:19999 [::]:* users:(("netdata",pid=2811,fd=9))
Bước 3 - Cài đặt Nginx
Debian 12 đi kèm với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
htpasswd
.
Mã:
$ sudo apt install nginx apache2-utils
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Thu 2023-08-24 11:36:34 UTC; 4s ago Docs: https://nginx.org/en/docs/ Process: 3657 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 3658 (nginx) Tasks: 2 (limit: 1107) Memory: 1.8M CPU: 12ms CGroup: /system.slice/nginx.service ??3658 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??3659 "nginx: worker process"
Bước 4 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd.Debian 12 không đi kèm Snapd được cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.6.0
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d netdata.example.com
/etc/letsencrypt/live/netdata.example.com
trên máy chủ của bạn.Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Thu 2023-08-24 13:40:00 UTC 1h 59min left - - snap.certbot.renew.timer snap.certbot.renew.service
Thu 2023-08-24 18:47:23 UTC 7h left Thu 2023-08-24 09:30:41 UTC 2h 9min ago apt-daily.timer apt-daily.service
Fri 2023-08-25 00:00:00 UTC 12h left - - dpkg-db-backup.timer dpkg-db-backup.service
Mã:
$ sudo certbot renew --dry-run
Bước 5 - Cấu hình Nginx
Tạo và mở tệp/etc/nginx/conf.d/netdata.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/netdata.conf
Mã:
# Define netdata upstream
upstream netdata { server 127.0.0.1:19999; keepalive 64;
}
# Redirect all non-encrypted to encrypted
server { listen 80; listen [::]:80; server_name netdata.example.com; return 301 https://netdata.example.com$request_uri;
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name netdata.example.com; ssl_certificate /etc/letsencrypt/live/netdata.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/netdata.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/netdata.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s; resolver_timeout 2s; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; access_log /var/log/nginx/netdata.example.com.access.log main; error_log /var/log/nginx/netdata.example.com.error.log; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_pass http://netdata; proxy_http_version 1.1; proxy_pass_request_headers on; proxy_set_header Connection "keep-alive"; proxy_store off; auth_basic "NetData Private Area"; auth_basic_user_file /etc/nginx/.htpasswd; }
}
Mở tệp
/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Chạy lệnh sau để tạo tệp mật khẩu để bật HTTP xác thực.
Mã:
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl restart nginx
Bước 6 - Truy cập và sử dụng Bảng điều khiển Netdata
Bạn có thể truy cập Netdata qua URLhttps://netdata.example.com
. Lần đầu tiên bạn truy cập, bạn sẽ được nhắc nhập thông tin xác thực HTTP.
Bạn sẽ nhận được bảng thông tin sau.

Bạn có thể tạm dừng, dừng và bắt đầu giám sát bất cứ lúc nào bằng cách sử dụng nút Phát trên bảng thông tin.

Bạn có thể truy cập nhiều bảng thông tin khác nhau bằng cách nhấp vào các tùy chọn từ thanh bên phải.
Theo mặc định, Netdata có thể theo dõi múi giờ của bạn một cách chính xác. Nếu không, hãy nhấp vào bộ đếm thời gian và chọn múi giờ chính xác trên cửa sổ bật lên để thay đổi.

Bước 7 - Cấu hình NetData
Netdata lưu trữ cấu hình chính của mình trong tệp/etc/netdata/netdata.conf
. Bạn có thể xem các thiết lập này bằng cách truy cập URL https://netdata.example.com/netdata.conf
trong trình duyệt của bạn.
Tệp được chia thành nhiều phần khác nhau, chẳng hạn như [global], [db], [web], [registry], v.v. Cấu hình mặc định là đủ để chúng ta bắt đầu. Netdata thu thập dữ liệu bằng hai loại plugin:
- plugin nội bộ được viết bằng ngôn ngữ C và chạy dưới dạng luồng bên trong daemon
netdata
. - plugin bên ngoài được viết bằng nhiều ngôn ngữ khác nhau, bao gồm Python, Go, v.v. và được tạo ra dưới dạng các quy trình độc lập chạy lâu dài bởi
netdata
daemon. Chúng giao tiếp với daemon Netdata bằng cách sử dụngpipes
.
Cấu hình sử dụng bộ nhớ NetData
Việc sử dụng RAM của NetData được quyết định dựa trên thời gian bạn muốn giữ dữ liệu biểu đồ đã ghi trước khi dữ liệu bị mất.- Lưu trữ dữ liệu biểu đồ trong 3600 giây hoặc 1 giờ sử dụng 15 MB RAM.
- Lưu trữ dữ liệu biểu đồ trong 7200 giây hoặc 2 giờ sử dụng 30 MB RAM.
- Lưu trữ dữ liệu biểu đồ trong 14400 giây hoặc 4 giờ sử dụng 60 MB RAM.
Mở tệp cấu hình Netdata.
Mã:
$ sudo nano /etc/netdata/netdata.conf
history = 14400
bên dưới [global]
.
Mã:
[global] run as user = netdata # default storage size - increase for longer data retention page cache size = 32 dbengine multihost disk space = 256 history = 14400
Tắt Đo từ xa
Theo mặc định, Netdata thu thập thông tin sử dụng ẩn danh bằng nền tảng phân tích sản phẩm Posthog. Mỗi khi daemon Netdata được khởi động hoặc dừng, Netdata sẽ sử dụng tập lệnh thống kê ẩn danh để thu thập thông tin hệ thống sau và gửi cho chính nó.- Phiên bản Netdata
- Tên hệ điều hành, phiên bản, id, id_like
- Tên hạt nhân, phiên bản, kiến trúc
- Công nghệ ảo hóa
- Công nghệ chứa
- Thông tin bổ sung về lỗi máy khách Netdata.
.opt-out-from-anonymous-statistics
trong thư mục Netdata.
Mã:
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Mã:
$ sudo systemctl restart netdata
Lưu trữ dài hạn
Netdata sử dụng RAM và đĩa của hệ thống để lưu trữ dữ liệu lịch sử theo mặc định. Quy trình Netdata mặc định thu thập khoảng 2000 số liệu mỗi giây, nghĩa là cấu hình mặc định sẽ lưu trữ số liệu của khoảng hai ngày trên RAM và đĩa.Để lưu trữ nhiều số liệu hơn, bạn có hai tùy chọn sau:
- Cấu hình Netdata để sử dụng nhiều RAM và dung lượng đĩa hơn
- Lưu trữ số liệu vào cơ sở dữ liệu bên ngoài
Cấu hình Netdata để sử dụng nhiều RAM và dung lượng đĩa hơn
Mở tệp
/etc/netdata/netdata.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/netdata/netdata.conf
[global]
.
Mã:
[global]
... page cache size = 32 dbengine multihost disk space = 256
Kích thước bộ đệm trang xác định lượng RAM được sử dụng và biến
dbengine multihost disk space
xác định mức sử dụng đĩa. Theo mặc định, Netdata sử dụng 32 MB RAM và 256 MB dung lượng đĩa. Bạn có thể thay đổi bất kỳ giá trị nào trong hai giá trị theo ý thích.Bạn có thể sử dụng Máy tính số liệu lưu trữ của Netdata để quyết định dung lượng RAM và dung lượng đĩa bạn cần.
Giảm tần suất thu thập
Bạn có thể tối ưu hóa hiệu suất của Netdata bằng cách tăng thời gian giữa các lần thu thập số liệu. Theo mặc định, Netdata thu thập số liệu mỗi giây.Để thay đổi điều đó, hãy mở tệp cấu hình Netdata để chỉnh sửa.
Mã:
$ sudo nano /etc/netdata/netdata.conf
[global]
. Thao tác này sẽ tăng tần suất lên 5 giây.
Mã:
[global]
... update every = 5
Bước 8 - Cấu hình Thông báo Slack
Bước đầu tiên là tạo ứng dụng Slack và kết nối ứng dụng đó với một kênh cụ thể trong không gian làm việc của bạn để cấu hình Thông báo Slack.Truy cập trang Slack API và nhấp vào nút Tạo ứng dụng để bắt đầu tạo ứng dụng.

Nhấp vào liên kếtFrom Scratch để tạo ứng dụng.

Chọn tên cho ứng dụng của bạn và chọn không gian làm việc nơi bạn muốn Ứng dụng của mình xuất hiện. Nếu bạn không muốn liên kết ứng dụng của mình với không gian làm việc hiện tại, bạn có thể tạo một không gian làm việc khác và quay lại bước này.

Mở trang Webhook đến bằng cách chọn tùy chọn trong menu Tính năng từ thanh bên trái, sau đó kích hoạt webhook.

Nhấp vào Thêm Webhook mới để Nút Không gian làm việc ở cuối trang và chọn không gian làm việc của bạn và kênh mục tiêu để nhận thông báo.

Nhấp vào nút Cho phép để tiếp tục. Quay lại trang Webhooks đến và sao chép URL Webhook.

Quay lại thiết bị đầu cuối và chuyển sang
/etc/netdata
thư mục.
Mã:
$ cd /etc/netdata
edit-config
để chỉnh sửa và tạo các tệp cấu hình Netdata. Chạy tệp sau để tạo và mở tệp health_alarm_notify.conf
bằng trình chỉnh sửa mặc định của hệ thống.
Mã:
$ sudo ./edit-config health_alarm_notify.conf
Mã:
# Enable slack notification
SEND_SLACK="YES"
# Select the slack webhook
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx/xxxxxx/xxxxxxxxxxxxx"
# Default channel for notification
DEFAULT_RECIPIENT_SLACK="notifications"
SEND_SLACK
được đặt thành có. Dán URL webhook đã sao chép vào biến SLACK_WEBHOOK_URL
. Nhập tên kênh của bạn cho biến DEFAULT_RECIPIENT_SLACK
.Nếu trình soạn thảo của bạn là Vim, hãy nhấn phím Escape để thoát khỏi chỉnh sửa, nhập :x và nhấn phím Enter để lưu tệp và thoát khỏi trình soạn thảo.
Nếu trình soạn thảo của bạn là Nano, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Netdata để áp dụng thay đổi.
Mã:
$ sudo systemctl restart netdata
Bước 9 - Cấu hình Thông báo qua Email
Netdata sử dụngsendmail
theo mặc định để gửi thông báo qua email nhưng việc quản lý máy chủ email không phải là nhiệm vụ dễ dàng. Netdata không hỗ trợ SMTP, nhưng bạn có thể cài đặt một gói có tên là msmtp
máy khách. Nó cho phép bạn gửi thư đến máy chủ SMTP.Cài đặt
msmtp
.
Mã:
$ sudo apt install msmtp
msmtp
.
Mã:
$ sudo nano /etc/msmtprc
Mã:
# Set default values for all following accounts.
defaults
# Use the mail submission port 587 instead of the SMTP port 25.
port 587
# Always use TLS.
tls on
# The SMTP server of your ISP
account ses
host email-smtp..amazonaws.com
from [emailprotected]
auth on
user
password
# Set default account to isp
account default: ses
Netdata cung cấp một tập lệnh
edit-config
để chỉnh sửa và tạo các tệp cấu hình Netdata. Chạy tệp sau để tạo và mở tệp health_alarm_notify.conf
bằng trình chỉnh sửa mặc định của hệ thống.
Mã:
$ sudo /etc/netdata/edit-config health_alarm_notify.conf
msmtp
.
Mã:
# external commands
# The full path to the sendmail command.
# If empty, the system $PATH will be searched for it.
# If not found, email notifications will be disabled (silently).
sendmail="/usr/bin/msmtp"
Mã:
# email global notification options
# multiple recipients can be given like this:
# "[emailprotected] [emailprotected] ..."
# the email address sending email notifications
# the default is the system user netdata runs as (usually: netdata)
# The following formats are supported:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Server Admin "
# enable/disable sending emails
SEND_EMAIL="YES"
# if a role recipient is not configured, an email will be send to:
DEFAULT_RECIPIENT_EMAIL="[emailprotected]"
# to receive only critical alarms, set it to "root|critical"
Khởi động lại Netdata để áp dụng các thay đổi.
Mã:
$ sudo systemctl restart netdata
Bước 10 - Kiểm tra Kênh thông báo
Chúng ta hãy kiểm tra xem thông báo qua email làm việc. Đăng nhập với tư cách là người dùng hệ thốngnetdata
được tạo trong quá trình cài đặt.
Mã:
$ sudo su -s /bin/bash netdata
Mã:
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Mã:
# SENDING TEST WARNING ALARM TO ROLE: sysadmin
2023-08-24 12:56:00: alarm-notify.sh: INFO: sent email notification for: netdata test.chart.test_alarm is WARNING to '[emailprotected]'
# OK
# SENDING TEST CRITICAL ALARM TO ROLE: sysadmin
2023-08-24 12:56:03: alarm-notify.sh: INFO: sent email notification for: netdata test.chart.test_alarm is CRITICAL to '[emailprotected]'
# OK
# SENDING TEST CLEAR ALARM TO ROLE: sysadmin
2023-08-24 12:56:06: alarm-notify.sh: INFO: sent email notification for: netdata test.chart.test_alarm is CLEAR to '[emailprotected]'
# OK
Mã:
$ exit.

Bạn cũng sẽ nhận được ba email về các cảnh báo thử nghiệm.

Bước 11 - Cấu hình Giám sát Hệ thống
Bây giờ chúng ta đã cấu hình và kiểm tra thông báo, hãy cấu hình và kiểm tra thông báo cho hệ thống, như mức sử dụng CPU.Chạy các lệnh sau để tạo và mở tệp cấu hình CPU.
Mã:
$ sudo /etc/netdata/edit-config health.d/cpu.conf
Mã:
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
to:silent
thành to:sysadmin
như hình minh họa.
Mã:
template: 10min_cpu_usage on: system.cpu class: Utilization type: System
component: CPU os: linux hosts: * lookup: average -10m unaligned of user,system,softirq,irq,guest units: % every: 1m warn: $this > (($status >= $WARNING) ? (60) : (70)) crit: $this > (($status == $CRITICAL) ? (75) : (85)) delay: down 15m multiplier 1.5 max 1h info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal) to: sysadmin
Cài đặt
to:silent
sẽ tắt thông báo và do đó để nhận được thông báo, bạn cần thay đổi giá trị của màn hình thành to:sysadmin
cho những màn hình đó.Cài đặt trên sẽ gửi cảnh báo nếu mức sử dụng CPU giảm từ 60 đến 70% và cảnh báo nghiêm trọng khi mức sử dụng CPU giảm từ 75 đến 85%.
Khởi động lại Netdata dịch vụ.
Mã:
$ sudo systemctl restart netdata
Mã:
$ sudo apt install stress
Mã:
$ stress --cpu 2
Sau khi dừng dịch vụ, bạn sẽ nhận được thông báo khôi phục CPU trên Slack.

Bạn sẽ nhận được các thông báo email sau cho cùng một thông báo.

Bước 12 - Cấu hình Nginx Monitoring
Một trong những ứng dụng được giám sát phổ biến nhất bằng Netdata là các gói máy chủ và SQL. Hãy cùng giám sát máy chủ Nginx bằng Netdata.Để bật giám sát máy chủ Nginx, chúng ta cần sử dụng
ngx_http_stub_status_module
. Nó thường được cài đặt sẵn với Nginx. Bạn có thể kiểm tra xem mô-đun có hiện diện không. Lệnh sudo
là lệnh bắt buộc trên hệ thống Debian.
Mã:
$ sudo nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Mở tệp cấu hình mặc định của Nginx
/etc/nginx/conf.d/default.conf
để chỉnh sửa. Vị trí của tệp khác vì chúng tôi đã cài đặt Nginx từ kho lưu trữ chính thức của nó. Nếu bạn đang cài đặt Nginx từ kho lưu trữ của hệ điều hành, thì vị trí của tệp sẽ là /etc/nginx/nginx.conf
.
Mã:
$ sudo nano /etc/nginx/conf.d/default.conf
Mã:
# Enable module stub_status
location /stub_status { stub_status; allow 127.0.0.1; #only allow requests from localhost deny all; #deny all other hosts
}
Xác minh cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl restart nginx
Mã:
$ sudo systemctl restart netdata

Theo dõi Nhật ký Nginx
Netdata cũng có thể theo dõi nhật ký truy cập Nginx. Để thực hiện điều đó, hãy chuyển sang thư mục Netdata.
Mã:
$ cd /etc/netdata
Mã:
$ sudo ./edit-config go.d/web_log.conf
Mã:
# -------------------------------------------
# nginx log on various distros
# debian, arch
nginx_log: name: 'nginx' path: '/var/log/nginx/access.log'
# gentoo
nginx_log2: name: 'nginx_site' path: '/var/log/nginx/localhost.access_log'
Mã:
# -------------------------------------------
# nginx log on various distros
# debian, arch
nginx_log: name: 'nginx' path: '/var/log/nginx/access.log'
nginx_log2: name: 'nginx_site1' path: '/var/log/nginx/site1.access_log'
nginx_log3: name: 'nginx_site2' path: '/var/log/nginx/site2.access_log'
nginx_log4: name: 'nginx_site3' path: '/var/log/nginx/site3.access_log'
Để truy cập các tệp nhật ký, Netdata cần có quyền truy cập vào thư mục. Theo mặc định, nhóm hệ thống
adm
có quyền truy cập vào tệp nhật ký. Để cấp quyền truy cập Netdata, chúng ta cần thêm người dùng netdata
vào adm
nhóm.
Mã:
$ sudo usermod -aG adm netdata
Mã:
$ sudo systemctl restart nginx netdata

Bước 13 - Cấu hình Giám sát MySQL/MariaDB
Chúng ta sẽ cài đặt MariaDB cho phần hướng dẫn này. Chúng tôi sẽ sử dụng kho lưu trữ MariaDB cho mục đích này.Nhập khóa GPG của MariaDB.
Mã:
$ sudo curl -o /usr/share/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
Mã:
$ sudo nano /etc/apt/sources.list.d/mariadb.sources
Mã:
# MariaDB 10.11 repository list - created 2023-09-05 11:18 UTC
# https://mariadb.org/download/
X-Repolib-Name: MariaDB
Types: deb
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# URIs: https://deb.mariadb.org/10.11/debian
URIs: https://mirrors.aliyun.com/mariadb/repo/10.11/debian
Suites: bookworm
Components: main
Signed-By: /usr/share/keyrings/mariadb-keyring.pgp
Cập nhật danh sách kho lưu trữ hệ thống.
Mã:
$ sudo apt update
Mã:
$ sudo apt install mariadb-server
Mã:
$ sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.5 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d ??migrated-from-my.cnf-settings.conf Active: active (running) since Tue 2023-09-05 11:44:17 UTC; 20s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 9396 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 9397 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 9399 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR > Process: 9440 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 9442 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 9428 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 13 (limit: 1107) Memory: 111.8M CPU: 663ms CGroup: /system.slice/mariadb.service ??9428 /usr/sbin/mariadbd
Mã:
$ sudo mariadb-secure-installation
....
Enter current password for root (enter for none): (Press Enter)
....
Switch to unix_socket authentication [Y/n] Y (Type Y and Press Enter)
....
Change the root password? [Y/n] Y (Type Y and Press Enter)
New password:
Re-enter new password:
Password updated successfully!
....
Remove anonymous users? [Y/n] Y (Type Y and Press Enter)
....
Disallow root login remotely? [Y/n] Y (Type Y and Press Enter)
....
Remove test database and access to it? [Y/n] Y (Type Y and Press Enter)
....
Reload privilege tables now? [Y/n] Y (Type Y and Press Enter)
....
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
/etc/mysql/mariadb.conf.d/50-server.cnf
để chỉnh sửa.
Mã:
$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mariadb]
trong tệp và dán dòng sau như hiển thị bên dưới để kích hoạt plugin Userstats. Thiết lập này chỉ hoạt động trên MariaDB và không hoạt động trên máy chủ MySQL.
Mã:
[mariadb]
userstat = 1
Mã:
$ sudo mysql
Mã:
MariaDB> create user 'netdata'@'localhost';
MariaDB> GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit
Mã:
$ sudo /etc/netdata/edit-config go.d/mysql.conf
Khởi động lại máy chủ MariaDB.
Mã:
$ sudo systemctl restart mariadb
Mã:
$ sudo systemctl restart netdata

Bước 14 - Cấu hình Giám sát PHP-FPM
Bạn có thể giám sát một hoặc nhiều phiên bản PHP-FPM bằng Netdata. Đối với hướng dẫn của chúng tôi, chúng tôi sẽ cài đặt PHP 8.2 và sau đó bật tính năng giám sát của nó.Debian 12 được cung cấp với PHP 8.2 theo mặc định. Nhưng để luôn cập nhật phiên bản PHP mới nhất, chúng ta sẽ sử dụng kho lưu trữ PHP của Ondrej.
Đầu tiên, nhập khóa GPG PHP của kho lưu trữ Sury.
Mã:
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Mã:
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Mã:
$ sudo apt update
Mã:
$ sudo apt install php8.2-fpm php8.2-cli php8.2-mbstring
Mã:
$ php --version
PHP 8.2.10 (cli) (built: Sep 4 2023 08:12:29) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies
Cấu hình PHP
Mở tệp/etc/php/8.2/fpm/pool.d/www.conf
.
Mã:
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
user=www-data
và group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
....
; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
; --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
; If the group is not set, the user's group is used.
user = nginx
group = nginx
....
listen.owner=www-data
và listen.group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
listen.owner = nginx
listen.group = nginx
;pm.status_path = /status
. Bỏ chú thích cho dòng bằng cách xóa dấu chấm phẩy ở phía trước dòng, như minh họa bên dưới.
Mã:
....
; Note: There is a real-time FPM status monitoring sample web page available
; It's available in: /usr/share/php/8.2/fpm/status.html
;
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
pm.status_path = /status
....
Khởi động lại quy trình PHP-fpm.
Mã:
$ sudo systemctl restart php8.2-fpm
Thêm thiết lập PHP vào Nginx
Mở tệp cấu hình mặc định của Nginx/etc/nginx/conf.d/default.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/default.conf
Mã:
# define PHP-FPM monitoring
location ~ ^/(status|ping)$ { allow 127.0.0.1; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Depends on the PHP Version and OS Distro
}
Xác minh cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl restart nginx
Mã:
$ sudo systemctl restart netdata

Bước 15 - Cấu hình Docker Engine và Giám sát Container
Netdata có thể giám sát cả Docker engine và Docker container. Nó cũng có thể giám sát các ứng dụng đang chạy bên trong các vùng chứa này, nhưng chúng tôi sẽ không đề cập đến trong hướng dẫn này.Trước tiên, chúng ta hãy cài đặt Docker.
Mã:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ sudo usermod -aG docker ${USER}
$ su - ${USER}
Mã:
$ sudo systemctl status docker
Tạo và mở tệp
/etc/docker/daemon.json
cho chỉnh sửa.
Mã:
$ sudo nano /etc/docker/daemon.json
Mã:
{ "metrics-addr" : "127.0.0.1:9323", "experimental" : true
}
Tạo tệp cấu hình cho trình thu thập Docker.
Mã:
$ sudo /etc/netdata/edit-config go.d/docker.conf
Mã:
$ sudo /etc/netdata/edit-config go.d/docker_engine.conf
Mã:
$ sudo systemctl restart docker netdata

Bạn sẽ thấy một mục khác có tên
Prometheus Metrics
trên bảng điều khiển của bạn vì tùy chọn số liệu đã được tạo cho bảng điều khiển Prometheus.
Bước tiếp theo là theo dõi vùng chứa Docker. Netdata sử dụng các nhóm điều khiển, được gọi là
cgroups
để theo dõi vùng chứa Docker. Nhóm điều khiển là một tính năng của Linux giới hạn và theo dõi việc sử dụng tài nguyên của một tập hợp các quy trình, trong trường hợp này là vùng chứa. Nếu bạn có vùng chứa Docker đang chạy khi cài đặt Netdata, chúng sẽ tự động được theo dõi. Tuy nhiên, nếu bạn chạy một container sau khi cài đặt Netdata, bạn cần phải khởi động lại nó.Chạy một container thử nghiệm.
Mã:
$ docker container run -d nginx
Mã:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d6cde479224 nginx "/docker-entrypoint.…" 7 seconds ago Up 5 seconds 80/tcp zealous_knuth
zealous_knuth
như hình minh họa. Vì container đã được khởi động sau khi cài đặt Netdata, hãy khởi động lại dịch vụ.
Mã:
$ sudo systemctl restart netdata
