Skip to content

14.1 Service inventory & quick reference

บทนี้เป็นหน้าอ้างอิงเร็วที่ทีมปฏิบัติการควรเปิดดูเป็นอันดับแต่แรกเมื่อเริ่มงาน รวมตารางสรุป service ทั้งหมด, ตำแหน่ง, port, log path, และคำสั่งที่ใช้บ่อย

ตาราง inventory หลัก

ServiceStackHost ที่รันContainer nameInternal portExternal portImage
vtrc-api #1Node 12vtrc-api hostvtrc-api-nodejs80818081vtrc-api_vtrc-api:latest
vtrc-api #2Node 12vtrc-api hostvtrc-api-nodejs-280818082(เดียวกัน)
vtrc-api #3Node 12vtrc-api hostvtrc-api-nodejs-380818083(เดียวกัน)
vtrc-api #5Node 12vtrc-api hostvtrc-api-nodejs-580818085(เดียวกัน)
vtrc-redisRedisvtrc-api hostvtrc-redis63796379build from docker-redis/
vtrc-nginxnginxvtrc-api hostvtrc-web-server80/44380/443nginx:latest + custom
vtrc-phpMyAdminphpMyAdminvtrc-api hostvtrc-phpMyAdmin808093phpmyadmin/phpmyadmin
cu-central-api #1Node 12.18.3cu-central hostcu-central-api80008000gcr.io/vtrc-nonprod/cu-centralize-api:latest
cu-central-api #2Node 12.18.3cu-central hostcu-central-api_280008002(เดียวกัน)
cu-central-api #3Node 12.18.3cu-central hostcu-central-api_380008003(เดียวกัน)
cu-redisRediscu-central hostcu-centralize-redis63796379build from Dockerfile-redis
cu-nginxnginxcu-central hostcu-central-web-server443/25563443/25563nginx:latest + custom
centralize-apiNestJS (Node 16)centralize hostcentralize-api30003000build from Dockerfile
vtrc-webnginx serve staticvtrc-api host (mount)(ไม่มี container แยก)8080/443build from vtrc-web/Dockerfile
vtrc-rc-backofficenginx serve staticbackoffice hostnginx-web-server80/44380/443nginx:latest + custom

หมายเหตุ:

  • APP_NO=4 ถูกข้ามใน vtrc-api โดยไม่มีเอกสารอธิบาย — อาจเคยปิดไปด้วยเหตุผลด้านทรัพยากร
  • centralize-api มีเพียง replica เดียว — เป็นจุด single point of failure

URL ที่ใช้ตรวจสอบสถานะ

URLหมายถึงสถานะปกติ
https://vtrc.redcross.or.th/vtrc-webหน้า login ปรากฏ
https://vtrcbackoffice.redcross.or.th/vtrc-rc-backofficeหน้า login ปรากฏ
https://vtrcapi.redcross.or.th/api/graphqlvtrc-api GraphQL endpointGraphQL playground ปรากฏ (เพราะ playground: true)
https://uat-vtrc.redcross.or.th/vtrc-web UATหน้า login ปรากฏ
https://uat-vtrcapi.redcross.or.th/api-uat/graphqlvtrc-api UATGraphQL playground
https://centralizeapi.redcross.or.th/cu-central-api gateway(ขึ้นกับ path ที่เรียก)
https://centralizeapi.redcross.or.th:25563/cu-central-api gateway (port สำรอง)(ขึ้นกับ path)
centralize-api /docsSwagger UISwagger UI ปรากฏ

จุดสำคัญ — ไม่มี /health, /healthz, /ping ใน service ใด การตรวจสอบสถานะต้องใช้ URL เหล่านี้แทน

Log path ที่สำคัญ

vtrc-api host

Pathเนื้อหา
./api-logs/ (host) = /usr/src/app/logs/ (container)log ของ vtrc-api ที่ wlog.js เขียน
./api-storage/ (host) = /usr/src/app/storage/ (container)PDF payslip, file upload
./nginx-log/ (host)nginx access/error log
docker logs vtrc-api-nodejsstdout/stderr ของ container (console.log)

cu-central-api host

Pathเนื้อหา
./main-api/logs/ (host) = /usr/src/app/logs/ (container)log ของ cu-central-api
./main-api/storage/ (host) = /usr/src/app/storage/ (container)file storage
./nginx-log/ (host)nginx access/error log

centralize-api host

Pathเนื้อหา
./logs/ (host) = /usr/src/app/logs/ (container)log ของ I3GatewayLogger

คำสั่งที่ใช้บ่อย — quick reference

ตรวจสอบสถานะ container

bash
# ดู container ที่รันอยู่ทั้งหมด
docker ps

# ดูเฉพาะ vtrc-api
docker ps --filter "name=vtrc-api"

# ดู resource usage
docker stats

อ่าน log

bash
# log ล่าสุด 100 บรรทัด
docker logs --tail 100 vtrc-api-nodejs

# ติดตาม log แบบ live
docker logs -f vtrc-api-nodejs

# log ของ replica เฉพาะ
docker logs -f vtrc-api-nodejs-2

เข้า container

bash
# เปิด shell ใน container
docker exec -it vtrc-api-nodejs sh

# รันคำสั่งเดียว
docker exec vtrc-api-nodejs ls /usr/src/app/storage/prs/

รีสตาร์ท service

bash
# รีสตาร์ท replica เดียว
docker restart vtrc-api-nodejs-2

# รีสตาร์ททั้ง compose stack
cd /path/to/vtrc-api && docker-compose restart

# ดึง image ใหม่แล้ว restart (ใช้ตอน deploy)
docker-compose up -d --no-deps vtrc-api

ตรวจสอบ port ที่เปิด

bash
# ดู port ที่ container publish
docker port vtrc-api-nodejs

# ตรวจสอบว่า port 8081 รับ connection ได้
curl -v http://localhost:8081/api/graphql

ตรวจสอบ disk usage

bash
# ดู disk usage ของ volume หลัก
du -sh /home/dev/vtrc-api/api-storage/
du -sh /home/dev/vtrc-api/api-logs/
du -sh /home/dev/vtrc-api/nginx-log/
du -sh /home/dev/vtrc-api/redis-db/data/

# ดู disk space ที่เหลือ
df -h

โครงสร้าง host ที่ใช้งาน

vtrc-api host
├── /home/dev/vtrc-api/           ←── docker-compose ของ vtrc-api
│   ├── api/                      ←── source code (git checkout)
│   ├── api-storage/              ←── volume: PDF payslip, file upload
│   ├── api-logs/                 ←── volume: log ของ vtrc-api
│   ├── nginx/                    ←── config ของ nginx
│   ├── nginx-log/                ←── log ของ nginx
│   ├── cert/                     ←── SSL certificate
│   ├── redis-db/                 ←── data ของ Redis
│   └── docker-compose.yml
├── /home/dev/vtrc-web/build/     ←── build ของ vtrc-web (mount เข้า nginx)
└── /home/dev/vtrc-mobile-app/    ←── build ของ mobile app (mount เข้า nginx)

cu-central-api host
├── /home/dev/cu-central-api/
│   ├── main-api/                 ←── source code
│   ├── nginx/
│   ├── cert/
│   ├── redis-db/
│   └── docker-compose.yml
└── ...

centralize-api host
└── /home/dev/centralize-api/
    ├── src/                      ←── TypeScript source
    ├── dist/                     ←── compiled output
    ├── .env                      ←── config (รวม secret)
    └── docker-compose.yml

vtrc-rc-backoffice host
└── /home/dev/vtrc-rc-backoffice/
    ├── build/                    ←── build ของ backoffice (mount เข้า nginx)
    ├── nginx/
    └── docker-compose.yml

หมายเหตุ: path จริงอาจแตกต่างจากนี้ในแต่ละ environment — ต้องสอบถามทีมที่ตั้งค่า server ครั้งแรก ชื่อ dev ใน path บ่งชี้ว่าเคยเป็น dev environment ที่ปรับมาเป็น production

ผู้ประสานงานที่ต้องรู้

ตารางนี้ต้องการให้ทีมเติมชื่อและช่องทางติดต่อจริง:

บทบาทผู้รับผิดชอบช่องทางติดต่อ
ผู้ดูแล vtrc-api(เติม)(เติม)
ผู้ดูแล cu-central-api(เติม)(เติม)
ผู้ดูแล centralize-api(เติม)(เติม)
ผู้ดูแล vtrc-web / backoffice(เติม)(เติม)
ผู้ดูแล database (MariaDB)(เติม)(เติม)
ผู้ดูแล MSSQL HRMI(เติม)(เติม)
ผู้ดูแล LDAP/AD (sso.redcross.or.th)(เติม)(เติม)
ผู้ดูแล network/firewall(เติม)(เติม)
ผู้ดูแล GCP project(เติม)(เติม)
ผู้ประสานงานธนาคาร (KBank, FMIS)(เติม)(เติม)

สรุป

บทนี้เป็นจุดเริ่มต้นสำหรับทุกการดำเนินงาน — ก่อนทำอะไร ให้:

  1. ดูตาราง inventory เพื่อรู้ว่า service ใดอยู่ที่ใด
  2. ใช้ URL ในตาราง "URL ที่ใช้ตรวจสอบสถานะ" เพื่อยืนยันว่าระบบตอบสนอง
  3. ดู log path เพื่อรู้ว่าจะค้นหาอะไรที่ไหน
  4. ใช้ quick reference command เพื่อตรวจสอบสถานะ container

บทถัดไปจะลงรายละเอียดของแต่ละงานปฏิบัติการ