Haproxy không đăng nhập yêu cầu?


11

Vì vậy, tôi đã cấu hình Haproxy để việc ghi nhật ký sẽ thông qua rsyslog và hiện tại, tất cả được kết xuất trong một tệp.

Đó chắc chắn là ghi nhật ký, khi tôi nhận được những thông báo "bắt đầu" đó khi khởi động, nhưng không có yêu cầu HTTP nào cả. Có gì sai với cấu hình của tôi?

haproxy.cfg :

global
        log /dev/log local0 debug
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend webfront
  option  forwardfor
  stats enable
  stats uri /haproxy?statis
  stats realm Haproxy\ Auth
  stats auth user:password
  bind *:80
  timeout client 86400000
  acl is_discourse  hdr_end(host) -i discourse.mydomain.com
  use_backend       discourse     if is_discourse
  use_backend       webserver     if !is_discourse

backend discourse
  balance source
  option forwardfor
  option httpclose
  server server1 127.0.0.1:3080 weight 1 maxconn 1024 check inter 10000

backend webserver
  balance source
  option forwardfor
  option httpclose
  server server2 127.0.0.1:4080 weight 1 maxconn 1024 check inter 10000

Log file :

root@kayak:/var/log/haproxy# tail haproxy.log
Nov 26 21:25:25 kayak haproxy[21646]: Proxy webfront started.
Nov 26 21:25:25 kayak haproxy[21646]: Proxy webfront started.
Nov 26 21:25:25 kayak haproxy[21646]: Proxy discourse started.
Nov 26 21:25:25 kayak haproxy[21646]: Proxy webserver started.
Nov 26 21:28:10 kayak haproxy[21868]: Proxy webfront started.
Nov 26 21:28:10 kayak haproxy[21868]: Proxy discourse started.
Nov 26 21:28:10 kayak haproxy[21868]: Proxy webserver started.
Nov 26 21:30:31 kayak haproxy[22045]: Proxy webfront started.
Nov 26 21:30:31 kayak haproxy[22045]: Proxy discourse started.
Nov 26 21:30:31 kayak haproxy[22045]: Proxy webserver started.

Tôi đã truy cập một số trang máy chủ web giữa các lần khởi động lại và xử lý một vài lỗi 404. Tại sao không có gì hiển thị?

Chỉnh sửa: tập tin conf rsyslog.

/etc/rsyslog.d/49-haproxy.conf:

local0.* -/var/log/haproxy_0.log
if ($programname == 'haproxy') then -/var/log/haproxy/haproxy.log
& ~

1
bạn đã kết thúc giải quyết vấn đề này?
Terence Chow

Câu trả lời:


11

Bạn phải chỉ định nhật ký trong frontend nếu bạn thực sự muốn mọi yêu cầu được ghi lại. Nhưng thường thì điều này là quá mức cần thiết cho máy chủ và đĩa của bạn sẽ đầy ngay lập tức.

frontend webfront
  log /dev/log local0 debug

À, cảm ơn. Tôi sẽ thử cái này càng sớm càng tốt. Điều đó là, tôi cần khắc phục sự cố kết nối với phiên bản Nghị luận, vì vậy nó sẽ chỉ là tạm thời. Có vẻ như tôi không thể ủy quyền nó cho dù tôi có cố gắng thế nào. ( serverfault.com/questions/645031/
Mạnh

2
Tôi đã thử thêm cái này, nhưng nó không đăng nhập thêm. Có lẽ rsyslogkhông được cấu hình đúng? Có cách nào để nói không?
Bạc Quettier

Đối với tôi nó đã làm việc.
Dima Medvedev

rsyslog trong ubfox 14.0.4 dường như được định cấu hình, mặc dù nó không đăng nhập vào /var/log/haproxy.log, theo mặc định, bản ghi cài đặt của tôi sẽ ghi vào / var / log / syslog.
lee

2
cái gì/dev/log
Miranda

7

đăng nhập thông qua nhật ký ổ cắm unix không hoạt động đối với tôi trên rrc 6.7. Bạn có thể thử với conf này. haproxy (làm việc trên 81) yêu cầu http chuyển tiếp tới httpd (làm việc trên 80)

/etc/haproxy/haproxy.cfg

frontend web_front
    log         127.0.0.1    local6
    option httplog

    bind        *:81
    default_backend web_back

backend web_back
    server      web1 127.0.0.1:80

và bạn phải kích hoạt mô-đun rsyslog udp để nhận syslog từ haproxy một conf đơn giản như thế này:

/etc/rsyslog.d/haproxy.conf

$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
local6.* /var/log/haproxy.log

thực hiện một yêu cầu http đến 81 và bạn cũng nhận được một số nhật ký như thế này

# tail -n 1 /var/log/haproxy.log
May 18 13:51:07 localhost haproxy[31617]: 127.0.0.1:38074 [18/May/2016:13:51:06.999] web_front web_back/web1 0/0/0/2/2 404 466 - - ---- 1/1/0/1/0 0/0 "GET /how-are-you HTTP/1.1"

5

Điều này có thể được gây ra bởi nó chạy trong nhà tù chroot. Bạn sẽ cần đảm bảo rằng rsyslog cũng đang tạo một ổ cắm dgram bên trong nhà tù chroot (ví dụ / var / lib / haproxy / dev / log). Trỏ chỉ thị nhật ký của bạn vào ổ cắm / dev / log và bạn sẽ thấy tốt.

Tôi đã dành một vài giờ để cố gắng tìm ra điều này, vì HAproxy sẽ không cho bạn biết bất cứ điều gì sai ngoài việc đăng nhập không hoạt động.


3

Liên kết này giải thích nó hoàn hảo.

Nếu bạn nhìn vào đầu /etc/haproxy/haproxy.cfg, bạn sẽ thấy một cái gì đó như:

global
log 127.0.0.1 local2
[...]

Điều này có nghĩa là HAProxy sẽ gửi tin nhắn của mình tới rsyslog vào ngày 127.0.0.1. Nhưng theo mặc định, rsyslog không lắng nghe bất kỳ địa chỉ nào, do đó có vấn đề.

Hãy chỉnh sửa /etc/rsyslog.conf và bỏ ghi chú những dòng này:
$ModLoad imudp
$UDPServerRun 514

Điều này sẽ làm cho rsyslog nghe trên cổng UDP 514 cho tất cả các địa chỉ IP. Tùy chọn bạn có thể giới hạn ở 127.0.0.1 bằng cách thêm:
$UDPServerAddress 127.0.0.1

Bây giờ hãy tạo tệp /etc/rsyslog.d/haproxy.conf chứa:

local2.* /log/haproxy.log

Tất nhiên bạn có thể cụ thể hơn và tạo các tệp nhật ký riêng biệt theo cấp độ của thông báo:

local2.=info /log/haproxy-info.log
local2.notice /log/haproxy-allbutinfo.log

Sau đó khởi động lại rsyslog và xem các tệp nhật ký được tạo:
# service rsyslog restart

Nếu bạn thủ công tạo tệp nhật ký /log/haproxy-allbutinfo.log/log/haproxy-info.logđừng quên đổi chủ sở hữu thànhsyslog:adm

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.