Saya baru saja menginstal haproxy di server pengujian saya.
Apakah ada cara untuk membuatnya menulis log ke file lokal, daripada syslog?
Ini hanya untuk pengujian jadi saya tidak ingin memulai membuka port / mengacaukan syslog dengan semua data pengujian saya.
Sayangnya, satu-satunya informasi yang saya dapat temukan berkisar pada masuk ke server syslog.
Saya mencoba menggunakan:
log /home/user/ha.log local0
dalam konfigurasi saya. Tapi itu memberitahuku:
[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)
Ketika saya memulai kembali. Jadi saya membuat file dengan touch /home/user/ha.log
dan memulai kembali pada titik yang saya dapatkan:
[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)
Apakah ini mungkin, atau apakah saya harus mengkonfigurasi syslog dll untuk melihat data pengujian saya?
Jawaban:
Haproxy sama sekali tidak mendukung logging ke file. Sebagaimana dinyatakan dalam dokumentasi ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), pernyataan "log" mengambil parameter pertama sebagai alamat. Jika itu file, itu adalah unix socket dan HAProxy akan berbicara dalam format syslog ke socket ini. Haproxy dirancang seperti ini karena responsabilitasnya adalah untuk permintaan proxy, bukan menulis file, ia mendelegasikan penulisan file log ke syslog. Jika Anda tidak ingin main-main dengan mesin Anda, Anda dapat misalnya menginstal logstash dan menjalankan:
logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }'
dan menambahkan:log /tmp/haprxoy_log.sock
Di haproxy.cfg Anda untuk mengujinya.sumber
Anda dapat mengubah file konfigurasi log haproxy di bawah
/etc/rsyslog.d/
untuk mengarahkan file ke jalur yang Anda sukai. Tidak yakin tentang distribusi lainnya. Bagi saya, saya menggunakan Debian. Saya berubah/etc/rsyslog.d/49-haproxy.conf
untuk menunjuk ke/var/log/haproxy/haproxy.log
,Anda juga harus memperbarui jalur log
/etc/logrotate.d/haproxy
ke jalur baru. Sehingga itu akan memutar dan kompres logfile di jalur yang baru dikonfigurasi menggunakangzip
.Kemudian mulai kembali rsyslog.service.
Sekarang
haproxy.log.*
file akan berada di/var/log/haproxy/
direktori.sumber
Anda telah mencoba mengonfigurasi dalam direktori home pengguna, haproxy tidak memiliki izin untuk mengakses direktori home pengguna, sehingga menyebabkan masalah.
Alih-alih mencoba di lokasi lain, buat direktori di
/var/<directory>
sumber
sudo touch /var/log/ha.log
dan menambahkanlog /var/log/ha.log local0
ke konfigurasi saya, tetapi mendapat kesalahan yang sama seperti di atasconnection refused
.'log' expects <address> and <facility> as arguments.
sehingga diperlukan sesuatu di sana. Menurut instruksi<facility> must be one of the 24 standard syslog facilities
(yang saya pikir mungkin menjadi bagian dari masalah)