Dưới đây là runbook vận hành chuẩn trên Oracle Linux 7 cho:
-
HAProxy
-
Keepalived
-
Pacemaker/PCS
Tôi viết theo kiểu để bạn có thể dùng luôn cho đội vận hành: mục tiêu → câu lệnh → kết quả mong đợi → lỗi thường gặp → hướng xử lý → checklist trước/sau change.
RUNBOOK VẬN HÀNH HAProxy + Keepalived + Pacemaker trên Oracle Linux 7
PHẦN A. RUNBOOK HAProxy
A1. Mục tiêu
Dùng để:
-
kiểm tra HAProxy có sống không
-
kiểm tra port phục vụ
-
kiểm tra cấu hình đúng/sai
-
bật/tắt/reload dịch vụ
-
xác định nhanh nguyên nhân khi người dùng báo không truy cập được
A2. Kiểm tra trạng thái dịch vụ
Lệnh
systemctl status haproxy
Kết quả mong đợi
Active: active (running)
Giải thích
-
active (running)= dịch vụ đang chạy -
failed= lỗi -
inactive= đang tắt
A3. Kiểm tra process
Lệnh
ps -ef | grep haproxy | grep -v grep
Kết quả mong đợi
Có ít nhất 1 hoặc 2 dòng process HAProxy.
Giải thích dễ hiểu
-
Nếu
systemctl statusbáo chạy nhưngpskhông thấy process thì hệ thống có thể đang bất thường -
Nếu có process nhưng không nghe port thì HAProxy lên chưa hoàn chỉnh
A4. Kiểm tra port listen
Lệnh
ss -lntp | grep haproxy
Hoặc:
netstat -lntp | grep haproxy
Ví dụ
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: cổng phục vụ client -
port
8404: cổng stats nếu có bật -
nếu không thấy port cần thiết thì người dùng sẽ không truy cập được
A5. Kiểm tra file cấu hình
Lệnh xem file
ls -l /etc/haproxy/haproxy.cfg
cat /etc/haproxy/haproxy.cfg
Lệnh kiểm tra cú pháp
haproxy -c -f /etc/haproxy/haproxy.cfg
Kết quả mong đợi
Configuration file is valid
Nếu lỗi
Ví dụ:
parsing [/etc/haproxy/haproxy.cfg:25] : unknown keyword
Giải thích
-
Câu lệnh này giống như “soát chính tả” file cấu hình
-
Phải chạy trước khi restart/reload
A6. Bật, tắt, restart, reload
Bật
systemctl start haproxy
Tắt
systemctl stop haproxy
Khởi động lại
systemctl restart haproxy
Nạp lại cấu hình
systemctl reload haproxy
Bật tự động cùng OS
systemctl enable haproxy
Tắt tự động cùng OS
systemctl disable haproxy
Giải thích dễ hiểu
-
start: bật nếu đang tắt -
stop: tắt dịch vụ -
restart: tắt rồi bật lại -
reload: chỉ nạp lại config, ít ảnh hưởng hơn restart
A7. Kiểm tra log
Xem log qua systemd
journalctl -u haproxy -xe
Xem realtime
journalctl -u haproxy -f
Nếu log đẩy về messages
grep -i haproxy /var/log/messages
Nếu có file log riêng
tail -f /var/log/haproxy.log
A8. Kiểm tra backend phía sau HAProxy
Lệnh
curl -I http://10.51.246.33:8080
curl -I http://10.51.246.34:8080
Kết quả mong đợi
HTTP/1.1 200 OK
Giải thích
-
HAProxy chỉ là người điều phối
-
Backend chết thì HAProxy vẫn có thể còn chạy, nhưng user vẫn lỗi
A9. Lỗi thường gặp của HAProxy
Lỗi 1: HAProxy failed to start
Dấu hiệu
systemctl status haproxy
ra:
Active: failed
Nguyên nhân
-
sai cú pháp cấu hình
-
port bị chiếm
-
file config sửa nhầm
-
backend khai báo sai
Xử lý
haproxy -c -f /etc/haproxy/haproxy.cfg
ss -lntp | grep :80
journalctl -u haproxy -xe
Phòng ngừa
-
luôn chạy kiểm tra config trước reload/restart
-
không sửa trực tiếp trên production nếu chưa backup
Lỗi 2: 503 Service Unavailable
Nguyên nhân
-
tất cả backend down
-
health check fail
-
app phía sau không nghe port
Xử lý
curl -I http://backend_ip:port
Kiểm tra log app, kiểm tra process app.
Phòng ngừa
-
giám sát backend độc lập
-
có dashboard cho từng backend
Lỗi 3: 502 Bad Gateway
Nguyên nhân
-
backend trả lỗi
-
backend timeout
-
ứng dụng treo hoặc reset connection
Xử lý
-
xem log backend
-
tăng timeout nếu hợp lý
-
kiểm tra CPU/RAM backend
A10. Checklist trước change HAProxy
date
hostname
cp -p /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak_$(date +%F_%H%M%S)
haproxy -c -f /etc/haproxy/haproxy.cfg
systemctl status haproxy
ss -lntp | grep haproxy
A11. Checklist sau change HAProxy
haproxy -c -f /etc/haproxy/haproxy.cfg
systemctl reload haproxy
systemctl status haproxy
ss -lntp | grep haproxy
curl -I http://VIP_or_URL
journalctl -u haproxy -n 50
PHẦN B. RUNBOOK KEEPALIVED
B1. Mục tiêu
Dùng để:
-
kiểm tra VIP đang ở node nào
-
kiểm tra keepalived có chạy không
-
xác định failover có hoạt động không
B2. Kiểm tra trạng thái dịch vụ
Lệnh
systemctl status keepalived
Kết quả mong đợi
Active: active (running)
B3. Kiểm tra process
Lệnh
ps -ef | grep keepalived | grep -v grep
B4. Kiểm tra VIP
Lệnh
ip a | grep 10.51.246.35
Kết quả mong đợi
Nếu node này là master:
inet 10.51.246.35/24 scope global secondary eth0
Giải thích
-
VIP chỉ xuất hiện trên 1 node tại 1 thời điểm
-
Node nào có VIP là node đang active
B5. Kiểm tra file cấu hình
Lệnh
cat /etc/keepalived/keepalived.conf
Điểm cần soi
-
interface -
virtual_router_id -
priority -
virtual_ipaddress
Ví dụ
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
}
}
B6. Bật, tắt, restart
systemctl start keepalived
systemctl stop keepalived
systemctl restart keepalived
systemctl enable keepalived
systemctl disable keepalived
B7. Kiểm tra log
journalctl -u keepalived -xe
Xem realtime:
journalctl -u keepalived -f
Hoặc:
grep -i keepalived /var/log/messages
B8. Lỗi thường gặp của Keepalived
Lỗi 1: VIP không lên
Nguyên nhân
-
sai interface
-
keepalived không chạy
-
VIP trùng IP hệ thống khác
-
cấu hình lỗi
Kiểm tra
ip a
systemctl status keepalived
journalctl -u keepalived -xe
Xử lý
-
sửa đúng tên NIC
-
restart keepalived
-
kiểm tra xung đột IP
Phòng ngừa
-
luôn xác minh tên card mạng trước triển khai
-
lập danh mục IP/VIP rõ ràng
Lỗi 2: VIP flapping, nhảy qua lại liên tục
Nguyên nhân
-
mạng chập chờn
-
2 node không nhìn thấy nhau ổn định
-
chênh lệch priority không hợp lý
-
firewall chặn VRRP
Xử lý
-
kiểm tra kết nối giữa 2 node
-
tăng chênh lệch priority
-
kiểm tra firewall/network ACL
Phòng ngừa
-
test failover nhiều lần trước production
-
giám sát log keepalived định kỳ
Lỗi 3: VIP còn nhưng HAProxy chết
Giải thích
Keepalived chỉ biết giữ VIP, không chắc HAProxy có sống hay không nếu không gắn script check.
Phòng ngừa
Dùng vrrp_script kiểm tra HAProxy:
vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
weight -20
}
B9. Checklist trước change Keepalived
date
hostname
cp -p /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak_$(date +%F_%H%M%S)
systemctl status keepalived
ip a | grep 10.51.246.35
B10. Checklist sau change Keepalived
systemctl restart keepalived
systemctl status keepalived
ip a | grep 10.51.246.35
journalctl -u keepalived -n 50
PHẦN C. RUNBOOK PACEMAKER / PCS
C1. Mục tiêu
Dùng để:
-
kiểm tra cluster online/offline
-
kiểm tra resource VIP/HAProxy/Tomcat
-
xử lý failover
-
cleanup resource failed
C2. Kiểm tra trạng thái tổng quát
Lệnh
pcs status
Ví dụ kết quả
Cluster name: haproxy-cluster
Stack: corosync
Current DC: node1
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 dễ hiểu
-
cluster tên gì
-
node nào đang online
-
VIP đang nằm đâu
-
HAProxy đang chạy ở node nào
C3. Kiểm tra node cluster
pcs cluster status
pcs cluster status nodes
C4. Kiểm tra resource
pcs resource show
Xem 1 resource:
pcs resource show vip_haproxy
C5. Kiểm tra quorum
pcs quorum status
Giải thích dễ hiểu
Quorum nghĩa là cluster còn đủ “đa số” để ra quyết định hay không.
C6. Kiểm tra cấu hình cluster
pcs config
C7. Bật, tắt cluster / resource
Start cluster
pcs cluster start --all
Stop cluster
pcs cluster stop --all
Disable resource
pcs resource disable haproxy_srv
Enable resource
pcs resource enable haproxy_srv
Move resource sang node khác
pcs resource move vip_haproxy node2
Xóa lệnh move tạm thời
pcs resource clear vip_haproxy
C8. Cleanup resource lỗi
pcs resource cleanup vip_haproxy
pcs resource cleanup haproxy_srv
Giải thích
-
Khi resource failed, Pacemaker nhớ lỗi đó
-
cleanuplà xóa dấu lỗi cũ để Pacemaker thử lại
C9. Kiểm tra log
Pacemaker
journalctl -u pacemaker -xe
Corosync
journalctl -u corosync -xe
PCS daemon
journalctl -u pcsd -xe
Xem chung trong messages
grep -Ei 'pacemaker|corosync|pcs' /var/log/messages
Xem realtime
journalctl -u pacemaker -f
journalctl -u corosync -f
C10. Lỗi thường gặp của Pacemaker
Lỗi 1: Resource failed
Nguyên nhân
-
HAProxy hoặc app không lên được
-
VIP conflict
-
agent lỗi
-
dependency/resource order sai
Kiểm tra
pcs status
pcs resource show
systemctl status haproxy
journalctl -u pacemaker -xe
Xử lý
-
sửa root cause trước
-
sau đó cleanup:
pcs resource cleanup haproxy_srv
Phòng ngừa
-
test resource agent trước khi đưa production
-
chuẩn hóa thứ tự start VIP → app
Lỗi 2: Node offline
Nguyên nhân
-
node chết
-
corosync mất kết nối
-
firewall chặn traffic cluster
Kiểm tra
pcs status
systemctl status corosync
journalctl -u corosync -xe
Phòng ngừa
-
tách mạng heartbeat nếu có điều kiện
-
giám sát node online/offline
Lỗi 3: VIP không failover
Nguyên nhân
-
constraint sai
-
node backup không healthy
-
resource bị lock bởi move/ban tạm thời
Kiểm tra
pcs resource show
pcs constraint
pcs status
Xử lý
pcs resource clear vip_haproxy
pcs resource cleanup vip_haproxy
C11. Checklist trước change Pacemaker
date
hostname
pcs status
pcs config > /root/pcs_config_$(date +%F_%H%M%S).txt
pcs resource show
pcs quorum status
C12. Checklist sau change Pacemaker
pcs status
pcs resource show
pcs quorum status
journalctl -u pacemaker -n 50
journalctl -u corosync -n 50
PHẦN D. BỘ LỆNH NGẮN GỌN NÊN THUỘC
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
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
systemctl restart keepalived
3. Pacemaker / PCS
pcs status
pcs cluster status
pcs resource show
pcs quorum status
pcs config
journalctl -u pacemaker -f
journalctl -u corosync -f
pcs resource cleanup <resource>
PHẦN E. QUY TRÌNH XỬ LÝ SỰ CỐ NHANH
Tình huống: người dùng báo không truy cập được VIP
Bước 1. Kiểm tra VIP 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
PHẦN F. BÀI HỌC KINH NGHIỆM
1. Không nhìn mỗi process
Một process còn sống chưa chắc dịch vụ còn phục vụ tốt.
Luôn kiểm tra thêm:
-
port
-
VIP
-
backend
-
log
2. Đừng restart quá sớm
Trước khi restart nên chụp hiện trạng:
date
hostname
pcs status
ip a
ss -lntp
journalctl -u haproxy -n 100
3. Luôn backup config trước change
Ví dụ:
cp -p /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak_$(date +%F_%H%M%S)
4. Luôn test failover định kỳ
Không test thì đến lúc sự cố thật mới phát hiện failover không chạy.
PHẦN G. PHÒNG NGỪA TỪ SỚM, TỪ XA
Với HAProxy
-
giám sát process, port, HTTP code 5xx, latency
-
logrotate tránh log quá lớn
-
kiểm tra config trước khi áp dụng
Với Keepalived
-
giám sát VIP đang nằm trên node nào
-
cảnh báo nếu VIP flapping
-
dùng script check dịch vụ thật
Với Pacemaker
-
giám sát node online/offline
-
giám sát quorum
-
giám sát resource failed
-
lưu history failover để phân tích RCA
Trong mô hình giám sát tập trung, Prometheus/Grafana/Loki/Alertmanager phù hợp để thu thập trạng thái dịch vụ, log, dashboard và cảnh báo sớm, đồng thời không làm gián đoạn hệ thống đang chạy.
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