Most telepítettem haproxy tesztkiszolgáló.

Van rá mód, hogy a naplókat egy helyi fájlba írja, a syslog helyett?

Ez csak tesztelésre szolgál, ezért nem akarom elkezdeni a megnyitást portok / a syslog elrontása az összes tesztadattal.

Sajnos az egyetlen információ, amelyet találok, a syslog szerverre való bejelentkezés körül forog.

Megpróbáltam használni:

log /home/user/ha.log local0 

a konfigurációmban. De ez azt mondta nekem:

[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2) 

Amikor újraindítottam. Így hoztam létre a fájlt a következővel: touch /home/user/ha.log és újraindítottam, melyik pillanatban kaptam meg:

[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111) 

Ez lehetséges, vagy konfigurálnom kell a syslogot stb., hogy lássam a tesztadataimat?

Megjegyzések

  • Nem ' nem gondolom, hogy a HAProxy be tud jelentkezni egy fájlba, és gyanítom, hogy ennek oka az, hogy a lemezre írások blokkoló műveletek. Miért nem akarja valóban használni a syslogot? A Config nem olyan trükkös. Helyi létesítményt rendelhet a HAProxy szolgáltatáshoz, és beállíthatja a syslog démont úgy, hogy ezeket a bejegyzéseket egy másik fájlba írja, és ne más syslog fájlokba (vagy hálózati adatfolyamokba), ha ' nem szeretné, ha a HAProxy naplók ne keverednének minden mással.

Válasz

A Haproxy egyszerűen nem támogatja fájlokba való bejelentkezés. A dokumentációban ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ) leírtak szerint a “log” utasítás első paraméterként egy cím. Ha ez a “sa fájl, akkor” unix socket, és a HAProxy syslog formátumban fog szólni ehhez a sockethez. A Haproxy úgy lett kialakítva, hogy válaszolhat a proxy kérésekre, nem fájlok írására, a naplófájlok írását a syslogra delegálja . Ha nem akar rendetlenséget folytatni a gépével, telepítheti például a logstash alkalmazást és futtathatja: logstash -e "input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }" , és hozzáadhatja: log /tmp/haprxoy_log.sock In a haproxy.cfg fájlod teszteléséhez.

Hozzászólások

  • I ' m egyre " E: Nem található a csomag logstash ". A logstash eltávolításra került az ubuntuból?
  • @ user568021 úgy tűnik, hogy a logstash nincs az ubuntuban, de a rugalmas (logstash ' s fenntartó) talál megfelelő forrást. Ezenkívül a logstash egy java szoftver, ezért futtathatja azt egy JRE-t futtató jar fájl letöltésével (amelyet az ubuntu szolgáltat).

Válasz

Megváltoztathatja a haproxi napló konfigurációs fájlt a /etc/rsyslog.d/ alatt, hogy a fájlt a kívánt útvonalra irányítsa. Nem biztos más terjesztésben. Számomra “Debian-t használok. Megváltoztattam a /etc/rsyslog.d/49-haproxy.conf -et /var/log/haproxy/haproxy.log,

A /etc/logrotate.d/haproxy fájlban a napló elérési útját is frissítenie kell az új elérési útra. Ezáltal az újonnan konfigurált elérési útvonalon a gzip.

Ezután indítsa újra az rsyslog.service szolgáltatást.

sudo systemctl restart rsyslog.service 

Most haproxy.log.* fájl a /var/log/haproxy/ könyvtárban lesz.

Megjegyzések

  • Hogyan hozhatok létre külön naplózza az olyan hibákat, mint a /var/log/haproxy-errors.log, az eredeti haproxy.log befolyásolása nélkül?

Válasz

Mivel a 1.9 HAProxy verzió támogatja a stdout naplózást és stderr.

Ezt szem előtt tartva elég triviális egy fájlba csatolni.

# change haproxy.cfg file with the following global log stdout local0 debug defaults log global option httplog 

És akkor egyszerűen futtathatja a HAProxy-t így:

haproxy -f haproxy.cfg > haproxy.log 2>&1 & 

Mint valószínűleg tudja, hogy > csövek stdout a haproxy.log fájlba, majd a 2>&1 csövek stderr ugyanazt a fájlt. A & kifejezéssel ér véget, amely háttérbe szorítja a folyamatot.

Lehet rajongóbbá válni, és megpróbálhat beállítani egy szkriptet a haproxy ilyesmivel:

#!/bin/bash # mini launcher kill -9 `cat /home/user/haproxy.pid` /home/user/haproxy -f /home/haproxy.cfg > /home/user/haproxy.log 2>&1 & echo $! > /home/user/haproxy.pid 

Kemény, amint valószínűleg meg tudja mondani … nem ajánlott.

Szerkesztés: A fájlokba való naplózás korábban blokkoló esemény volt, tehát nem ajánlott, kifejezetten a HAProxy-hoz. A HAProxy csapata a fent hivatkozott kiadási bejegyzésen alaposan megvilágította, hogy ez már nem így van .

Ezt a kérést eléggé megkaptuk, és egy kis időt töltöttünk a megvalósítás legjobb módjának megtervezésével – blokkolás nélkül -, és örömmel jelentjük be, hogy megtettük talált megoldást!

Megjegyzések

  • miért jelentkezik be az stdout / err-be " nem ajánlott "? ez a véleményed, vagy van hivatalos dokumentáció az ezzel kapcsolatos problémákról?
  • @Florian, igazad van. A múltbeli viselkedés félrevezett. Nem gátolja a legutóbbi kiadásokat, így a mondat véleményszerű (és téves) volt. Szerkesztette a választ. Köszönöm!

Válasz

Megpróbálta beállítani a felhasználói otthoni könyvtárban, a haproxy-nak nincs engedélye a felhasználó otthoni könyvtárához való hozzáféréshez, így ez problémát okozhat.

Ehelyett próbáljon más helyen létrehozni könyvtárat a /var/<directory>

log /var/<directory>/ha.log 

Megjegyzések

  • Kipróbáltam a sudo touch /var/log/ha.log és hozzáadtam a log /var/log/ha.log local0 a konfigurációmhoz, de ugyanazt a hibát kaptam, mint fent. li> Megpróbáltam kihagyni, de amikor újraindítottam, meglett a 'log' expects <address> and <facility> as arguments. hiba, ezért szükségem volt valamire. A <facility> must be one of the 24 standard syslog facilities utasítások szerint (ami szerintem része lehet a problémának)

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük