Tôi đang sử dụng giới hạn tốc độ với haproxy18 của mình và tôi muốn bằng cách nào đó rút ra các số liệu từ nó dựa trên địa chỉ IP, những người gần đạt đến giới hạn hoặc cách người dùng đạt đến giới hạn.
Đây là cấu hình của tôi liên quan đến giới hạn tốc độ:
...
loại bảng dính kích thước ip 1m hết hạn lưu trữ 10 giây http_req_rate(10s)
yêu cầu tcp kiểm tra độ trễ 10 giây
nội dung yêu cầu tcp track-sc0 src
http-request từ chối deny_status 429 if { sc_http_req_rate(0) gt 5000 }
...
Hiện tại, những gì tôi có thể làm là một giải pháp rất ngớ ngẩn và tôi không thích, trong một khoảng thời gian ngắn, tôi đang nghe ổ cắm và tôi có thể chuyển hướng đến một tệp đầu ra:
trong khi ngủ 0,5; làm
printf 'hiện bảng https\nhiện bảng http\n' |nc -U /var/lib/haproxy/stats xong
Đây là kết quả của thời gian, điều tôi quan tâm là ip và số cuối cùng trong dòng:
0x561fd2fe50b0: key=10.118.171.119 sử dụng=6 exp=8726 http_req_rate(10000)=9
0x561fd31b0270: key=10.118.172.20 sử dụng=6 exp=9104 http_req_rate(10000)=10
0x561fd31d0ac0: key=10.118.172.192 sử dụng=34 exp=9999 http_req_rate(10000)=1736
Tôi muốn biết có giải pháp nào khác hay hơn không hoặc làm cách nào tôi có thể chuyển đổi giải pháp này thành mục nhập nhật ký?
Tôi đã nghĩ sẽ đặt lệnh ngày tháng như thế này nhưng tôi nên nối thêm tất cả các dòng trong bảng vì vậy tôi cần chuyển hướng đầu ra này sang một tệp và chỉnh sửa, sau đó để trình thu thập số liệu chọn, tôi cho rằng có một số giải pháp hay hơn.
trong khi ngủ 0.5;do date;printf 'hiện bảng https\nhiện bảng http\n' |nc -U /var/lib/haproxy/stats;done
Cảm ơn bạn