ติดตั้ง Uptime Kuma เฝ้าดูเว็บไซต์ของตัวเอง
การรู้ว่าเว็บล่มจากการที่ลูกค้าโทรมาแจ้งคือสถานการณ์ที่ควรหลีกเลี่ยง ระบบเฝ้าดูที่ตรวจสอบทุกนาทีและแจ้งเตือนทันทีทำให้ทีมงานรู้ก่อนและแก้ได้ก่อนที่ผู้ใช้จะได้รับผลกระทบเป็นวงกว้าง
Uptime Kuma เป็นเครื่องมือที่ติดตั้งง่ายที่สุดในกลุ่มนี้ ใช้ทรัพยากรน้อย และรองรับการแจ้งเตือนเข้าช่องทางที่คนไทยใช้จริงอย่าง LINE ได้ในตัว
สิ่งที่ต้องเตรียม
- เซิร์ฟเวอร์ที่มี Docker RAM เพียง 512 MB ก็เพียงพอ
- โดเมนย่อยสำหรับเข้าหน้าจอ
- ควรติดตั้งบนเซิร์ฟเวอร์คนละเครื่องกับเว็บที่จะเฝ้าดู เพราะหากอยู่เครื่องเดียวกันและเครื่องนั้นล่ม ระบบเฝ้าดูก็ล่มไปด้วยจึงแจ้งเตือนไม่ได้
ขั้นตอนที่ 1: ติดตั้ง
sudo mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
sudo nano docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
environment:
TZ: Asia/Bangkok
sudo docker compose up -d
sudo docker compose logs -f
ขั้นตอนที่ 2: ตั้ง Nginx และ SSL
sudo nano /etc/nginx/sites-available/uptime
server {
listen 80;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
sudo ln -s /etc/nginx/sites-available/uptime /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d status.example.com --agree-tos -m [email protected] --redirect
WebSocket จำเป็นสำหรับหน้าจอนี้ เพราะข้อมูลอัปเดตแบบเรียลไทม์
ขั้นตอนที่ 3: สร้างการตรวจสอบ
เข้าหน้าเว็บแล้วสร้างบัญชีผู้ดูแล จากนั้นกด Add New Monitor ชนิดที่ใช้บ่อยและควรตั้งไว้
เว็บไซต์ (HTTP/s)
- URL ใส่ที่อยู่เต็ม
- Heartbeat Interval 60 วินาที
- Retries 2 ครั้งก่อนถือว่าล่ม ลดการแจ้งเตือนผิดพลาดจากเครือข่ายสะดุดชั่วคราว
- Accepted Status Codes 200-299
ตรวจเนื้อหาในหน้าเว็บ (HTTP/s - Keyword)
ใช้เมื่อเว็บตอบ 200 ได้แต่แสดงหน้าข้อผิดพลาด ใส่คำที่ต้องมีในหน้าปกติ เช่น ชื่อบริษัท ทำให้จับปัญหาที่การตรวจสอบธรรมดามองไม่เห็น
วันหมดอายุของใบรับรอง SSL
ในการตรวจสอบแบบ HTTP ให้ตั้ง Certificate Expiry Notification ไว้ที่ 14 และ 7 วัน ป้องกันใบรับรองหมดอายุโดยไม่รู้ตัว
บริการอื่น
- TCP Port สำหรับฐานข้อมูลหรือ SSH
- Ping สำหรับอุปกรณ์เครือข่าย
- DNS ตรวจว่าระเบียนยังชี้ถูกที่
- Push สำหรับงานตามเวลา โดยให้สคริปต์เรียก URL เมื่อทำงานสำเร็จ หากไม่มีการเรียกภายในเวลาที่กำหนดจะถือว่าล้มเหลว ซึ่งจับกรณีที่งานสำรองข้อมูลหยุดทำงานเงียบ ๆ ได้
ขั้นตอนที่ 4: ตั้งการแจ้งเตือน
ไปที่ Settings แล้ว Notifications กด Setup Notification
LINE Notify
ขอ Token จากหน้าเว็บของ LINE Notify แล้วเลือกชนิด LINE Notify ใส่ Token ที่ได้ ทดสอบด้วยปุ่ม Test
อีเมล
Hostname: smtp.example.com
Port: 587
Security: STARTTLS
Username: [email protected]
Password: รหัสผ่าน
From: [email protected]
To: [email protected]
Telegram
สร้างบอทผ่าน BotFather เอา Token มาใส่ และหา Chat ID ด้วยการส่งข้อความหาบอทแล้วเรียก
curl -s "https://api.telegram.org/bot<TOKEN>/getUpdates" | grep -o '"id":[0-9-]*' | head -1
ตั้งการแจ้งเตือนอย่างน้อยสองช่องทางเสมอ เผื่อช่องทางหนึ่งมีปัญหา
ขั้นตอนที่ 5: สร้างหน้าสถานะสาธารณะ
ไปที่ Status Pages แล้ว New Status Page ตั้งชื่อและที่อยู่ เลือกว่าจะแสดงบริการไหนบ้าง
ประโยชน์คือเมื่อเกิดเหตุ ลูกค้าเปิดดูเองได้ว่าระบบไหนมีปัญหาและกำลังแก้อยู่ ลดจำนวนสายที่โทรเข้ามาถามได้มาก
แสดงหน้านี้บนโดเมนแยก เช่น status.example.com และต้องอยู่คนละเซิร์ฟเวอร์กับระบบหลัก ไม่เช่นนั้นเมื่อระบบหลักล่ม หน้าสถานะก็เปิดไม่ได้
เพิ่มประกาศเหตุการณ์ด้วยปุ่ม Create Incident เพื่อแจ้งความคืบหน้าระหว่างแก้ไข
ขั้นตอนที่ 6: ตั้งช่วงเวลาบำรุงรักษา
ไปที่ Maintenance แล้วกำหนดช่วงเวลาที่จะปิดระบบตามแผน ทำให้ไม่มีการแจ้งเตือนและไม่กระทบสถิติความพร้อมใช้งาน ซึ่งสำคัญเมื่อต้องรายงานตัวเลขให้ผู้บริหารหรือลูกค้า
ขั้นตอนที่ 7: สำรองข้อมูล
sudo tar czf /var/backups/uptime-kuma-$(date +%F).tar.gz -C /opt/uptime-kuma data
ข้อมูลทั้งหมดอยู่ในโฟลเดอร์เดียว จึงสำรองและย้ายเครื่องได้ง่าย
ปัญหาที่พบบ่อย
หน้าเว็บไม่อัปเดตแบบเรียลไทม์
Nginx ไม่ส่งต่อ WebSocket ตรวจคอนฟิกตามขั้นตอนที่ 2
แจ้งเตือนผิดพลาดบ่อย
เพิ่มค่า Retries เป็น 2-3 ครั้ง และเพิ่มระยะเวลา Heartbeat หากเว็บปลายทางตอบช้าโดยธรรมชาติ ตรวจด้วยว่าเซิร์ฟเวอร์ที่รัน Uptime Kuma มีเครือข่ายที่เสถียร
ตรวจเว็บตัวเองแล้วขึ้นล่มทั้งที่เปิดได้
หากเว็บอยู่หลัง Cloudflare หรือมีระบบป้องกันบอต อาจบล็อกคำขอจากระบบเฝ้าดู เพิ่ม IP ของเซิร์ฟเวอร์เข้ารายการที่อนุญาต หรือตั้ง User-Agent เฉพาะแล้วยกเว้นที่ฝั่งเว็บ
ลืมรหัสผ่านผู้ดูแล
รีเซ็ตได้จากในคอนเทนเนอร์
sudo docker compose exec uptime-kuma node extra/reset-password.js
ต้องการระบบเฝ้าระวังที่มีทีมวิศวกรดูแลตลอด 24 ชั่วโมง ติดต่อ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี








