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 alog /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)