CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này cung cấp giải thích chi tiết về các tệp nhật ký apache và các lệnh phân tích thực tế được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
1. Phân tích nhật ký Nếu apache được cài đặt với cấu hình mặc định thì hai tệp sẽ được tạo trong thư mục /logs, đó là access_log và error_log 1). access_log access_log là nhật ký truy cập, ghi lại tất cả các yêu cầu truy cập vào máy chủ apache, vị trí của nó. và nội dung được kiểm soát bởi lệnh CustomLog và lệnh LogFormat có thể được sử dụng để đơn giản hóa nội dung và định dạng của nhật ký. Ví dụ: một trong các máy chủ của tôi được định cấu hình như sau:
Sao chép mã Mã này như sau:
Nhật ký tùy chỉnh "| /usr/sbin/rotatelogs /var/log/apache2/%Y_%m_%d_other_vhosts_access.log 86400 480" vhost_combined 。
。
-rw-r--r-- 1 gốc gốc 22310750 12-05 23:59 2010_12_05_other_vhosts_access.log -rw-r--r-- 1 gốc gốc 26873180 12-06 23:59 2010_12_06_other_vhosts_access.log -rw-r--r-- 1 gốc gốc 26810003 12-07 23:59 2010_12_07_other_vhosts_access.log -rw-r--r-- 1 gốc gốc 24530219 12-08 23:59 2010_12_08_other_vhosts_access.log -rw-r--r-- 1 gốc gốc 24536681 12-09 23:59 2010_12_09_other_vhosts_access.log -rw-r--r-- 1 gốc gốc 14003409 12-10 14:57 2010_12_10_other_vhosts_access.log 。
#Thông qua lệnh CustomLog, một tệp nhật ký độc lập được tạo ra mỗi ngày. Đồng thời, một bộ đếm thời gian được ghi để xóa tất cả các tệp nhật ký từ một tuần trước. Điều này có thể làm cho nó rõ ràng hơn. xóa nhật ký trước một thời gian nhất định Bằng cách cài đặt, LogFormat xác định định dạng ghi của nhật ký.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" kết hợp LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" kết hợpproxy LogFormat "%h %l %u %t \"%r\" %>s %b" chung LogFormat "%{Referer}i -> %U" tham chiếu LogFormat "%{User-agent}i" tác nhân 。
。
Vui lòng theo dõi tệp access_log Dưới đây là bản ghi truy cập cổ điển.
Sao chép mã Mã này như sau:
218.19.140.242 - - [10/12/2010:09:31:17 +0800] "GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1" 200 1933 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"
。
Tổng cộng có 9 mục Hãy chia nhỏ chúng và giải thích từng mục một:
Sao chép mã Mã này như sau:
218.19.140.242
-
-
[10/12/2010:09:31:17 +0800]
"LẤY /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1"
200
1933
"-"
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"
。
1) 218.19.140.242 Đây là IP máy khách yêu cầu máy chủ apache Theo mặc định, thông tin đầu tiên chỉ là địa chỉ IP của máy chủ từ xa, nhưng nếu chúng ta cần apache tìm ra tên của máy chủ, chúng ta có thể bật HostnameLookups, nhưng điều này Cách tiếp cận này không được khuyến khích vì nó làm chậm máy chủ rất nhiều. Ngoài ra, địa chỉ IP ở đây không nhất thiết phải là địa chỉ IP của máy chủ máy khách. Nếu máy khách sử dụng máy chủ proxy thì địa chỉ IP ở đây là địa chỉ của proxy. máy chủ, không phải máy gốc 2) - Mục này trống, thay vào đó hãy sử dụng "-". Vị trí này được sử dụng để đánh dấu dấu của khách truy cập. Thông tin này được lưu trữ bởi máy khách identd. Trừ khi bật IdentityCheck, Apache sẽ không lấy được thông tin này. khá hiểu, về cơ bản mục này trống, đây là văn bản gốc) "dấu gạch nối" ở đầu ra cho biết rằng phần thông tin được yêu cầu không có sẵn. Trong trường hợp này, thông tin không có sẵn là danh tính RFC 1413 của khách hàng. xác định bởi identd trên máy khách. Thông tin này rất không đáng tin cậy và hầu như không bao giờ được sử dụng ngoại trừ trên các mạng nội bộ được kiểm soát chặt chẽ. Apache httpd thậm chí sẽ không cố gắng xác định thông tin này trừ khi IdentityCheck được đặt thành Bật 3) - Mục này trống. , nhưng mục này được sử dụng để ghi lại xác thực HTTP của người dùng. Nếu một số trang web yêu cầu người dùng thực hiện xác minh danh tính thì mục này được sử dụng để ghi lại thông tin nhận dạng của người dùng 4) [10/Dec/2010:09:31:17 +0800] Mục thứ 4 là ghi thời gian yêu cầu, định dạng là [ngày/tháng/năm:giờ:phút:giây múi], mục +0800 cuối cùng nghĩa là múi giờ nơi đặt máy chủ là Quận Dongba 5) "NHẬN /.. haizhu_tianhe.xml HTTP/1.1" Đây là thông tin hữu ích nhất trong toàn bộ bản ghi. Đầu tiên, nó cho máy chủ của chúng tôi biết rằng nó đã nhận được yêu cầu GET. Thứ hai, đó là đường dẫn tài nguyên được máy khách yêu cầu. Thứ ba, giao thức được máy khách sử dụng là HTTP/1.1. toàn bộ Định dạng là "%m %U%q %H", là "phương thức yêu cầu/đường dẫn truy cập/giao thức" 6) 200 Đây là mã trạng thái, được máy chủ gửi lại cho máy khách. Nó cho chúng ta biết yêu cầu của máy khách có thành công hay được chuyển hướng hoặc đã gặp phải loại lỗi nào. đã phản hồi thành công. Đối với các yêu cầu của khách hàng, nói chung, giá trị bắt đầu bằng 2 cho biết yêu cầu thành công, giá trị bắt đầu bằng 3 biểu thị chuyển hướng, giá trị bắt đầu bằng 4 cho biết có một số lỗi ở phía máy khách và giá trị bắt đầu bằng 4 cho biết có một số lỗi ở phía máy khách. với 5 cho biết có một số lỗi ở phía máy chủ. Bạn có thể tìm thấy chi tiết trong thông số HTTP (phần RFC2616). 10).[http://www.w3.org/Protocols/rfc2616/rfc2616.txt] 7) 1933 Mục này cho biết máy chủ đã gửi bao nhiêu byte cho máy khách. Khi phân tích nhật ký, những từ này được cộng lại. khổ thơ, bạn có thể biết tổng lượng dữ liệu được máy chủ gửi trong một khoảng thời gian nhất định 8) - HTTP Referenceer: Cho máy chủ biết tôi đang liên kết từ trang nào. Nếu không có giá trị, đó có thể là lý do để mở. trang web một cách trực tiếp. 9) "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)" Điều này chủ yếu ghi lại Thông tin trình duyệt của khách hàng 2 ).error_log error_log là một nhật ký lỗi, ghi lại mọi yêu cầu xử lý sai sót. Vị trí và nội dung của nó được kiểm soát bởi lệnh ErrorLog. Thông thường, khi có lỗi trên máy chủ, bạn hãy kiểm tra nó trước tiên. trích xuất một bản ghi theo ý muốn.
Sao chép mã Mã này như sau:
[Thứ sáu, ngày 10 tháng 12 năm 2010 lúc 15:03:59] [lỗi] [client 218.19.140.242] Tệp không tồn tại: /home/htmlfile/tradedata/favicon.ico
。
Nó cũng được chia thành nhiều mục:
Sao chép mã Mã này như sau:
[Thứ sáu, 10 tháng 12 năm 2010, 15:03:59]
[lỗi]
[khách hàng 218.19.140.242]
Tệp không tồn tại: /home/htmlfile/tradedata/favicon.ico
。
1) [Thứ Sáu 10/12 15:03:59 2010] Ghi lại thời gian xảy ra lỗi. Lưu ý rằng nó khác với định dạng thời gian được ghi trong access_log ở trên. 2) [lỗi] Mục này là mức độ của lỗi. theo hướng dẫn LogLevel Kiểm soát loại lỗi 404 trên thuộc cấp độ lỗi 3) [client 218.19.140.242] Ghi địa chỉ IP của client 4) File không tồn tại: /home/htmlfile/tradedata/favicon.ico Mục này trước tiên mô tả lỗi. Ví dụ: nếu khách hàng truy cập vào một tệp không tồn tại hoặc có đường dẫn không chính xác, thông báo lỗi 404 sẽ được đưa ra.
2. Các lệnh và tập lệnh phân tích nhật ký thực tế.
Sau khi hiểu các định nghĩa khác nhau về nhật ký, đây là một số tập lệnh phân tích nhật ký được tìm thấy trên Internet.
1. Kiểm tra số lượng tiến trình apache ps -aux | grep httpd | wc -l 2. Phân tích nhật ký để kiểm tra số lượng kết nối IP trong ngày cat default-access_log | print $2}' | sắp xếp | uniq -c | sắp xếp -nr 3. Kiểm tra những URL mà IP được chỉ định truy cập vào ngày cat default-access_log | "218.19.140.242" | awk '{print $7}' | sắp xếp | uniq -c | sắp xếp -nr 4. Xem 10 URL được truy cập hàng đầu trong ngày cat default-access_log | { print $7}' | sắp xếp | uniq -c | sắp xếp -nr head -n 10 5. Xem ip được chỉ định đã làm gì default-access_log | grep 218.19.140.242 | awk '{print $1"\t"$8}' | sắp xếp | uniq -c | sắp xếp -nr ít hơn 6. Xem số phút có nhiều lượt truy cập nhất (tìm điểm nóng) awk '{ print $4}' default-access_log |cut -c 14-18|sort|uniq -c|sort -nr|head.
Cuối cùng, bài viết này về giải thích chi tiết và các lệnh phân tích thực tế của tệp nhật ký apache kết thúc ở đây. Nếu bạn muốn biết thêm về giải thích chi tiết và các lệnh phân tích thực tế của tệp nhật ký apache, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng tất cả các bạn ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!