KB-5ED8
GPT — Prompt điều tra sức khỏe VPS theo thực tế vận hành hiện tại (rev2)
9 min read Revision 1
reportgptvpshealthcodexprompt2026-04-07rev2
GPT — Prompt điều tra sức khỏe VPS theo thực tế vận hành hiện tại (rev2)
Date: 2026-04-07 Agent: GPT Mục tiêu: điều chỉnh prompt cho phù hợp mô tả vận hành thực tế từ user: VPS là SSOT tác nghiệp, GitHub là backup ngược 2 lần/ngày, Google Drive là kênh backup data hằng ngày và chuẩn bị thêm backup code 4 lần/ngày.
1) Thực tế vận hành user vừa xác nhận
- VPS hiện là SSOT thực chiến và thường sửa trực tiếp trên VPS để xử lý nhanh.
- Hệ thống đang ở trạng thái đang xây nhưng hỏng, chuẩn bị làm lại.
- Mã được backup ngược về GitHub 2 lần/ngày.
- Data được tải tự động về Google Drive 1 lần/ngày.
- Sắp bổ sung backup code về Google Drive 4 lần/ngày làm kênh thứ hai.
- Mục tiêu ưu tiên hiện tại: ổn định hoạt động VPS, đọc log để liệt kê các vấn đề hiện tại, tìm bug đang tồn tại hoặc tái diễn.
2) Ghi chú pháp lý / xung đột với SSOT luật hiện hành
- Mô tả “VPS là SSOT, sửa trực tiếp trên VPS cho nhanh” xung đột với:
knowledge/dev/ssot/vps/vps-operating-rules.md— Luật 2: KHÔNG SỬA TRỰC TIẾP TRÊN VPS- cùng tài liệu — Luật 4: GITOPS LÀ NGUỒN SỰ THẬT
- Tuy nhiên trong nhiệm vụ này, prompt chỉ phục vụ điều tra READ-ONLY, nên không vi phạm các luật trên.
- Kết luận: dùng prompt này để chẩn đoán, không dùng làm căn cứ hợp thức hóa sửa nóng trực tiếp.
3) Trọng tâm điều tra mới
Prompt rev2 bỏ bớt phần nặng về “khớp Git tuyệt đối” và dồn trọng tâm vào:
- tình trạng ổn định thực tế của VPS,
- log 3–7 ngày gần đây,
- lỗi đang active / tái diễn,
- container/service nào bất ổn,
- lỗi cron / backup / disk / memory / nginx / ssl / database,
- bug nào đáng fix trước để giữ VPS chạy ổn.
4) Prompt rev2 giao cho Codex
cat <<'CODEX_PROMPT' >/tmp/codex_vps_health_investigation_rev2.txt
Bạn là Codex chạy nhiệm vụ ĐIỀU TRA SỨC KHỎE VPS INCOMEX để trả lời câu hỏi thực dụng duy nhất:
"HIỆN VPS ĐANG CÓ NHỮNG BUG / LỖI / DẤU HIỆU BẤT ỔN NÀO CẦN FIX ĐỂ GIỮ HỆ THỐNG CHẠY ỔN?"
## A. BỐI CẢNH THỰC TẾ
- VPS hiện là SSOT thực chiến.
- Hệ thống đang xây nhưng hỏng, chuẩn bị làm lại dần.
- GitHub hiện là kênh backup ngược mã 2 lần/ngày.
- Google Drive đang là kênh backup data 1 lần/ngày, chuẩn bị thêm backup code 4 lần/ngày.
- Mục tiêu phiên này KHÔNG phải tái kiến trúc, KHÔNG tranh luận mô hình; mục tiêu là đọc log và nêu các vấn đề hiện tại của VPS.
## B. NGUYÊN TẮC THAO TÁC
- READ-ONLY tối đa.
- KHÔNG restart/rebuild/redeploy.
- KHÔNG sửa file config, KHÔNG xóa log, KHÔNG cài package.
- Chỉ quan sát, đọc log, đối chiếu, kết luận có bằng chứng.
- Nếu buộc phải suy đoán root cause thì phải ghi rõ mức chắc chắn.
## C. KẾT QUẢ BẮT BUỘC
Tạo 2 file:
- /tmp/vps_health_report.md
- /tmp/vps_health_evidence.txt
Cuối cùng phải in ra:
1. Top lỗi hiện tại đáng chú ý nhất
2. Lỗi nào đang active ngay lúc kiểm tra
3. Lỗi nào lặp lại trong 3-7 ngày gần đây
4. Việc gì nên fix trước để ổn định VPS
## D. CÁCH LÀM
### PHASE 1 — CHỤP NHANH HIỆN TRẠNG
Chạy và lưu evidence:
set -o pipefail
{
echo '===== TIME ====='
date -Is
uptime
echo
echo '===== HOST ====='
hostnamectl || true
uname -a || true
echo
echo '===== CPU RAM DISK ====='
free -h || true
df -h || true
lsblk || true
echo
echo '===== LOAD HOT PROCESSES ====='
ps aux --sort=-%cpu | head -n 25 || true
echo
ps aux --sort=-%mem | head -n 25 || true
echo
echo '===== NETWORK / PORTS ====='
ss -tulpn || true
ufw status verbose || true
echo
echo '===== DOCKER ====='
docker ps -a --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.RunningFor}}\t{{.Ports}}' || true
docker stats --no-stream || true
echo
echo '===== CRON ====='
crontab -l || true
} | tee /tmp/vps_health_evidence.txt
### PHASE 2 — ĐỌC LOG 7 NGÀY GẦN NHẤT
Ưu tiên journal + docker + nginx + app logs + cron logs.
{
echo
echo '===== JOURNAL ERRORS 7D ====='
journalctl --since '7 days ago' -p 0..4 --no-pager || true
echo
echo '===== JOURNAL SERVICES 7D ====='
journalctl --since '7 days ago' -u ssh -u nginx -u docker -u containerd -u fail2ban -u cron --no-pager || true
echo
echo '===== KERNEL 7D ====='
journalctl -k --since '7 days ago' --no-pager || true
} | tee -a /tmp/vps_health_evidence.txt
{
echo
echo '===== /var/log key files ====='
for f in /var/log/syslog /var/log/auth.log /var/log/kern.log /var/log/nginx/error.log /var/log/nginx/access.log; do
if [ -f "$f" ]; then
echo "===== $f ====="
tail -n 500 "$f" || true
echo
fi
done
} | tee -a /tmp/vps_health_evidence.txt
for c in $(docker ps -a --format '{{.Names}}'); do
{
echo
echo "===== DOCKER LOGS $c (7d) ====="
docker logs --since 168h "$c" 2>&1 || true
} | tee -a /tmp/vps_health_evidence.txt
done
find /opt/incomex /var/log -type f \( -name '*.log' -o -name '*.out' -o -name '*.err' \) 2>/dev/null | sort | while read f; do
{
echo
echo "===== TAIL LOG FILE $f ====="
tail -n 300 "$f" || true
} | tee -a /tmp/vps_health_evidence.txt
done
### PHASE 3 — QUÉT PATTERN LỖI
{
echo
echo '===== ERROR PATTERN SCAN ====='
PAT='error|exception|fatal|panic|oom|out of memory|killed process|segfault|timeout|timed out|denied|refused|failed|failure|unhealthy|restart|crash|traceback|502|503|504|500|database|postgres|qdrant|directus|nuxt|nginx|upload|revision|backup|cron|certificate|ssl'
journalctl --since '7 days ago' --no-pager 2>/dev/null | grep -Eai "$PAT" || true
for f in $(find /var/log /opt/incomex 2>/dev/null -type f \( -name '*.log' -o -name '*.out' -o -name '*.err' -o -name 'syslog*' -o -name 'auth.log*' \)); do
grep -Eai "$PAT" "$f" || true
done
} | tee -a /tmp/vps_health_evidence.txt
### PHASE 4 — CHECK CÁC VÙNG DỄ GÂY MẤT ỔN ĐỊNH
{
echo
echo '===== CONTAINER HEALTH / RESTART COUNT ====='
for c in $(docker ps -a --format '{{.Names}}'); do
echo "--- $c ---"
docker inspect "$c" --format 'State={{.State.Status}} Health={{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}} RestartCount={{.RestartCount}} StartedAt={{.State.StartedAt}} FinishedAt={{.State.FinishedAt}}' || true
done
echo
echo '===== HTTP CHECK ====='
curl -IksS https://vps.incomexsaigoncorp.vn || true
curl -IksS https://directus.incomexsaigoncorp.vn/server/health || true
curl -IksS https://ops.incomexsaigoncorp.vn/items/tasks?limit=1 || true
echo
echo '===== SSL CHECK ====='
echo | openssl s_client -connect vps.incomexsaigoncorp.vn:443 -servername vps.incomexsaigoncorp.vn 2>/dev/null | openssl x509 -noout -dates -issuer -subject || true
echo | openssl s_client -connect directus.incomexsaigoncorp.vn:443 -servername directus.incomexsaigoncorp.vn 2>/dev/null | openssl x509 -noout -dates -issuer -subject || true
echo
echo '===== BACKUP / CRON SIGNS ====='
ls -lah /opt/incomex/backups || true
find /opt/incomex/backups -maxdepth 3 -type f -mtime -7 2>/dev/null | sort || true
journalctl --since '7 days ago' -u cron --no-pager || true
} | tee -a /tmp/vps_health_evidence.txt
### PHASE 5 — VIẾT BÁO CÁO CHỈNH LÝ
Viết file /tmp/vps_health_report.md với cấu trúc:
# VPS Health Report
## 1. Tóm tắt điều hành
- VPS nhìn chung ổn hay không
- Có bug nào đang active ngay không
- Top 10 vấn đề đáng chú ý nhất
## 2. Các vấn đề hiện tại của VPS
Lập bảng với các cột:
- ID
- Mức độ (Critical/High/Medium/Low)
- Component
- Dấu hiệu / symptom
- Bằng chứng log
- Tần suất
- Ảnh hưởng thực tế
- Root cause nghi ngờ
- Mức chắc chắn
- Đề xuất xử lý
## 3. Các nhóm lỗi
- Tài nguyên hệ thống: CPU/RAM/Disk/OOM
- Docker/container: restart/unhealthy/crash
- HTTP/Nginx/SSL
- Database / Directus / Agent Data / Qdrant / Nuxt
- Cron / backup / scripts
- SSH / security / public exposure
## 4. Những lỗi đáng fix trước để ổn định VPS
Chia:
- Fix ngay hôm nay
- Fix trong 1-3 ngày
- Theo dõi thêm
## 5. Các mục chưa chắc
Nêu rõ điều gì mới là nghi ngờ, chưa đủ chứng cứ.
## 6. Appendix
- Lệnh đã chạy
- Log files đã đọc
- Container/services đã kiểm tra
YÊU CẦU:
- Tập trung vào sức khỏe hiện tại của VPS.
- Không sa đà vào tái kiến trúc.
- Không spam log rác; phải gom nhóm.
- Tách rõ: noise / warning / confirmed issue.
- Đánh dấu rõ lỗi nào đang active ngay bây giờ.
### PHASE 6 — IN KẾT LUẬN
cat /tmp/vps_health_report.md
echo
echo '===== SUMMARY ====='
echo 'Report: /tmp/vps_health_report.md'
echo 'Evidence: /tmp/vps_health_evidence.txt'
CODEX_PROMPT
5) Kết luận
Bản rev2 này phù hợp hơn với mục tiêu user đang cần:
- không tranh cãi mô hình vận hành,
- dồn trọng tâm vào đọc log để tìm bug hiện tại,
- giúp chốt danh sách vấn đề VPS đang có và thứ tự cần fix để ổn định.