2012-10-03 41 views
12

Tôi muốn nhận được véc ni để đăng nhập yêu cầu. Tôi tìm thấy lệnh varnishlog -a -w /var/log/varnish.log, nhưng nó không ghi lại bất cứ điều gì.Cách thiết lập ghi nhật ký Varnish?

Sau đó, tôi thấy rằng Varnish không ghi để đăng nhập theo mặc định. Tuy nhiên tôi không thể tìm thấy các tùy chọn cấu hình để ghi nhật ký.

+1

Cũng lưu ý khi sử dụng varnishlog -w với phiên bản <3.0.3, bạn phải khởi động lại sau mỗi lần khởi động lại véc ni. – Doomsday

Trả lời

22

Nếu bạn muốn ghi lại các yêu cầu HTTP trong NCSA Common Log Format bạn cần sử dụng varnishncsa. Trên CentOS/RedHat, gói RPM Varnish bao gồm một tập lệnh init varnishncsa mà bạn có thể sử dụng để bắt đầu ghi nhật ký. Theo mặc định, nhật ký sẽ ghi lại thành logfile="/var/log/varnish/varnishncsa.log".

Ngoài ra nếu bạn muốn phục vụ nhiều máy chủ khác nhau thông qua cài đặt Varnish đơn lẻ, bạn cũng sẽ muốn bao gồm tên máy chủ lưu trữ trong nhật ký. Điều này có thể được thực hiện với các thiết lập sau đây trong /etc/sysconfig/varnishncsa

DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'" 

Xin lưu ý rằng phương pháp mô tả trong liên kết bởi Anshu chỉ ghi lại các yêu cầu đó được chuyển qua bởi Varnish đến các máy chủ backend. Yêu cầu truy cập bộ nhớ cache sẽ không bao giờ được ghi lại (trước Varnish 5.0 - xem bên dưới). Do đó các bản ghi HTTPD được thu thập theo cách này không thể được sử dụng để phân tích thống kê.

Cập nhật: Như @VikrantPogula đã đề cập, như Varnish 5.0, tất cả các yêu cầu của khách hàng đều được ghi lại - bao gồm lần truy cập bộ nhớ cache. Đây là hành vi mặc định và có thể được bật rõ ràng bằng cách sử dụng công tắc -c.

+20

Để thực sự cho phép khai thác gỗ trên Ubuntu: chỉnh sửa '/ etc/default/varnishncsa' bỏ ghi chú' # VARNISHNCSA_ENABLED = 1' chạy 'dịch vụ sudo varnishncsa restart' – George

+0

tôi đã không thể sử dụng tùy chọn -F trong '/ etc/default/varnishncsa' (Ubuntu 14.04), có lẽ vì các dấu ngoặc xử lý vỏ theo cách lạ. Khi tôi cố gắng khởi động lại dịch vụ thông qua 'sudo service varnishncsa restart', các tùy chọn sử dụng cho véc ni được hiển thị nhưng dịch vụ không được khởi động. Có vẻ như một lỗi chưa được giải quyết cho tôi, xem: http: // giantdorks.org/alain/workaround-for-broken-varnishncsa-logging-do-shell-mishandling-of-spaces-in-log_format-biến/và https://bugs.debian.org/cgi-bin/bugreport.cgi ? bug = 657449 – Hirnhamster

3

Để trả lời câu trả lời của Ketola, bạn có thể có nhật ký varnishncsa ngay cả khi yêu cầu truy cập Cache, bằng cách chuyển cờ -c. Điều này sẽ cho phép bạn sử dụng nhật ký HTTPD để phân tích số liệu thống kê.

Ví dụ: varnishncsa -c -a -w ~/varnish.log sẽ viết yêu cầu bộ nhớ cache hit để các tập tin ở định dạng NCSA mặc định

6

Metrics trong Varnish là một khu vực chung mà mọi người phải vật lộn với.

Khá dễ dàng để có được một số chỉ số yêu cầu tắt nhưng theo dõi tổng thể theo thời gian thường liên quan đến việc sử dụng varnishncsa. Đây là một guide on Varnish installation bao gồm thiết lập hệ mét

+0

cảm ơn bạn :) '' '' '' '' ' –

1

Kể từ khi tôi hạ cánh ở đây và đề nghị cố định không giúp:

varnishncsa.log tôi hoàn toàn trống rỗng và quá trình này được chạy.

Nó bật ra, rằng tôi HAD ĐỂ xác định định dạng nhật ký (bất kỳ định dạng nào).

Vì bản thân cái nhìn sâu sắc này không khắc phục được tập lệnh init của tôi, tôi đã sửa nó bằng cách sử dụng this strategy.

Các vấn đề liên quan