Có các yêu cầu đăng nhập Apache khi chúng đến, thay vì khi chúng kết thúc


9

Tôi đang cố gắng chẩn đoán sự cố máy chủ kỳ lạ ( Máy chủ phản hồi ping, nhưng sẽ không chấp nhận kết nối SSH cho đến khi khởi động lại. CPU 0% ) khi khởi động lại máy chủ giúp mọi thứ trở lại bình thường. Tôi muốn có nhật ký truy cập Apache của tôi (hoặc một số nhật ký khác) bao gồm tất cả các yêu cầu đã được thực hiện ngay khi sự cố xảy ra, nhưng tiếc là Apache không đăng nhập yêu cầu cho đến khi chúng hoàn thành. Có nghĩa là nếu một yêu cầu làm sập máy chủ, yêu cầu đó không bao giờ kết thúc và do đó không hiển thị trong nhật ký.

Có cách nào để định cấu hình Apache để tạo tệp nhật ký được ghi khi yêu cầu đến không?


Hãy xem cấu hình DNS của bạn, máy chủ DNS bị hỏng hoặc bị treo có thể gây ra tất cả các loại sự cố với SSH và không thể đăng nhập. [Ai biết nó có thể làm gì để apache - đảm bảo rằng việc tra cứu tên máy chủ bị tắt.]
Sean Kimball

Câu trả lời:


15

Tôi nghĩ những gì bạn cần ghi nhật ký pháp y, hãy xem liên kết này: http://httpd.apache.org/docs/civerse/mod/mod_log_forensic.html

đoạn trích:

Định dạng nhật ký pháp y:

Mỗi yêu cầu được ghi lại hai lần. Lần đầu tiên là trước khi nó được xử lý thêm (nghĩa là sau khi nhận được các tiêu đề). Mục nhật ký thứ hai được viết sau khi xử lý yêu cầu cùng lúc với việc ghi nhật ký bình thường.

Để xác định từng yêu cầu, ID yêu cầu duy nhất được chỉ định. ID pháp y này có thể được ghi lại chéo trong nhật ký chuyển thông thường bằng chuỗi định dạng% {forensic-id} n. Nếu bạn đang sử dụng mod_unique_id, ID được tạo của nó sẽ được sử dụng.

Dòng đầu tiên ghi lại ID pháp y, dòng yêu cầu và tất cả các tiêu đề nhận được, được phân tách bằng các ký tự ống (|). Một dòng mẫu trông giống như sau (tất cả trên một dòng):

+ yQtJf8CoAB4AAFNXBIEAAAAA | GET /manual/de/images/down.gif HTTP / 1,1 | / 20040216 Firefox / 0.8 | Chấp nhận: hình ảnh / png, v.v ...

Ký tự cộng ở đầu chỉ ra rằng đây là dòng nhật ký đầu tiên của yêu cầu này. Dòng thứ hai chỉ chứa một ký tự trừ và ID một lần nữa:

-yQtJf8CoAB4AAFNXBIEAAAAA

Kịch bản check_forensic lấy làm đối số của tên logfile. Nó tìm kiếm các cặp +/- ID đó và phàn nàn nếu yêu cầu chưa được hoàn thành.


Đây là những gì tôi đang tìm kiếm, nhưng có vẻ như tôi không thể xóa nhật ký này theo định kỳ (rm /var/log/apache2/forensic.log mỗi giờ) hoặc đăng nhập pháp y chỉ bị hỏng cho đến khi tôi khởi động lại apache. Ý tưởng?
Ben Dilts

chắc chắn nếu bạn rm bất kỳ nhật ký apache, điều đó sẽ xảy ra. Hãy thử sử dụng logrotate hoặc bất cứ thứ gì tương đương tồn tại trong môi trường của bạn để cuộn nhật ký theo định kỳ (thời gian hoặc kích thước khôn ngoan). Nếu không, thay vì xóa nó, hãy thử di chuyển tệp, sau đó chạm vào /var/log/apache2/forensic.log (mặc dù kiểm tra quyền)
sandroid

2

Câu trả lời của Sandroid phù hợp với câu hỏi của bạn nhưng bạn thực sự nên xem xét việc chạy gói chụp mạng. Nếu bạn có tài nguyên, phản chiếu cổng trong công tắc và sử dụng máy thứ hai chạy WireShark để ghi lại tất cả lưu lượng IP có thể thực sự hữu ích. Nếu một cái gì đó đang đưa máy chủ đến điểm mà các dịch vụ không phải là HTTP không phản hồi thì có thể đó là lấy ra ngăn xếp IP trước khi dữ liệu xấu chuyển sang Apache.

Nếu bạn có thể chắc chắn rằng máy đang chạy chụp có phần cứng và / hoặc trình điều khiển mạng khác với các trình điều khiển khác. Sẽ hút để sụp đổ hai với giá của một. ;-)

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.