✨ Softnix OpsWatch — ฟีเจอร์ทั้งหมด
🗺️ ภาพรวมระบบ
| หมวด | ครอบคลุมอะไร |
|---|---|
| 🖥 การเฝ้าระวังโฮสต์ | เพิ่มเครื่อง · Discovery · Metrics · Realtime |
| 🎮 ควบคุมและเข้าถึงเครื่อง | Start/Stop/Restart · Log สด · SSH Console · Remote Desktop |
| 🌐 อุปกรณ์เครือข่ายและ VM | SNMP · Custom OID · Netsweep · ESXi · VM Guest Access |
| 🔔 การแจ้งเตือน | ล่ม/ฟื้น · Threshold · 7 ช่องทาง · Web Push บนมือถือ |
| 🛡 ความปลอดภัยและช่องโหว่ | VA Scan · Package Updates · SSL Expiry · Hardening |
| 👥 ผู้ใช้ สิทธิ์ และการล็อกอิน | RBAC · Role · LDAP · OAuth2 SSO |
| 🤖 AI และรายงาน | AI Agent + Chat · เคส · Insights/SLA · รายงานผู้บริหาร PDF |
| 🧰 เครื่องมือและอื่น ๆ | Dashboard · Deploy · Docker Inventory · Public Share · AIMM · License |
🖥 การเฝ้าระวังโฮสต์
| ฟีเจอร์ | รายละเอียด |
|---|---|
| เพิ่ม Server | ระบุ IP/Hostname, Port, Username + Password หรือ SSH Key (เข้ารหัส Fernet ก่อนลง DB) พร้อมปุ่มทดสอบการเชื่อมต่อก่อนบันทึก |
| SSH Key อัตโนมัติ | ติ๊กเดียวจบ — ระบบสร้างคู่ key ของตัวเองแล้วเอา public key ไปติดตั้งบนเครื่องเป้าหมายให้ด้วยรหัสผ่านที่กรอก (Linux authorized_keys / Windows administrators_authorized_keys) ไม่ต้อง ssh-copy-id เอง |
| Discovery | สแกนหา Docker containers, PM2 processes, systemd units (Linux) และ Windows services ให้เลือกจับตาด้วย checkbox — ค่าเริ่มต้นเลือกเฉพาะ Docker/PM2 ที่กำลังรัน ไม่ยัด service ระบบมารกรุงรัง |
| PM2 | จับตา process ของ Node.js ที่รันบน host ผ่าน pm2 jlist — status / start / stop / restart / log สด เหมือน service ประเภทอื่น (รองรับ pm2 ที่ติดตั้งผ่าน nvm) |
| Realtime | Poller เก็บสถานะ + metrics → broadcast ผ่าน WebSocket → UI อัปเดตทันที (status dot กระพริบ, กราฟไหลสด ๆ, badge "Live" บน topbar) |
| Batch polling | ตรวจหลาย service ด้วยคำสั่งเดียวต่อประเภท (systemctl is-active ..., Get-Service ...) — เร็วขึ้นมากบนเครื่องที่มี service เยอะ |
| Interval | ตั้งรอบเก็บสถานะเป็นนาที ได้ทั้งค่าเริ่มต้นของระบบและรายเครื่อง + ปุ่ม "ตรวจสอบทันที" ในหน้ารายละเอียด |
| Host Metrics | CPU / RAM / Disk / Uptime / Latency เก็บประวัติ 24 ชั่วโมง แสดงกราฟในหน้ารายละเอียดของแต่ละเครื่อง |
| หน้าเหตุการณ์ (รวมทุกเครื่อง) | รวมทุก service ที่เฝ้าอยู่ในหน้าเดียว — จัดกลุ่มตามเครื่อง กางดูได้ทีละเครื่อง เรียง "ที่มีปัญหาก่อน" เป็นค่าเริ่มต้น ค้นหาข้ามเครื่อง คลิกคอลัมน์เพื่อเรียง และแบ่งหน้าตามจำนวนเครื่อง |
🎮 ควบคุมและเข้าถึงเครื่อง
| ฟีเจอร์ | รายละเอียด |
|---|---|
| Start / Stop / Restart | ควบคุมได้ทั้ง docker container, systemd unit, PM2 process และ Windows service — มี confirm dialog และบันทึก audit log ทุกครั้ง |
| Watch Log | สตรีม log สดผ่าน WebSocket (journalctl -f, docker logs -f, pm2 logs -f) — ฝั่ง Windows ดึงจาก Event Log รีเฟรชทุก 4 วินาที |
| Console (SSH) | เปิด shell สดในเบราว์เซอร์ผ่าน SSH PTY (xterm.js) — Linux เปิด bash/sh, Windows เปิด PowerShell และ docker exec เข้า container ได้ (สิทธิ์คุมด้วยกลุ่ม can_console, viewer เปิดไม่ได้) |
| Remote Desktop (RDP) | ควบคุมหน้าจอ Windows แบบกราฟิกในเบราว์เซอร์ — backend tunnel ไป guacd (Apache Guacamole) แล้ว render ด้วย guacamole-common-js ไม่ต้องติดตั้ง agent บนเครื่อง Windows พอร์ต RDP ตั้งแยกจาก SSH ได้ |
| Reboot | รีสตาร์ตเครื่อง Linux จากหน้าเว็บ — ต้อง confirm 2 ชั้น กันกดพลาด |
🌐 อุปกรณ์เครือข่ายและ VM
| ฟีเจอร์ | รายละเอียด |
|---|---|
| อุปกรณ์เครือข่าย (SNMP) | เพิ่ม switch / router / firewall เข้ามาเฝ้าได้เหมือนเซิร์ฟเวอร์ — อ่านค่าผ่าน SNMP v2c/v3 และตรวจ reachability ด้วย ICMP (ไม่ต้องมี SSH) |
| พอร์ต switch = service | ค้นหาพอร์ตด้วยการ walk IF-MIB แล้วติ๊กเลือกพอร์ตที่จะเฝ้า — พอร์ตหนึ่ง = service หนึ่งตัว จึงได้สถานะ ประวัติ และการแจ้งเตือนชุดเดียวกับ service ของเซิร์ฟเวอร์ พร้อมกราฟ bandwidth เข้า/ออกรายพอร์ต |
| Custom SNMP OID | เฝ้าค่าอะไรก็ได้ที่ระบุ OID เอง (อุณหภูมิ, โหลด CPU บน switch ฯลฯ) — ตั้งชนิดข้อมูล (gauge/counter), หน่วย, ตัวคูณ และเกณฑ์แจ้งเตือน (> / <) มีปุ่มทดสอบอ่านค่าจริงก่อนบันทึก |
| Netsweep (LAN discovery) | สแกนช่วง CIDR หา host ที่ตอบสนอง ก่อนตัดสินใจว่าจะเพิ่มอะไรเข้าระบบ — admin เท่านั้น (เป็นการยิง traffic จริง) จำกัดขนาด range ได้ และเปิดระบบ public range ได้ตาม config |
| VMware ESXi | ตรวจพบ ESXi ระหว่าง sweep/monitor แล้วดึงรายการ VM พร้อมสถานะมาแสดง (SNMP + SSH) — รองรับ SSH crypto ของ ESXi รุ่นเก่า |
| VM Guest Access | เข้าเครื่อง guest ของ VM ด้วย SSH/RDP ตรง ๆ โดยไม่ต้องลงทะเบียนเป็น Host — IP เดาให้จาก VMware Tools, credential เก็บเข้ารหัสต่อ VM, host key pin แยกต่อ VM เหมือน Host ปกติ |
| VM ↔ Host linking | ผูก VM เข้ากับ hypervisor ที่มันรันอยู่ — เห็นความสัมพันธ์บนหน้ารายละเอียด พร้อมตรวจความถูกต้องให้ |
🔔 การแจ้งเตือน
| ฟีเจอร์ | รายละเอียด |
|---|---|
| เหตุการณ์ล่ม / ฟื้น | แจ้งทันทีเมื่อ service เปลี่ยน running → stopped (🔴) และ stopped → running (🟢) รวมถึง server ออฟไลน์ / กลับมาออนไลน์ (พร้อมข้อความ error) — มี cooldown 60 วินาที/เหตุการณ์ กัน spam เมื่อ service กระตุก |
| 7 ช่องทาง | Email (SMTP) · Microsoft Teams · Webhook (custom headers) · LINE · Telegram · WeChat (WeCom) · WhatsApp — เปิดได้หลายช่องทางพร้อมกัน มีปุ่มทดสอบการส่ง และประวัติการส่งย้อนหลัง 7 วัน (secret เข้ารหัส Fernet ทั้งหมด) |
| Web Push (PWA) | แจ้งเตือนเด้งบนมือถือ/แท็บเล็ตแบบแอป — ผู้ใช้แต่ละคนเปิดเองได้ (ทุก role) และได้เฉพาะเหตุการณ์ของเครื่องที่ตัวเองมีสิทธิ์เห็น |
| Metric-based Alerting | แจ้ง ก่อน service จะล่มจริง — ตั้งกฎ threshold บน CPU/RAM/Disk/Latency (เช่น "Disk > 90% ค้างเกิน 5 นาที") ได้ทั้งระดับทุกเครื่องหรือเฉพาะเครื่อง แยก warning/critical |
| Active Alerts | หน้าบน Dashboard แสดง alert ที่กำลัง firing แบบ realtime — สถานะบันทึกลง DB จึงไม่แจ้งซ้ำหลัง backend restart |
🛡 ความปลอดภัยและช่องโหว่
| ฟีเจอร์ | รายละเอียด |
|---|---|
| VA Scan | สแกนช่องโหว่เครื่อง Linux ผ่าน SSH แบบไม่ต้องลง agent — CVE ของ package, ตรวจ hardening และพอร์ตที่เปิดอยู่ พร้อม export CSV และ API ให้ third-party ดึงผล · นำเข้าผล Nessus ได้ |
| แหล่งข้อมูลช่องโหว่ตั้งเองได้ | OSV.dev หรือ mirror ภายในองค์กร + NVD เสริมคะแนน CVSS (มี EPSS) — API key เข้ารหัสเก็บ มีปุ่มทดสอบการเชื่อมต่อ และปิดทั้งหมดได้สำหรับระบบ air-gapped |
| Package Updates | ตรวจ update ค้างอยู่ของเครื่อง Linux (apt/dnf/apk) แบบพื้นหลัง — แยกนับ security update + ธง "ต้อง reboot" · ปุ่มตรวจทันที / อัปเดตทั้งหมดหรือเฉพาะ security (สตรีม output สด) · badge สรุปทั้ง fleet บน Dashboard |
| SSL/Certificate Expiry | เฝ้าวันหมดอายุใบรับรอง TLS ของ endpoint ใดก็ได้ (ภายใน/ภายนอก) — ตรวจตรงจาก backend รองรับ self-signed/internal CA แจ้งเตือนล่วงหน้าตามเกณฑ์วันที่ตั้ง พร้อมหน้าจัดการและสรุปบน Dashboard |
| การเข้ารหัส | Credentials ทุกชนิด (password / private key / SNMP community / SNMPv3 key / secret ของ channel) เข้ารหัส Fernet ก่อนลง PostgreSQL |
| TOFU host key | host key ของแต่ละเครื่องถูก pin ตั้งแต่เชื่อมต่อครั้งแรก — key เปลี่ยน = ปฏิเสธทันที (admin กด reset ได้) กัน server ถูกสวมบทบาท |
| fail2ban ในตัว | บล็อก IP หลังพยายายล็อกอินพลาด 5 ครั้ง (แบน 15 นาที) พร้อมหน้าดูประวัติ |
| อื่น ๆ | JWT auth · WebSocket ใช้ ticket อายุ 60 วินาทีแบบใช้ครั้งเดียว · nginx เสิร์ฟ HTTPS เสมอ (cert ออกให้เองหรือวางขององค์กร) · บังคับเปลี่ยนรหัสผ่าน default ก่อนใช้งาน · audit log ทุก action |
👥 ผู้ใช้ สิทธิ์ และการล็อกอิน
| ฟีเจอร์ | รายละเอียด |
|---|---|
| User Group (RBAC) | Admin สร้างกลุ่มแล้วติ๊ก assign ได้ทั้งระดับ server (เห็นทั้งเครื่อง) และ service เดี่ยว — สมาชิกเห็นเฉพาะที่ได้รับ ผู้ใช้ที่ไม่สังกัดกลุ่มไม่เห็นอะไรเลย (default ปิดกว้าง) |
| Role | admin (ทุกอย่าง) · user (สั่ง start/stop/restart ได้เฉพาะที่ assign) · viewer (ดู + อ่าน log อย่างเดียว) — ซ่อนเมนู/ปุ่มตามสิทธิ์ และ backend บังคับซ้ำทุก endpoint รวมถึง WebSocket ไม่ใช่แค่ซ่อนปุ่มฝั่งเว็บ |
| LDAP Login | เชื่อม Active Directory / OpenLDAP (มี StartTLS) — ปุ่มทดสอบ bind/search/login 3 ขั้น · ล็อกอินผ่านครั้งแรกสร้างบัญชีอัตโนมัติ · สิทธิ์มองเห็นยังคุมด้วยกลุ่มในระบบเสมอ |
| OAuth2 SSO | Authorization Code flow — Google / GitHub / OIDC ทั่วไป (Keycloak, Dex, Authentik, Azure AD) มี preset ให้ · signed state กัน CSRF · ชื่อที่ซ้อนกับบัญชี Local/LDAP ถูกปฏิเสธ (ไม่มี account takeover ข้ามแหล่งยืนยันตัวตน) |
| Guard ในตัว | ลบ/ลดสิทธิ์ admin คนสุดท้ายไม่ได้ · ลบตัวเองไม่ได้ · เปลี่ยนรหัสผ่านแล้ว revoke token เดิมทุกใบ |
🤖 AI และรายงาน
| ฟีเจอร์ | รายละเอียด |
|---|---|
| AI Agent + Chat | container agent (FastAPI + LangGraph) เฝ้าเหตุการณ์แบบ realtime วิเคราะห์เหตุล่มพร้อมหลักฐาน และเป็นคู่สนทนาในหน้า ผู้ช่วย AI — สั่งงานผ่านแชทได้โดย ต้องกดยืนยันก่อนลงมือทุกครั้ง เลือกค่าย LLM ได้ตอนรัน |
| Skills | เสริมความรู้เฉพาะองค์กรให้ agent ด้วยไฟล์ Markdown ที่แอดมินอัปโหลด |
| เคส AI Agent (Incidents) | หน้ารวมเคสที่ agent เปิดไว้ — ติดตามสถานะ แก้ปัญหา และปิดเคสได้จากหน้าเดียว พร้อมค้นหา/แบ่งหน้า |
| Insights / SLA | หน้า วิเคราะห์ / SLA — uptime % และเวลาที่ล่วงช่วง ต่อโฮสต์/service, คะแนนความเสี่ยง พร้อมปัจจัยที่ทำให้เสีย และ พยากรณ์ดิสก์เต็ม (เตือนเฉพาะเครื่องที่จะเต็มใน 30 วัน) |
| รายงานผู้บริหาร (PDF) | สรุปรายเดือนเป็น PDF ภาษาไทย (A4, ฟอนต์ shaping ถูกต้อง) — uptime เทียบเป้า SLA, ความเสี่ยง, พยากรณ์ · สร้างบทสรุปโดย AI agent และส่งอีเมลถึงผู้บริหารได้จากหน้าเว็บ |
🧰 เครื่องมือและอื่น ๆ
| ฟีเจอร์ | รายละเอียด |
|---|---|
| Dashboard | ภาพรวมทั้ง fleet — สถานะสรุป, Active Alerts, badge package updates / SSL ที่ใกล้หมดอายุ |
| Deploy Services | สร้างและสั่งรัน service ใหม่ (Docker / PM2) บนเครื่องที่เลือกผ่าน SSH ได้จากหน้าเว็บ |
| Docker Inventory | รวบรวม image / volume / network ของทุกเครื่องที่รัน Docker มาดูในที่เดียว |
| Public Share | สร้างลิงก์สาธารณะของโฮสต์หนึ่งตัว (/publish/<token>) — คนที่มี token เห็นกราฟ + รายการ services แบบ read-only ฝังข้ามระบบได้ ไม่ต้อง login ตั้งวันหมดอายุ/รอบรีเฟรชได้ มี rate limiting และตัดข้อมูลโครงข่ายภายในออกทั้งหมด |
| AIMM (จัดการโมเดล/GPU) | control plane สำหรับ GPU node, โมเดล และ LLM gateway — แอปแยกที่ฝังมาเป็น iframe เข้าผ่าน OpsWatch ได้เลยไม่ต้อง login ซ้ำ (เมนูนี้เฉพาะ admin) |
| License Key | ขายเป็น package จำนวนโฮสต์ + อายุ — activate ได้หลายใบ โควตารวมกัน · ไม่มี key หรือหมดอายุ = เพิ่มโฮสต์ใหม่ไม่ได้ แต่ไม่หยุดมอนิเตอร์เครื่องเดิมเด็ดขาด |
| PWA | ติดตั้งลงหน้าจอโฮมได้ทุกแพลตฟอร์ม (iOS 16.4+ / Android / Desktop) — deploy เวอร์ชันใหม่แล้วแอปที่เปิดค้างมีแถบเตือนให้โหลด |

