haproxy लॉग इन syslog करने के लिए


13

मैंने haproxy 1.5 को apt-get के माध्यम से ubuntu 14.04 पर http://haproxy.debian.net/ केppa:vbernat/haproxy-1.5 अनुसार स्थापित किया

समस्या /var/log/syslogइसके बजाय लॉगिंग है/var/log/haproxy.log

सेटअप मूल रूप से डिफ़ॉल्ट है:

/etc/haproxy/haproxy.cfg

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

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Default ciphers to use on SSL-enabled listening sockets.
    # For more information, see ciphers(1SSL).
    ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
        ssl-default-bind-options no-sslv3

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

/etc/rsyslog.d

# Create an additional socket in haproxy's chroot in order to allow logging via
# /dev/log to chroot'ed HAProxy processes
$AddUnixListenSocket /var/lib/haproxy/dev/log

# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy.log
&~

शायद यह लिंक आपकी मदद करे: kvz.io/blog/2010/08/11/haproxy-log
Federico Sierra

जवाबों:


21

बहुत मुश्किल है। :-) और यहाँ चाल जवाब है:

फ़ाइल को /etc/rsyslog.dइसमें दर्ज करें कहते हैं कि हाइप्रोक्सी लॉग इन /var/log/haproxy.logकरें लेकिन यह rsyslog को पुनरारंभ किए बिना प्रभावी नहीं होगा:

service rsyslog restart

9

डिफ़ॉल्ट haproxy.confफ़ाइल ग्लोबल सेटिंग्स के तहत स्पष्ट निर्देश प्रदान करती है - global। यहाँ मैं इसे आपके लिए पेस्ट कर रहा हूँ -

# ------------------------------------------------- --------------------
# वैश्विक व्यवस्था
# ------------------------------------------------- --------------------
वैश्विक
    # इन संदेशों को /var/log/haproxy.log में आप समाप्त करेंगे
    # करने की जरूरत है:
    #
    # 1) नेटवर्क लॉग इवेंट स्वीकार करने के लिए syslog कॉन्फ़िगर करें। यह हो गया
    # SYSLOGD_OPTIONS में '-r' विकल्प जोड़कर
    # आदि / sysconfig / syslog
    #
    # 2) /var/log/haproxy.log पर जाने के लिए स्थानीय 2 ईवेंट कॉन्फ़िगर करें
    # फ़ाइल। निम्नलिखित जैसी एक पंक्ति को इसमें जोड़ा जा सकता है
    # आदि / sysconfig / syslog
    #
    #

मेरे मामले में, उदाहरण के लिए, मैं CentOS 6.6, उसी syslogd सर्वर में haproxy चला रहा हूं और /var/log/haproxy.log पर लॉग इन करने के लिए निम्न कार्य करना था:

  1. नीचे पंक्ति में जोड़ें /etc/rsyslog.d/haproxy.conf-

    स्थानीय 2। * /var/log/haproxy.log
  2. सर्वर पर syslogd लॉगिंग सक्षम करें -

# यूडीपी syslog रिसेप्शन प्रदान करता है
$ मोडलड इमडप
$ UDPServerRun 514
$ UDPServerAddress 127.0.0.1

2
दूसरे भाग में, दूसरे चरण में (सर्वर पर syslogd लॉगिंग सक्षम करें); आप फ़ाइल में इन सेटिंग्स को बदलते हैं /etc/rsyslog.conf। उसके बाद, rsyslog सेवा को फिर से शुरू करें: service rsyslog restart
Edenshaw

6

इस लाइन से टिप्पणी करें /etc/rsyslog.d

# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy.log

1
/etc/rsyslog.dएक निर्देशिका है, एक फ़ाइल नहीं है। मुझे उबंटू पर 1.5 बनाम 1.6 के अंतर के बारे में निश्चित नहीं है, लेकिन फ़ाइल /etc/rsyslog.d/49-haproxy.conf1.6 की स्थापना के बाद मौजूद है। इसकी निम्नलिखित 3 पंक्तियाँ हैं: $AddUnixListenSocket /var/lib/haproxy/dev/log \n if $programname startswith 'haproxy' then /var/log/haproxy.log \n &~(मैंने नई पंक्तियों को निरूपित करने के लिए "\ n" जोड़ा)
fideloper

3

मुख्य समस्या यह है कि वर्णसंबंधित हाइप्रोक्सी प्रवेश नहीं कर पाएगा /dev/logऔर इस समस्या को दरकिनार करने के लिए आप या तो:

  • UDP सॉकेट (आमतौर पर पोर्ट 514 पर) को अन्य संदेशों में वर्णित के रूप में सुनने के लिए syslog सक्षम करें
  • निर्देशिका बनाएं /var/lib/haproxy/devऔर /devबाइंड विकल्प पर माउंट करें/var/lib/haproxy/dev

यह या तो तरीके से काम करता है।

[संपादित करें]

3 साल बाद कुछ बदला है। हाप्रोसी अब एक फाइल बनाता है जिसे कहा जाता है /etc/rsyslog.d/49-haproxy। फ़ाइल में एक पंक्ति है:

$AddUnixListenSocket /var/lib/haproxy/dev/log

इस मामले में, चिरोट वातावरण का उपयोग कर सकते हैं /dev/log


आप केवल क्रोकेट में लॉग सॉकेट भी जोड़ सकते हैं। rsyslog में कई हो सकते हैं। (मैं एक उदाहरण देता हूँ लेकिन यह वर्षों से है)
फ्लोरियन हीगल

यह अब HAProxy के नए संस्करणों के लिए मामला नहीं है, मैं संस्करण 1.5.4 चला रहा हूं एक चिरोलेटेड कॉन्फ़िगरेशन के साथ लेकिन लॉगिंग करने के लिए /dev/log
ओवरब्रिड

@Overbryd हाँ और नहीं। नया haproxy /etc/rsyslog.d में एक फ़ाइल जोड़ता है, निम्नलिखित कथन को अंदर व्हाइट करें: $ AddUnixListenSocket / var / lib / haproxy / dev / log मैं तदनुसार अपनी टिप्पणी संपादित करने वाला हूं।
मैक्सडामो सेप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.