nginx: làm cách nào để theo dõi 500 ngẫu nhiên từ nginx (không phải ứng dụng của tôi). Có khả năng có liên quan gì đến tải?


9

Gần đây chúng tôi đã có khoảng 500 giây từ chính nginx mà bằng cách nào đó không được ghi lại (chúng tôi có ảnh chụp màn hình, nhưng không có gì trong nhật ký). Điều đó là kỳ lạ trong chính nó, bởi vì thông thường lỗi xuất hiện ở đó. Bất kể, tôi tự hỏi nếu có một cái gì đó giống như kích thước nhóm kết nối mà nếu tối đa hóa sẽ dẫn đến 500? Chúng tôi đã tương quan nó có khả năng tăng đột biến gần đây trong lưu lượng truy cập, nhưng nó không phải là kết luận.

Bất cứ ai cũng có ý tưởng làm thế nào để bắt đầu tiếp cận một vấn đề như vậy?


Hai điều đầu tiên bạn phải làm là tái tạo lỗi này và tìm hiểu lý do tại sao Nginx không đăng nhập error_log. Cũng gửi tập tin cấu hình của bạn.
lượng tử

Câu trả lời:


6

Chúng tôi sử dụng kết hợp các định dạng nhật ký trong nginx và lmon để bắt những thứ như thế này. Định dạng nhật ký NGINX như:

log_format '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' trong: $ http_cookie "'

Sẽ nắm bắt được nhiều thông tin chẩn đoán hữu ích, như máy chủ ngược dòng đã xử lý yêu cầu, cũng như đặt trạng thái ở phía trước để dễ đọc ngay cả khi các bản ghi được cuộn bằng cách khá nhanh.

Chúng tôi sử dụng LMON để xem các nhật ký này và sau đó cảnh báo chúng tôi (máy nhắn tin / email) nếu thấy lỗi, như 500, 503, 400, trong nhật ký:

http://www.bsdconsulting.no/tools/lmon-README

Điều này có thể giúp bạn được cảnh báo về một vấn đề khi nó xảy ra, đó là thời điểm dễ nhất để gỡ lỗi.

Một điều khác có lẽ bạn nên xem xét nếu bạn chưa có là mặc định nginx coi 500 là một tình trạng nghiêm trọng và không thử ngược dòng khác. Nếu bạn có nhiều luồng ngược, bạn có thể định cấu hình nó để sử dụng một luồng khác nếu nó có 500, hy vọng che khuất sự thất bại từ người dùng:

http://wiki.nginx.org/NginxHttpProxyModule#proxy_next_upstream


Đây là một câu trả lời rất hữu ích, cảm ơn bạn! Tắt để cài đặt proxy_next_upstream ...
kaleidomedallion

4

error_log $filename debug; sẽ bật đăng nhập mức gỡ lỗi vào nhật ký lỗi - điều này sẽ cung cấp cho bạn rất nhiều chi tiết về trạng thái nội bộ của nginx tại thời điểm xảy ra lỗi và nếu được biên dịch với --with-debug (một số distro làm theo mặc định) Tôi sẽ cung cấp nhiều hơn.

Được cảnh báo rằng mức độ "gỡ lỗi" thực sự tạo ra nhiều đầu ra, đến mức bạn có thể muốn xem dung lượng đĩa của mình ...


1

Trong trường hợp của tôi, tệp conf không được đặt tên chính xác (là example.com thay vì example.com) và không được bao gồm. Bằng cách nào đó, điều này không dẫn đến 'Chào mừng bạn đến nginx' nhưng trong một lỗi HTTP 500 chưa được đăng nhập. Chà, nó đã được ghi lại thực sự, nhưng trong tệp lỗi từ một máy chủ ảo khác không thể hoạt động với url cụ thể đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.