Thứ Ba, 10 tháng 3, 2026

Các câu lệnh quản trị HAProxy, Keepalived, Pacemaker

Dưới đây là tài liệu thực hành theo kiểu dễ hiểu, dùng được ngay trên Oracle Linux 7, cho 3 nhóm:

  • HAProxy

  • Keepalived (bạn ghi keepalive, trên Linux tên dịch vụ/công cụ đúng là keepalived)

  • Pacemaker/PCS

Tôi sẽ trình bày theo đúng các nội dung bạn yêu cầu:

  1. Giám sát trạng thái tiến trình, port

  2. Kiểm tra tiến trình, port, file cấu hình

  3. Bật, tắt tiến trình

  4. Kiểm tra lỗi

  5. Các lỗi thường gặp, nguyên nhân, biện pháp xử lý, biện pháp phòng ngừa từ sớm từ xa


I. Tổng quan dễ hiểu

1. HAProxy là gì?

HAProxy là bộ cân bằng tải / reverse proxy.

Ví dụ dễ hiểu:

  • Người dùng truy cập vào 1 IP VIP

  • HAProxy nhận request

  • HAProxy chia request sang nhiều backend phía sau

Giống như:

  • 1 lễ tân đứng ở cửa

  • Có khách vào thì lễ tân điều đến quầy 1, quầy 2, quầy 3


2. Keepalived là gì?

Keepalived dùng để quản lý VIP (Virtual IP) giữa 2 node.

Ví dụ:

  • Node1 giữ VIP 10.51.246.35

  • Node2 chờ dự phòng

  • Nếu Node1 chết, VIP nhảy sang Node2

Giống như:

  • 1 chìa khóa VIP

  • Bình thường trưởng ca cầm

  • Trưởng ca ngã thì phó ca cầm ngay


3. Pacemaker là gì?

Pacemaker là công cụ HA cluster chuyên nghiệp hơn keepalived.

Nó không chỉ quản lý VIP, mà còn quản lý:

  • VIP

  • dịch vụ HAProxy

  • Tomcat

  • filesystem

  • database resource

  • thứ tự start/stop

  • failover logic

Giống như:

  • Keepalived là “giao chìa khóa VIP”

  • Pacemaker là “cả đội điều phối vận hành”


II. HAProxy trên Oracle Linux 7


1. Giám sát trạng thái tiến trình, port

1.1 Kiểm tra dịch vụ HAProxy có đang chạy không

systemctl status haproxy

Ví dụ kết quả

● haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled)
Active: active (running) since Mon 2026-03-10 09:15:20 +07; 2h ago
Main PID: 12345 (haproxy)

Giải thích

  • Loaded: dịch vụ đã được systemd nhận diện

  • enabled: bật tự khởi động cùng OS

  • active (running): đang chạy tốt

  • Main PID: PID chính của HAProxy


1.2 Kiểm tra process HAProxy

ps -ef | grep haproxy | grep -v grep

Ví dụ kết quả

root 12345 1 0 09:15 ? 00:00:03 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
haproxy 12346 12345 0 09:15 ? 00:00:20 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid

Giải thích

  • Dòng đầu thường là process cha

  • Dòng sau là worker

  • Nếu không ra gì thì HAProxy chưa chạy


1.3 Kiểm tra HAProxy đang nghe port nào

ss -lntp | grep haproxy

Hoặc:

netstat -lntp | grep haproxy

Ví dụ kết quả

LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("haproxy",pid=12346,fd=5))
LISTEN 0 128 0.0.0.0:8404 0.0.0.0:* users:(("haproxy",pid=12346,fd=7))

Giải thích

  • Port 80: frontend web

  • Port 8404: trang thống kê stats

  • Nếu cấu hình có port mà lệnh này không thấy, nghĩa là HAProxy chưa bind thành công


2. Kiểm tra tiến trình, port, file cấu hình

2.1 Kiểm tra file cấu hình chính

ls -l /etc/haproxy/haproxy.cfg

2.2 Xem nhanh file cấu hình

cat /etc/haproxy/haproxy.cfg

Hoặc:

less /etc/haproxy/haproxy.cfg

2.3 Kiểm tra cú pháp cấu hình trước khi restart

haproxy -c -f /etc/haproxy/haproxy.cfg

Ví dụ kết quả đúng

Configuration file is valid

Ví dụ lỗi

[ALERT] 069/101500 (2345) : parsing [/etc/haproxy/haproxy.cfg:25] : unknown keyword 'defualt_backend'

Giải thích

  • Bạn gõ nhầm default_backend thành defualt_backend

  • Đây là lệnh rất quan trọng, nên chạy trước khi reload/restart


2.4 Kiểm tra PID file

cat /var/run/haproxy.pid

3. Bật, tắt tiến trình

Bật HAProxy

systemctl start haproxy

Dừng HAProxy

systemctl stop haproxy

Khởi động lại

systemctl restart haproxy

Reload cấu hình

systemctl reload haproxy

Bật tự khởi động cùng OS

systemctl enable haproxy

Bỏ tự khởi động

systemctl disable haproxy

4. Kiểm tra lỗi

4.1 Xem log dịch vụ

Trên Oracle Linux 7 thường xem qua:

journalctl -u haproxy -xe

Xem realtime:

journalctl -u haproxy -f

4.2 Nếu cấu hình rsyslog riêng cho HAProxy

Có thể log ở:

tail -f /var/log/haproxy.log

Hoặc:

grep -i haproxy /var/log/messages

4.3 Kiểm tra backend có sống không

Ví dụ backend là ứng dụng ở port 8080:

curl -I http://10.51.246.33:8080
curl -I http://10.51.246.34:8080

Nếu backend chết thì HAProxy vẫn chạy, nhưng người dùng có thể bị:

  • 502

  • 503

  • timeout


5. Các lỗi thường gặp của HAProxy

Lỗi 1: HAProxy không start được

Dấu hiệu

systemctl status haproxy

ra:

Active: failed

Nguyên nhân

  • Sai cú pháp file cấu hình

  • Port đã bị chương trình khác chiếm

  • Backend/server khai báo sai format

Xử lý

haproxy -c -f /etc/haproxy/haproxy.cfg
ss -lntp | grep :80

Phòng ngừa

  • Luôn chạy haproxy -c -f ... trước restart

  • Quản lý thay đổi qua checklist/change request


Lỗi 2: 503 Service Unavailable

Nguyên nhân

  • Tất cả backend đều down

  • Health check fail

Kiểm tra

curl -I http://backend_ip:backend_port
grep -i "down" /var/log/haproxy.log

Xử lý

  • Bật lại backend

  • Kiểm tra firewall

  • Kiểm tra port ứng dụng

Phòng ngừa

  • Cấu hình health check chuẩn

  • Giám sát backend riêng, không chỉ giám sát HAProxy


Lỗi 3: 502 Bad Gateway

Nguyên nhân

  • Backend trả lỗi không hợp lệ

  • Kết nối backend timeout

  • Ứng dụng treo, reset connection

Xử lý

  • Kiểm tra log ứng dụng backend

  • Tăng timeout nếu hợp lý

  • Xem CPU/RAM backend


Lỗi 4: HAProxy chạy nhưng không nghe port

Nguyên nhân

  • bind sai IP

  • Port bị chiếm

  • SELinux/firewalld chặn

Kiểm tra

ss -lntp | grep haproxy
getenforce
firewall-cmd --list-all

Phòng ngừa

  • Chuẩn hóa port matrix

  • Có tài liệu port dùng cho từng dịch vụ


III. Keepalived trên Oracle Linux 7


1. Giám sát trạng thái tiến trình, port, VIP

1.1 Kiểm tra dịch vụ

systemctl status keepalived

Ví dụ kết quả

● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled)
Active: active (running)

1.2 Kiểm tra process

ps -ef | grep keepalived | grep -v grep

1.3 Kiểm tra VIP đang nằm trên node nào

Ví dụ VIP là 10.51.246.35

ip addr show | grep 10.51.246.35

Ví dụ kết quả

inet 10.51.246.35/24 scope global secondary eth0

Giải thích

  • Nếu thấy VIP ở node này, node này đang là MASTER

  • Nếu không thấy, node này đang là BACKUP


2. Kiểm tra file cấu hình

File cấu hình

ls -l /etc/keepalived/keepalived.conf
cat /etc/keepalived/keepalived.conf

Nội dung mẫu

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.51.246.35
}
}

Giải thích dễ hiểu

  • state MASTER: node chính

  • interface eth0: card mạng gắn VIP

  • virtual_router_id 51: ID nhóm VRRP, 2 node phải giống nhau

  • priority 100: node nào cao hơn thì ưu tiên làm MASTER

  • advert_int 1: cứ 1 giây gửi gói VRRP báo “tôi còn sống”

  • virtual_ipaddress: VIP


3. Bật, tắt tiến trình

systemctl start keepalived
systemctl stop keepalived
systemctl restart keepalived
systemctl enable keepalived
systemctl disable keepalived

4. Kiểm tra lỗi

Xem log keepalived

journalctl -u keepalived -xe

Hoặc:

grep -i keepalived /var/log/messages

Xem realtime:

journalctl -u keepalived -f

5. Các lỗi thường gặp của Keepalived

Lỗi 1: VIP không lên

Nguyên nhân

  • Sai tên interface

  • Cấu hình lỗi

  • Keepalived không chạy

  • IP bị trùng

Kiểm tra

ip a
systemctl status keepalived
journalctl -u keepalived -xe

Xử lý

  • Sửa đúng tên NIC, ví dụ eth0, ens192

  • Restart keepalived

  • Kiểm tra IP conflict

Phòng ngừa

  • Luôn xác nhận interface bằng ip a

  • Ghi rõ NIC/VLAN trong tài liệu triển khai


Lỗi 2: VIP nhảy qua lại liên tục (flapping)

Nguyên nhân

  • Network chập chờn

  • Priority 2 node cấu hình quá sát

  • Cả hai node đều nghĩ mình là MASTER

  • Multicast VRRP bị chặn

Xử lý

  • Kiểm tra network

  • Tăng chênh lệch priority, ví dụ 100 và 90

  • Kiểm tra firewall

Phòng ngừa

  • Test failover trước production

  • Theo dõi log VRRP định kỳ


Lỗi 3: Keepalived sống nhưng app chết

Giải thích

Keepalived chỉ giữ VIP, không tự biết app bên dưới có chết không nếu không cấu hình script check.

Xử lý

Dùng vrrp_script để kiểm tra HAProxy/Tomcat.

Ví dụ:

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
weight -20
}

Phòng ngừa

  • Không chỉ kiểm tra card mạng

  • Phải kiểm tra app/service thật


IV. Pacemaker/PCS trên Oracle Linux 7


1. Giám sát trạng thái tiến trình, cluster, port

1.1 Kiểm tra dịch vụ pcsd

systemctl status pcsd

1.2 Kiểm tra tổng trạng thái cluster

pcs status

Ví dụ kết quả

Cluster name: haproxy-cluster
Stack: corosync
Current DC: node1 (version 1.1.23)
2 nodes configured
2 resources configured

Online: [ node1 node2 ]

Full list of resources:
vip_haproxy (ocf::heartbeat:IPaddr2): Started node1
haproxy_srv (systemd:haproxy): Started node1

Giải thích

  • Current DC: node điều phối hiện tại

  • Online: node nào đang online

  • vip_haproxy Started node1: VIP đang ở node1

  • haproxy_srv Started node1: HAProxy cũng chạy ở node1


1.3 Kiểm tra node cluster

pcs cluster status
pcs cluster status nodes

1.4 Kiểm tra quorum

pcs quorum status

2. Kiểm tra tiến trình, port, file cấu hình

2.1 Kiểm tra cấu hình cluster

pcs config

2.2 Xem danh sách resource

pcs resource show

2.3 Xem chi tiết 1 resource

pcs resource show vip_haproxy

2.4 Kiểm tra corosync

systemctl status corosync

3. Bật, tắt tiến trình

Bật/dừng pcsd

systemctl start pcsd
systemctl stop pcsd
systemctl restart pcsd

Dừng cluster trên 1 node

pcs cluster stop node1

Dừng cluster toàn bộ

pcs cluster stop --all

Start cluster

pcs cluster start --all

Enable cluster tự khởi động

pcs cluster enable --all

4. Kiểm tra lỗi

4.1 Xem log pacemaker

journalctl -u pacemaker -xe

4.2 Xem log corosync

journalctl -u corosync -xe

4.3 Xem trong messages

grep -Ei 'pacemaker|corosync|pcs' /var/log/messages

4.4 Xem history

pcs status history

4.5 Cleanup resource lỗi

pcs resource cleanup vip_haproxy
pcs resource cleanup haproxy_srv

5. Các lỗi thường gặp của Pacemaker

Lỗi 1: Resource failed

Dấu hiệu

pcs status báo resource failed

Nguyên nhân

  • Script agent lỗi

  • Service dưới nền không start được

  • VIP bị conflict

  • HAProxy config sai

Xử lý

systemctl status haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
pcs resource cleanup haproxy_srv

Phòng ngừa

  • Chuẩn hóa thứ tự check: app, port, config, log, cluster

  • Không cleanup bừa khi chưa rõ nguyên nhân


Lỗi 2: Cluster split-brain / mất quorum

Nguyên nhân

  • 2 node mất liên lạc

  • Network cluster lỗi

  • Corosync port bị chặn

Xử lý

  • Kiểm tra mạng heartbeat

  • Kiểm tra firewall

  • Kiểm tra corosync log

Phòng ngừa

  • Tách mạng heartbeat riêng nếu được

  • Giám sát latency/loss mạng cluster


Lỗi 3: VIP không failover

Nguyên nhân

  • Resource constraint sai

  • STONITH/quorum policy ảnh hưởng

  • Node backup không healthy

Xử lý

pcs resource show
pcs constraint show
pcs status

Phòng ngừa

  • Test failover định kỳ

  • Có runbook rõ ràng


V. Bộ lệnh hay dùng nhất nên nhớ

1. HAProxy

systemctl status haproxy
ps -ef | grep haproxy | grep -v grep
ss -lntp | grep haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
journalctl -u haproxy -f
grep -i haproxy /var/log/messages
systemctl restart haproxy

2. Keepalived

systemctl status keepalived
ps -ef | grep keepalived | grep -v grep
ip a | grep 10.51.246.35
cat /etc/keepalived/keepalived.conf
journalctl -u keepalived -f
grep -i keepalived /var/log/messages
systemctl restart keepalived

3. Pacemaker/PCS

pcs status
pcs cluster status
pcs resource show
pcs config
pcs quorum status
journalctl -u pacemaker -f
journalctl -u corosync -f
pcs resource cleanup <resource_name>
pcs cluster start --all
pcs cluster stop --all

VI. Quy trình kiểm tra nhanh khi có sự cố

Trường hợp người dùng báo không truy cập được VIP

Bước 1: Kiểm tra VIP có còn không

ip a | grep 10.51.246.35

Bước 2: Kiểm tra keepalived hoặc pacemaker

systemctl status keepalived
pcs status

Bước 3: Kiểm tra HAProxy

systemctl status haproxy
ss -lntp | grep haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg

Bước 4: Kiểm tra backend

curl -I http://backend_ip:port

Bước 5: Kiểm tra log

journalctl -u haproxy -xe
journalctl -u keepalived -xe
journalctl -u pacemaker -xe
grep -Ei 'haproxy|keepalived|pacemaker|corosync' /var/log/messages

VII. Bài học kinh nghiệm vận hành

1. Đừng chỉ kiểm tra process

Process còn sống chưa chắc dịch vụ còn phục vụ tốt.
Phải kiểm tra thêm:

  • port có listen không

  • VIP có còn không

  • backend có sống không

  • log có lỗi không


2. Đừng restart ngay khi chưa chụp hiện trạng

Trước khi restart nên chụp:

date
hostname
pcs status
systemctl status haproxy
ip a
ss -lntp
journalctl -u haproxy -n 100

Vì restart xong có thể mất dấu vết lỗi.


3. Luôn test config trước khi apply

Ví dụ HAProxy:

haproxy -c -f /etc/haproxy/haproxy.cfg

4. Phải giám sát từ sớm, từ xa

Nên đưa vào Prometheus/Grafana các chỉ tiêu:

  • tiến trình sống/chết

  • port up/down

  • VIP có tồn tại hay không

  • HTTP code 5xx

  • thời gian phản hồi backend

  • CPU/RAM/load

  • dung lượng log

Trong tài liệu bạn đã gửi, mô hình Grafana/Prometheus/Loki/Alertmanager phù hợp để giám sát tập trung, thu thập metrics, log, cảnh báo sớm và không làm gián đoạn hệ thống.


VIII. Khuyến nghị phòng ngừa từ sớm từ xa

Với HAProxy

  • Giám sát port frontend/backend

  • Giám sát 5xx, latency, session

  • Rotate log tránh file log quá lớn

  • Kiểm tra config trước mỗi thay đổi

Với Keepalived

  • Giám sát VIP tồn tại trên node nào

  • Giám sát flapping VIP

  • Thêm script check dịch vụ thật, không chỉ check network

Với Pacemaker

  • Giám sát quorum, node online/offline

  • Theo dõi history failover

  • Test failover định kỳ hàng tháng/quý

  • Có runbook xử lý chuẩn

=============================
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty, "các câu lệnh hay sử dụng về haproxy và keepalive, pacemaker, giải thích rõ ý nghĩa trên oracle linux 7 về các nội dung, lấy ví dụ minh họa, kết quả đầu ra, giải thích rõ ràng, dễ hiểu: 1. Giám sát trạng thái tiến trình, port 2. Kiểm tra tiến trình, port, file cấu hình 3. Bật, tắt tiến trình 4. Kiểm tra lỗi 5. Các lỗi thường gặp, nguyên nhân, biện pháp xử lý, biện pháp phòng ngừa từ sớm từ xa"

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master