Zabbix Monitoring Setup 2026

Zabbix Monitoring ติดตั้งและ Dashboard ฉบับสมบูรณ์ 2026

Zabbix เป็น enterprise-grade monitoring platform ที่ใช้งานฟรี open source monitor ได้ทุกอย่างตั้งแต่ server network device application database container ไปจนถึง cloud services ด้วย agent-based และ agentless monitoring จุดเด่นของ Zabbix คือ auto-discovery template system ที่ครบถ้วน alerting ที่ยืดหยุ่น และ web UI ที่สวยงามพร้อมใช้งานทันที

บทความนี้ผมจะพาติดตั้ง Zabbix 7 LTS บน Ubuntu 24.04 ตั้งแต่ server database web frontend agent จนถึงสร้าง dashboard ตั้ง alert ส่ง notification ไป LINE และ Telegram ทุกคำสั่งทดสอบจริงใช้งานได้เลย สำหรับ monitoring แบบ metrics-based ดู Prometheus Monitoring เปรียบเทียบครับ

สารบัญ

1. ทำไมต้อง Zabbix

Zabbix เป็น monitoring tool ที่มีมานานกว่า 20 ปี ใช้ในองค์กรใหญ่ทั่วโลก รวมถึงธนาคาร โรงพยาบาล มหาวิทยาลัย และ telco ข้อดีที่โดดเด่นคือ

2. สถาปัตยกรรมของ Zabbix

Zabbix ประกอบด้วย components หลัก 4 ตัว Zabbix Server เป็น core ที่รับ data จาก agent ประมวลผล trigger และส่ง alert Zabbix Database เก็บ configuration และ historical data ใช้ MySQL หรือ PostgreSQL Zabbix Web Frontend เป็น PHP web application สำหรับ configuration และ visualization Zabbix Agent ติดตั้งบน host ที่ต้องการ monitor เก็บ metrics แล้วส่งให้ server

3. ติดตั้ง Zabbix Server

# เพิ่ม Zabbix repository
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
sudo apt update

# ติดตั้ง Zabbix server, frontend, agent
sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

# ติดตั้ง MySQL
sudo apt install -y mysql-server

# สร้าง database
sudo mysql -e "CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
sudo mysql -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'SecureZabbixP@ss';"
sudo mysql -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';"
sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 1;"

# Import schema
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p'SecureZabbixP@ss' zabbix

# ตั้ง database password ใน config
sudo sed -i 's/# DBPassword=/DBPassword=SecureZabbixP@ss/' /etc/zabbix/zabbix_server.conf

# ตั้ง Nginx สำหรับ Zabbix frontend
sudo nano /etc/zabbix/nginx.conf
# แก้ listen 8080 เป็น listen 80
# แก้ server_name เป็น domain ของคุณ

# Start services
sudo systemctl enable --now zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm

เปิด browser ไปที่ http://YOUR_IP เข้าหน้า Zabbix Setup Wizard ใส่ database password ที่ตั้งไว้ login ด้วย Admin / zabbix แล้วเปลี่ยน password ทันที

4. ติดตั้ง Zabbix Agent 2

# บน host ที่ต้องการ monitor (Ubuntu)
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
sudo apt update
sudo apt install -y zabbix-agent2

# Config agent
sudo nano /etc/zabbix/zabbix_agent2.conf

# แก้ Server= เป็น IP ของ Zabbix Server
Server=10.0.1.10
ServerActive=10.0.1.10
Hostname=web-server-01

# Start agent
sudo systemctl enable --now zabbix-agent2

# เปิด firewall (port 10050 สำหรับ passive check)
sudo ufw allow from 10.0.1.10 to any port 10050

5. เพิ่ม Host แรกใน Web UI

เข้า Zabbix Web UI ไปที่ Monitoring จากนั้น Hosts จากนั้น Create host กรอก Host name เป็นชื่อเดียวกับ Hostname ใน agent config เพิ่ม IP address ของ host เลือก Template เช่น Linux by Zabbix agent กด Add รอสักครู่ Zabbix จะเริ่มเก็บ data จาก host นั้น

สำหรับ server ที่ใช้ Proxmox VE สามารถ monitor Proxmox host และ VM ทั้งหมดผ่าน Zabbix ได้โดยใช้ template Proxmox by HTTP

6. Template และ Auto-discovery

# Template ที่ใช้บ่อย:
# - Linux by Zabbix agent          → CPU, RAM, Disk, Network
# - Windows by Zabbix agent        → Windows performance counters
# - MySQL by Zabbix agent 2        → MySQL metrics
# - PostgreSQL by Zabbix agent 2   → PostgreSQL metrics
# - Nginx by Zabbix agent          → Nginx stub_status
# - Docker by Zabbix agent 2       → Container metrics
# - SNMP Device                    → Network devices

# Auto-discovery: ค้นหา host ใน network อัตโนมัติ
# Data Collection → Discovery → Create Discovery Rule
# IP range: 10.0.1.1-10.0.1.254
# Check: Zabbix Agent ping
# Device uniqueness: IP address
# Action: Auto add host + link template

Auto-discovery ช่วยประหยัดเวลามากเมื่อมี host จำนวนมาก แค่ตั้ง discovery rule แล้ว Zabbix จะ scan network เพิ่ม host และ assign template ให้อัตโนมัติ

7. สร้าง Dashboard

Zabbix 7 มี dashboard ที่สวยงามและ customizable เข้า Monitoring จากนั้น Dashboard จากนั้น Create dashboard เพิ่ม widget ตามต้องการ

สำหรับ visualization ที่ซับซ้อนกว่า Zabbix dashboard สามารถ integrate กับ Grafana ได้โดยใช้ Zabbix plugin for Grafana ทำให้ใช้ Grafana dashboard ที่สวยกว่ากับ Zabbix data ได้

8. ตั้ง Trigger และ Alert

# ตัวอย่าง Trigger expressions:

# CPU สูงกว่า 90% นาน 5 นาที
avg(/web-server-01/system.cpu.util,5m)>90

# RAM ใช้เกิน 95%
last(/web-server-01/vm.memory.utilization)>95

# Disk เหลือน้อยกว่า 10%
last(/web-server-01/vfs.fs.size[/,pfree])<10

# Service ไม่ทำงาน
last(/web-server-01/net.tcp.service[http,,80])=0

# Host unreachable
nodata(/web-server-01/agent.ping,5m)=1

Trigger severity มี 5 ระดับ Not classified Information Warning Average High Disaster ตั้ง severity ให้เหมาะสม เช่น disk เหลือ 20% เป็น Warning disk เหลือ 10% เป็น High disk เหลือ 5% เป็น Disaster

9. ส่ง Notification ไป LINE/Telegram

# Telegram Webhook Media Type:
# Alerts → Media types → Create media type
# Name: Telegram
# Type: Webhook
# Parameters:
#   - Message: {ALERT.MESSAGE}
#   - Subject: {ALERT.SUBJECT}
#   - Token: YOUR_BOT_TOKEN
#   - ChatID: YOUR_CHAT_ID

# Script:
var params = JSON.parse(value);
var req = new HttpRequest();
req.addHeader('Content-Type: application/json');
var body = JSON.stringify({
    chat_id: params.ChatID,
    text: params.Subject + '\n' + params.Message,
    parse_mode: 'HTML'
});
var resp = req.post(
    'https://api.telegram.org/bot' + params.Token + '/sendMessage',
    body
);
return resp;
# LINE Notify Webhook:
# Parameters:
#   - Token: YOUR_LINE_NOTIFY_TOKEN
#   - Message: {ALERT.MESSAGE}

# Script:
var params = JSON.parse(value);
var req = new HttpRequest();
req.addHeader('Authorization: Bearer ' + params.Token);
req.addHeader('Content-Type: application/x-www-form-urlencoded');
var resp = req.post(
    'https://notify-api.line.me/api/notify',
    'message=' + encodeURIComponent(params.Message)
);
return resp;

10. Monitor Docker Containers

# Zabbix Agent 2 มี Docker plugin ในตัว
# เพิ่ม user zabbix เข้า docker group
sudo usermod -aG docker zabbix
sudo systemctl restart zabbix-agent2

# ใน Zabbix Web UI:
# เพิ่ม template "Docker by Zabbix agent 2" ให้ host
# Zabbix จะ auto-discover containers ทั้งหมด
# แล้ว monitor CPU Memory Network I/O ของแต่ละ container

# Custom item สำหรับ container เฉพาะ:
docker.container.info[nginx-proxy,Status]
docker.container.stats[nginx-proxy,cpu_percent]
docker.container.stats[nginx-proxy,memory_usage]

สำหรับ Docker management แบบครบวงจรอ่าน Docker Compose Multi-Container ครับ

11. SNMP Monitoring

# Monitor Cisco Switch ผ่าน SNMP
# สร้าง Host → Interfaces → SNMP
# IP: 10.0.1.1
# SNMP version: SNMPv2
# Community: public

# เพิ่ม template: Cisco IOS by SNMP
# Zabbix จะ discover interfaces ทั้งหมด
# แล้ว monitor traffic bandwidth errors discards

# ทดสอบ SNMP จาก command line
snmpwalk -v2c -c public 10.0.1.1 sysDescr.0
# SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2960 ...

สำหรับรีวิวอุปกรณ์ network เช่น switch router และ server hardware แนะนำ SiamLancard.com และ Siam2R.com ครับ

12. Troubleshooting

Agent ไม่เชื่อมต่อ Server

# ตรวจ firewall
sudo ufw status
# ต้องเปิด port 10050 (passive) และ 10051 (active)

# ตรวจ agent log
sudo tail -f /var/log/zabbix/zabbix_agent2.log

# ทดสอบ connectivity จาก server
zabbix_get -s 10.0.1.20 -k agent.ping
# 1 = OK, timeout = firewall block หรือ agent ไม่รัน

Dashboard ไม่แสดง data

ตรวจว่า host status เป็น Enabled ไม่ใช่ Disabled ตรวจว่า template ถูก link กับ host ตรวจว่า agent Hostname ตรงกับ Host name ใน Zabbix Web UI

Database โตเร็วเกินไป

# ตั้ง housekeeping ลบ data เก่า
# Administration → Housekeeping
# History storage period: 30 วัน
# Trend storage period: 365 วัน

# หรือใช้ TimescaleDB สำหรับ data compression
# ช่วยลดขนาด database ได้ 10-20 เท่า

Zabbix กับ Monitoring Strategy ในองค์กร

จากประสบการณ์ที่ deploy Zabbix ให้หลายองค์กร ผมพบว่า Zabbix เหมาะที่สุดสำหรับ infrastructure monitoring แบบ traditional ที่ต้อง monitor physical server virtual machine network device storage และ database ถ้าองค์กรใช้ Kubernetes หรือ microservices เป็นหลักแนะนำใช้ Prometheus เป็น primary monitoring แล้วใช้ Zabbix สำหรับ infrastructure layer ที่อยู่ด้านล่าง

สำหรับองค์กรที่มี server มากกว่า 100 เครื่อง ควรใช้ Zabbix Proxy เพื่อกระจาย load ตั้ง proxy ไว้แต่ละ data center หรือ site แล้วให้ proxy รวบรวม data จาก agent ส่งมาให้ central Zabbix Server ลด bandwidth และ latency ได้มาก สำหรับ automation การติดตั้ง Zabbix Agent ไปทุกเครื่องพร้อมกันใช้ Ansible Automation ครับ

สำหรับผู้ที่สนใจเรื่อง monitoring ด้านการเงินและการลงทุน iCafeForex.com สอน Forex ครบวงจร monitor ตลาดเงินเหมือน Zabbix monitor server รับสัญญาณเทรดฟรีจาก XMSignal.com/th ครับ

13. FAQ

Zabbix กับ Prometheus ต่างกันอย่างไร ใช้อะไรดี

Zabbix เป็น all-in-one monitoring platform เหมาะกับ infrastructure monitoring แบบ traditional Prometheus เป็น metrics-based monitoring เหมาะกับ cloud-native และ Kubernetes ถ้า monitor server แบบ traditional ใช้ Zabbix ถ้า monitor containers และ microservices ใช้ Prometheus

Zabbix ต้องใช้ server spec ขั้นต่ำเท่าไหร่

สำหรับ 100 hosts ใช้ CPU 2 cores RAM 4 GB Disk 20 GB SSD สำหรับ 500 hosts ใช้ CPU 4 cores RAM 8 GB Disk 100 GB SSD สำหรับ 1000 hosts ขึ้นไปใช้ CPU 8 cores RAM 16 GB Disk 500 GB SSD

Zabbix Agent กับ Agent 2 ต่างกันอย่างไร

Agent 2 เขียนด้วย Go ใหม่ทั้งหมด รองรับ plugin system มี built-in plugins สำหรับ Docker PostgreSQL MySQL MongoDB Redis performance ดีกว่า แนะนำใช้ Agent 2 สำหรับการติดตั้งใหม่ทุกครั้ง

Zabbix รองรับ SNMP monitoring ไหม

รองรับครบถ้วน ทั้ง SNMPv1 v2c และ v3 monitor network device ได้ทั้งหมด มี template สำเร็จรูปสำหรับอุปกรณ์ยี่ห้อดังเช่น Cisco HP Dell และ Juniper

Zabbix ส่ง alert ผ่าน LINE หรือ Telegram ได้ไหม

ได้ครับ ใช้ custom media type แบบ webhook สร้าง JavaScript สำหรับ format message แล้วเรียก API ของ LINE Notify หรือ Telegram Bot ได้เลย

ลงทุนเวลาตั้ง Zabbix สักครึ่งวัน คุณจะรู้ทุกอย่างที่เกิดขึ้นกับ infrastructure ของคุณแบบ real-time ไม่ต้องรอ user แจ้ง ไม่ต้องเดาว่าปัญหาอยู่ที่ไหน Zabbix บอกคุณทุกอย่าง ทำให้ทีม IT ของคุณเปลี่ยนจาก reactive เป็น proactive ครับ

สรุป

Zabbix เป็น monitoring tool ที่ผมใช้มานานกว่า 10 ปี ตั้งแต่ version 2 จนถึง version 7 ในปัจจุบัน ทุก version มีการปรับปรุงที่ดีขึ้นเสมอ โดยเฉพาะ version 7 ที่ web UI ใหม่ทั้งหมด สวยงาม ใช้งานง่าย dashboard ปรับแต่งได้อิสระ สำหรับใครที่กำลังมองหา monitoring tool ที่ฟรี ครบถ้วน และ scale ได้ Zabbix คือคำตอบที่ดีที่สุดครับ

Best Practices สำหรับ Zabbix ในองค์กร

จากประสบการณ์ที่ deploy Zabbix ให้หลายองค์กร ผมมี best practices ที่อยากแนะนำ ข้อแรกคือใช้ template อย่าสร้าง item และ trigger ที่ host level โดยตรง เพราะจะจัดการยากมากเมื่อมี host เป็นร้อยตัว สร้าง template แล้ว link กับ host จะ maintain ง่ายกว่ามาก ข้อที่สองคือตั้ง housekeeping ให้เหมาะสม เก็บ history ไม่เกิน 30 วัน trend ไม่เกิน 365 วัน เพื่อไม่ให้ database โตจนกิน disk ทั้งหมด ข้อที่สามคือใช้ Zabbix Proxy สำหรับ remote site ลด bandwidth และ latency ข้อที่สี่คือตั้ง alert escalation ให้ส่ง notification ไป on-call engineer ก่อน ถ้าไม่ acknowledge ภายใน 15 นาทีให้ส่งไป manager ครับ

Zabbix เป็น monitoring platform ที่ครบถ้วนที่สุดในโลก open source เหมาะกับทุกขนาดองค์กร ตั้งแต่ home lab ที่มี server 2 ถึง 3 เครื่อง ไปจนถึง enterprise ที่มี server หลายพันเครื่อง ด้วย template library ที่ครบ auto-discovery ที่ฉลาด และ alerting ที่ยืดหยุ่น Zabbix ทำให้คุณรู้ปัญหาก่อนที่ user จะรู้ ลงทุนเวลาตั้ง Zabbix สักครึ่งวัน แล้วคุณจะนอนหลับสบายได้ทุกคืนครับ

บทความแนะนำ

Monitor พอร์ตลงทุนของคุณแบบ real-time iCafeForex.com สอน Forex ครบวงจร พร้อม EA Trading อัตโนมัติ

รับ สัญญาณเทรด Forex ฟรีจาก XMSignal