Episode ini membuat HAProxy terlihat: logging via syslog dengan format yang bisa dibaca, halaman statistik dan stats socket untuk melihat kondisi real-time, serta dasar membaca metrik seperti request rate, response time, dan status kesehatan server.

Load balancer yang bagus harus transparan. Kalian harus tahu request apa yang masuk, ke server mana diteruskan, berapa lama prosesnya, dan apakah server masih sehat. Episode 7 membangun jendela observasi itu.
Kalian akan mengaktifkan logging HTTP yang informatif, membuka halaman statistik, dan memakai stats socket untuk mengambil data tanpa GUI. Metrik yang kalian pelajari di sini adalah cikal bakal SLO yang dibahas di episode 21.
HAProxy menulis log melalui syslog. Aktifkan logging di section global dan defaults:
global
log /dev/log local0
log /dev/log local1 notice
defaults
mode http
option httplog
log global
option dontlognullDirektif log /dev/log local0 mengarahkan log ke syslog lokal, dan option httplog mengaktifkan format log HTTP yang kaya informasi. option dontlognull mencegah log untuk koneksi kosong yang tidak menghasilkan request.
Satu baris log HTTP terlihat seperti ini:
127.0.0.1:52314 [10/Aug/2026:08:15:30.001] web_front/2: web_back/web1 0/0/0/12/12 200 567 - - ---- 1/1/1/1/0 0/0Informasi penting di dalamnya:
127.0.0.1:52314.web_back/web1.12 milidetik total.200.567 byte.Cara termudah melihat kondisi HAProxy adalah halaman statistik:
listen stats
bind *:8404
mode http
stats enable
stats uri /stats
stats refresh 10s
stats auth admin:s3cret
frontend web_front
bind *:80
mode http
default_backend web_back
backend web_back
balance roundrobin
server web1 127.0.0.1:8080 check
server web2 127.0.0.1:8081 checkDirektif stats enable menyalakan halaman, stats uri /stats menentukan path-nya, dan stats auth admin:s3cret melindunginya dengan login. Buka http://localhost:8404/stats di browser untuk melihat tabel frontend dan backend secara real-time.
Di halaman tersebut, perhatikan kolom-kolom ini:
Stats socket memberi akses command-line ke runtime HAProxy, dasar dari runtime API di episode 9:
global
stats socket /run/haproxy.sock mode 660 level admin
stats timeout 30sSetelah reload, socket bisa dipakai dengan socat:
echo "show stat" | socat stdio /run/haproxy.sock
echo "show info" | socat stdio /run/haproxy.sockPerintah echo "show stat" | socat stdio /run/haproxy.sock mengembalikan tabel statistik dalam format CSV, dan echo "show info" | socat stdio /run/haproxy.sock menampilkan informasi proses.
Output show stat berbentuk CSV dengan baris pertama sebagai nama kolom. Untuk melihat status server saja, filter dengan awk atau cut:
echo "show stat" | socat stdio /run/haproxy.sock \
| awk -F, '/web_back/{print $1, $2, $18}'Baris tersebut menampilkan nama backend, nama server, dan kolom status. Membiasakan membaca CSV ini sangat membantu untuk otomasi di episode 18.
Dua angka yang paling sering dikepo:
Req antar dua pengambilan sample.Keduanya memberi gambaran cepat apakah sistem sehat atau sedang di bawah tekanan.
Health check menghasilkan status per server. Pola yang harus diwaspadai:
fall dan rise.echo "show servers state web_back" | socat stdio /run/haproxy.sockecho "show servers state web_back" | socat stdio /run/haproxy.sock menampilkan state server dalam format yang bisa diprogram.
Episode 7 membuat HAProxy bisa diintai: log yang informatif, halaman statistik yang intuitif, dan socket yang bisa diprogram. Ini fondasi observability yang akan diperdalam di episode 18.
Inti yang harus dibawa pulang:
option httplog memberi log HTTP yang kaya informasi.socat.Di episode 8 selanjutnya kita akan membahas SSL/TLS & security — TLS termination dan re-encryption, dukungan HTTP/2, tuning cipher suite dan HSTS, serta manajemen sertifikat yang benar.