ngxtop là một công cụ giám sát miễn phí, mã nguồn mở, linh hoạt và theo thời gian thực dành cho máy chủ web Nginx. Công cụ này có thể phân tích nhật ký truy cập Nginx và in thông tin về số lượng yêu cầu, URI được yêu cầu, số lượng yêu cầu theo mã trạng thái và nhiều thông tin khác. Đây là một công cụ đơn giản và dễ sử dụng để giám sát các yêu cầu đến máy chủ web Nginx.
Trong bài viết này, tôi sẽ chỉ cho bạn cách cài đặt và sử dụng công cụ giám sát ngxtop trên Ubuntu 20.04.
Sau khi cài đặt, bạn có thể cài đặt gói ngxtop bằng PIP như hiển thị bên dưới:
Sau khi ngxtop được cài đặt, bạn có thể xác minh phiên bản ngxtop bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Chạy lệnh ngxtop mà không có bất kỳ đối số nào sẽ hiển thị tóm tắt về số lượng yêu cầu, URI được yêu cầu, số lượng yêu cầu theo mã trạng thái.
Bạn sẽ thấy màn hình sau:
Bạn có thể sử dụng tùy chọn -l để chỉ định nhật ký truy cập mà bạn muốn phân tích.
Bạn sẽ thấy màn hình sau:
Để liệt kê các IP hàng đầu đang truy cập máy chủ Nginx của bạn, hãy chạy lệnh sau:
Bạn sẽ thấy màn hình sau screen:
Bạn có thể in 10 yêu cầu có tổng số byte cao nhất được gửi bằng lệnh sau:
Bạn sẽ thấy màn hình sau:
ngxtop cũng cho phép bạn phân tích tệp nhật ký Apache từ máy chủ từ xa. Bạn có thể thực hiện bằng lệnh sau:
Để có danh sách tất cả các tùy chọn có sẵn với ngxtop, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Trong bài viết này, tôi sẽ chỉ cho bạn cách cài đặt và sử dụng công cụ giám sát ngxtop trên Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Cài đặt ngxtop
ngxtop là một công cụ dựa trên python nên bạn sẽ cần cài đặt các gói Python và PIP vào hệ thống của mình. Bạn có thể cài đặt chúng với Nginx bằng lệnh sau:
Mã:
apt-get install nginx python3 python3-pip -y
Mã:
pip3 install ngxtop
Mã:
ngxtop --version
Mã:
xstat 0.1
Cách sử dụng ngxtop
Trong phần này, chúng tôi sẽ chỉ cho bạn cách sử dụng ngxtop để giám sát máy chủ web Nginx.Chạy lệnh ngxtop mà không có bất kỳ đối số nào sẽ hiển thị tóm tắt về số lượng yêu cầu, URI được yêu cầu, số lượng yêu cầu theo mã trạng thái.
Mã:
ngxtop
Bạn có thể sử dụng tùy chọn -l để chỉ định nhật ký truy cập mà bạn muốn phân tích.
Mã:
ngxtop -l /var/log/nginx/access.log
Để liệt kê các IP hàng đầu đang truy cập máy chủ Nginx của bạn, hãy chạy lệnh sau:
Mã:
ngxtop --group-by remote_addr -l /var/log/nginx/access.log
Bạn có thể in 10 yêu cầu có tổng số byte cao nhất được gửi bằng lệnh sau:
Mã:
ngxtop --order-by 'avg(bytes_sent) * count' -l /var/log/nginx/access.log
ngxtop cũng cho phép bạn phân tích tệp nhật ký Apache từ máy chủ từ xa. Bạn có thể thực hiện bằng lệnh sau:
Mã:
ssh root@remote-server-ip tail -f /var/log/apache2/access.log | ngxtop -f common
Mã:
ngxtop --help
Mã:
ngxtop - truy vấn ad-hoc cho nhật ký truy cập nginx.Cách sử dụng: ngxtop [tùy chọn] ngxtop [tùy chọn] (in|top|avg|sum) ... ngxtop info ngxtop [tùy chọn] truy vấn ...Tùy chọn: -l , --access-log tệp nhật ký truy cập để phân tích cú pháp. -f , --log-format định dạng nhật ký như chỉ định trong chỉ thị log_format. [mặc định: kết hợp] --no-follow ngxtop hành vi mặc định là bỏ qua các dòng hiện tại trong nhật ký và chỉ theo dõi các dòng mới khi chúng được ghi vào nhật ký truy cập. Sử dụng cờ này để yêu cầu ngxtop xử lý nội dung hiện tại của nhật ký truy cập thay thế. -t , --interval báo cáo khoảng thời gian khi chạy ở chế độ theo dõi [mặc định: 2.0] -g , --group-by nhóm theo biến [mặc định: request_path] -w , --having mệnh đề having [mặc định: 1] -o , --order-by thứ tự đầu ra cho truy vấn mặc định [mặc định: count] -n [S], --limit giới hạn số bản ghi có trong báo cáo cho lệnh top [mặc định: 10] -a ..., --a ... thêm exp (phải là tổng hợp exp: tổng, trung bình, tối thiểu, tối đa, v.v.) vào đầu ra -v, --verbose đầu ra chi tiết hơn -d, --debug in mọi dòng và bản ghi đã phân tích cú pháp -h, --help in thông báo trợ giúp này. --version in thông tin phiên bản. Các tùy chọn nâng cao/thử nghiệm: -c , --config cho phép ngxtop phân tích cú pháp tệp cấu hình nginx để tìm định dạng và vị trí nhật ký. -i , --filter lọc trong, các bản ghi thỏa mãn biểu thức đã cho được xử lý. -p , --pre-filter trong biểu thức lọc để kiểm tra trong giai đoạn phân tích cú pháp trước.Ví dụ: Tất cả các ví dụ đều đọc tệp cấu hình nginx để biết vị trí và định dạng nhật ký truy cập. Nếu bạn muốn chỉ định tệp nhật ký truy cập và/hoặc định dạng nhật ký, hãy sử dụng tùy chọn -f và -a. "top" giống như chế độ xem các yêu cầu nginx $ ngxtop Top 10 đường dẫn được yêu cầu có trạng thái 404: $ ngxtop top request_path --filter 'status == 404' Top 10 yêu cầu có tổng số byte được gửi cao nhất $ ngxtop --order-by 'avg(bytes_sent) * count' Top 10 địa chỉ từ xa, ví dụ: ai đang tấn công bạn nhiều nhất $ ngxtop --group-by remote_addr In các yêu cầu có trạng thái 4xx hoặc 5xx, cùng với trạng thái và tham chiếu http $ ngxtop -i 'status >= 400' in trạng thái yêu cầu http_referer Số byte trung bình trong phần thân được gửi của 200 phản hồi của đường dẫn được yêu cầu bắt đầu bằng 'foo': $ ngxtop avg bytes_sent --filter 'status == 200 và request_path.startswith("foo")' Phân tích nhật ký truy cập apache từ máy từ xa bằng định dạng nhật ký 'chung' $ ssh remote tail -f /var/log/apache2/access.log | ngxtop -f common[/S]