การทำระบบ Web Traffic Monitor โดยใช้ Open source software : ZABBIX

Ake_.Net JPK
15 min readJan 25, 2024

--

การนำอุปกรณ์ Network devices มาเชื่อมต่อกันให้เป็นระบบเครือข่ายขึ้นมาเพื่อใช้งานตามวัตถุประสงค์ได้แล้วนั้น อีกหนึ่งความสำคัญที่ขาดไม่ได้นั่นคือ การดูแลรักษาระบบเครือข่ายให้พร้อมใช้งานได้ปกติ ตลอดเวลา หรือ ให้เกิด Down time น้อยที่สุด หากเกิดปัญหา เราสามารถวิเคราะห์ปัญหาและแก้ไขให้ได้เร็วที่สุดได้ด้วย

รูปจาก https://www.zabbix.com/

ดังนั้น เราจำเป็นที่จะต้องมีระบบที่ใช้เฝ้าดู ตรวจสอบ Network devices ต่างๆ เช่น ใช้ Monitor การทำงานของ Switch , Router ซึ่งในปัจจุบันมี Software ให้เลือกใช้มากมาย มีทั้งเสียค่าใช้จ่าย และมีทั้งแบบไม่เสียค่าใช้จ่าย คือ Opensource Softwares ต่างๆ เช่น CACTI , MRTG , NAGIOS หรืออื่นๆ
ซึ่งบทความนี้ ทางผู้เขียนจะมาแนะนำวิธีการใช้งาน Open source software ที่ชื่อว่า “ ZABBIX “

รูปจากเว็บ Zabbix ยืนยันว่า 100% open source

จากประสบการณ์ของผู้เขียนนั้น ได้เคยใช้โปรแกรม Cacti ทำให้เห็นความความแตกต่างระหว่าง Cacti และ Zabbix ซึ่งทั้งสองที่ทางผู้เขียนได้เคยใช้งานนั้นมีจุดเด่น และจุดด้อยแตกต่างกันไป ซึ่งในการทำงานจริง สามารถใช้ควบคู่กันไประหว่างทั้งสองโปรแกรมนี้ ก็จะทำให้เกิดประโยชน์กับผู้ใช้อย่างเรามากขึ้น

โปรแกรม Zabbix เป็น Web Application ที่ใช้ในด้าน Network Traffic & System Monitor ซึ่งการติดตั้งนั้นจะมีหลายวิธี รองรับระบบปฏิบัติการได้หลากหลาย ในบทความนี้ จะมาแนะนำวิธีติดตั้ง ใน ระบบปฏิบัติการ Linux : Ubuntu Server 22.04 และทางผู้เขียนจะสอนวิธีการคอนฟิก และการใช้งานเบื้องต้น เพื่อให้ผู้อ่านได้ทราบแนวทาง เพื่อนำไปประยุกต์ใช้ในงานของแต่ละท่านได้ต่อไป

รูปแสดง Network Diagram เพื่อใช้ในการอธิบายต่อไป

จากรูป Network Diagram เราจะติดตั้งระบบ Web traffic monitor โดยใช้โปรแกรม Zabbix ซึ่งการทำงานของโปรแกรม Zabbix นั้นจะทำงานเป็น SNMP client โดยจะไปดึงข้อมูลจาก Router mikrotik ทั้งสองตัวผ่านเครื่อข่าย internet โดยใช้ Protocol SNMP ซึ่ง Mikrotik เปิดการทำงาน SNMP Server

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

ในการติดตั้งนั้น ทางผู้เขียนแนะนำควรติดตั้งโปรแกรมตามลำดับดังนี้

1.ติดตั้ง Ubuntu Server
2.ติดตั้ง Apache Webserver
3.ติดตั้ง MySQL Server
4.ติดตั้ง PHP และ extension
5.ติดตั้ง Zabbix
6.การคอนฟิก และใช้งาน Zabbix
7.การตั้งค่าใช้งาน Network Map

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

1. ขั้นตอนการติดตั้ง Ubuntu Server

ทำการ download ubuntu os version 22.04 ได้ที่ url : https://drive.google.com/file/d/1sXkR2lggEL_AyCpPOOcDSNV34NW6Vvu7/view?usp=sharing

เมื่อ download มาแล้ว จะ Write ลงแผ่น DVD หรือ จะติดตั้งด้วย Flashdrive boot หรือ จะติดตั้งลง Cloud Server ขึ้นอยู่กับการออกแบบระบบและความต้องการของผู้ใช้งานได้เลย

จากตัวอย่างที่ผู้เขียนแนะนำนี้ จะทำการติดตั้ง Ubuntu Server โดยติดตั้งด้วยแผ่น DVD Ubuntu server เมื่อเปิดเครื่องขึ้นมา ( จากรูป network diagram คือเครื่อง Zabbix Server ) ให้เลือก Boot from DVD-Rom ระบบจะให้ Install ให้ทำการกด Enter เพื่อ Install ได้เลย

เลือกภาษา English กด Enter ต่อไปได้เลย จากนั้นให้ เลือก Continue without updating จากนั้นกด Enter ต่อไป จะขึ้นหน้าจอการตั้งค่า Keyboard ให้เลือก Done แล้วกด Enter จากนั้นจะขึ้นหน้าจอให้เลือก Choose type ระบบจะเลือกค่า Default ให้แล้วเป็น Ubuntu Server ให้เลือก เลือก Done กด Enter ต่อได้เลย

ถึงขั้นตอนนี้จะเป็นการตั้งค่า IP address ให้กับเครื่อง Server ของเรา ซึ่งเครื่องตัวอย่างนี้ จะใส่ LAN Card ไป 1 ใบ จะเห็น Interface LAN ชื่อ enp0s3 ซึ่งเราจะทำการตั้งค่า IP address ที่ Interface LAN ใบนี้ กด enter ได้เลย จากนั้นเลือก Edit IPv4 แล้วกด Enter

ระบบจะขึ้นให้เลือก Method ให้เราเลือก manual เพื่อทำการตั้งค่า ip address ตาม network diagram ที่เราได้ออกแบบไว้ เพื่อให้เครื่อง server เข้าสู่ internet ได้ เพื่อที่จะไปดึงค่าต่างๆจาก mikrotik router ตาม network diagram ที่ได้ออกแบบไว้เบื้องต้น

เมื่อตั้งค่าเสร็จแล้วให้เลือกที่ Save แล้ว Enter จะกลับมาหน้าเดิม จากนั้นเลือก Done กด Enter จะเข้าสู่หน้าตั้งค่า Proxy address ไม่ต้องใส่ค่าใดๆ เลือก done กด Enter ได้เลย ระบบจะตรวจสอบ Mirror address จากนั้น เลือก done กด Enter ได้เลย

จะเข้าสู่การตั้งค่า Storage ให้ใช้ค่า Default ของ ubuntu ได้เลย เลือก done กด Enter จากนั้นเลือก done แล้ว Enter อีกครั้ง ระบบจะถาม Confirm destructive action ให้เราเลือก Continue แล้วกด Enter

จากนั้นระบบจะให้ตั้งค่า user name , password เมื่อตั้งค่าเสร็จแล้ว ให้เลือก Done แล้วกด Enter จากนั้นระบบจะถามว่าจะ Upgrade เป็น Ubuntu Pro หรือไม่ ให้เราเลือก Skip for now แล้วเลือก Continue กด Enter

จากนั้นทำการเลือก เพื่อ Install OpenSSH server (กดปุ่ม space bar เพื่อ active การเลือก) จากนั้นเลือก Done แล้วกด Enter จากนั้นจะเข้าสู่หน้าต่างการเลือก Featured Server Snaps ตรงนี้ยังไม่ต้องเลือกค่าใดๆ ให้เลือก Done แล้ว Enter จากนั้นรอให้ระบบติดตั้งจนแล้วเสร็จ

เมื่อติดตั้งเสร็จแล้ว ให้กด tab เพื่อเลื่อนไปเลือกที่ Reboot Now เป็นอันเสร็จสิ้นขั้นตอนการติดตั้งระบบปฏิบัติการ Ubuntu Server

เมื่อเครื่อง reboot กลับมา ให้ทำการ Login เข้าใช้งานด้วย user , password ที่เราได้กำหนดไว้ในขั้นตอนการติดตั้ง เพื่อเข้าใช้งานติดตั้ง package อื่นๆในขั้นตอนต่อไป

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

2. ขั้นตอนการติดตั้ง Apache Webserver

โปรแกรม Apache เป็นโปรแกรมที่ใช้งานบน linux ในที่นี้เราจะติดตั้งลงใน Ubuntu Server โดยให้เรา log in เข้าไปใน ubuntu server จะด้วยต่อจอ เมาส์ เข้ากับเครื่อง server ตรงๆ หรือ เข้าผ่านระบบ Network ด้วย IP address โดยใช้โปรแกรม putty

จากตัวอย่างที่ผู้เขียนจะแนะนำ ผู้เขียนจะเข้าใช้งานผ่านโปรแกรม putty เพื่อ login เข้าไปใน ubuntu server สามารถ download โปรแกรม putty ได้ที่ url: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html โดยเลือก platform version ที่เราต้องการได้

เมื่อเปิดโปรแกรม putty ขึ้นมา ให้เรากรอก ip ซึ่งเป็น ip address ของเครื่อง ubuntu server กด open และ กรอก user / password เพื่อที่จะ remote เข้าใช้งาน ubuntu server ต่อไป

เมื่อ login เข้าใช้ครั้งแรก เพื่อความสะดวกในการเรียกใช้โปรแกรม หรือ ติดตั้งโปรแกรมต่างๆ ที่ต้องการให้เข้าถึงด้วยสิทธิ์ root ปกติแล้ว เราจะต้องพิมพ์คำสั่ง sudo แล้วตามด้วย command ปกติที่ต้องการ แต่เพื่อความสะดวก ให้เราทำการเปิดการใช้งาน user root โดยพิมพ์คำสั่ง

sudo passwd root

ระบบจะให้ใส่ password ของ user เราปกติ และให้ตั้งค่า password ใหม่สำหรับ root ( ซึ่งโดยปกติจะไม่แนะนำ เพื่อจะเปิดช่องทางให้ hacker เข้ามาด้วย user : root ดังนั้น ควรตั้ง password ให้ root ในระดับที่ยากมากๆ) เมื่อตั้งค่าเสร็จ หากจะใช้งานด้วยสิทธิ์ root ให้พิมพ์ su จากนั้น ใส่ password root ไป จะเป็นการใช้งานด้วยสิทธิ์ root เครื่องหมาย prompt จะเป็นเปลี่ยนสัญลักษณ์จาก $ --> #

ต่อไปจะเริ่มทำการติดตั้ง Apache Web Server ให้เราเข้าใช้สิทธิ์ root จากนั้นพิมพ์คำสั่ง

apt update

แล้วกด enter เมื่อเสร็จแล้ว ระบบจะกลับมาที่เครื่องหมาย # เช่นเดิม จากนั้นพิมพ์คำสั่ง

apt install apache2 -y

แล้วกด enter

เมื่อติดตั้งเสร็จแล้ว ubuntu จะแสดง prompt กลับมาที่เครื่องหมาย # เช่นเดิม จากนั้นพิมพ์คำสั่ง

systemctl status apache2

เพื่อตรวจสอบว่าโปรแกรม apache webserver ทำงานปกติหรือไม่ จากรูปจะเห็นว่า Active : active ( running) ซึ่งแสดงให้เห็นว่า apache webserver พร้อมใช้งานแล้ว

จากนั้นลองทดสอบด้วยการเปิด browser แล้วพิมพ์ ip address ของ Ubuntu Server เพื่อเรียก Website Apache default ถ้าเห็นหน้า Page ตามรูปด้านบน ผลคือ การทำงานของ Web Server พร้อมใช้งาน

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

3. ขั้นตอนการติดตั้ง MySQL Server บน Ubuntu Server เพื่อใช้เป็น Database Server

พิมพ์คำสั่ง

apt install mysql-server -y

จากนั้นรอจนระบบติดตั้งจนแล้วเสร็จ ตรวจสอบการทำงานของ mysql ว่าทำ running ปกติหรือไม่ โดยใช้คำสั่ง

systemctl status mysql

ผลแสดงตามรูปด้านบน แสดงให้เห็นว่า ติดตั้ง mysql server เสร็จสมบูรณ์แล้ว

จากนั้นทดสอบ login เข้าใช้งาน mysql โดยพิมพ์คำสั่ง

mysql -u root -p

จะเห็นขั้นตอนให้กรอก password ซึ่งเรายังไม่ได้กำหนด ซึ่งตรงนี้ จะกรอกใดๆลงไป หรือ ไม่กรอกก็ได้ แล้วกด enter ก็จะเข้าใช้งาน mysql ได้ เพราะว่ายังไม่ได้กำหนด password ให้กับ mysql

เมื่อ login เข้า mysql มาแล้ว ให้ดำเนินการตั้ง password ให้กับ user : root ของ mysql โดยพิมพ์คำสั่ง

ALTER USER 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY 'passwordที่ต้องการ';

ตามรูปด้านบน แล้วกด enter จากนั้นพิมพ์คำสั่ง

FLUSH PRIVILEGES; และ QUIT;

เพื่อออกจาก mysql

จากนั้นเข้าไปคอนฟิก policy พื้นฐานให้กับ mysql เพิ่มเติม โดยพิมพ์คำสั่ง

mysql_secure_installation

จากนั้นตอบคำถาม เพื่อตั้งค่า Policy ตามรูปด้านบน เป็นอันเสร็จสิ้นการติดตั้ง และตั้งค่าเบื้องต้นให้กับ mysql server

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

4. ขั้นตอนการติดตั้ง PHP

เริ่มต้น ให้พิมพ์คำสั่ง

apt update && apt upgrade -y

รอระบบติดตั้ง จากนั้นจะขึ้นหน้าจอตามรูปด้านบน ให้กด tab เลื่อนมาที่ ok จากนั้นกด enter จนแล้วเสร็จจะกลับมาที่ prompt #

ทำการพิมพ์คำสั่ง

add-apt-repository ppa:ondrej/php

แล้วกด enter ตามรูปด้านบน

จากทำการพิมพ์คำสั่ง

apt update

เมื่อเสร็จแล้ว ให้พิมพ์คำสั่ง

apt install php8.1 -y

เพื่อทำการติดตั้ง php package แล้วกด enter

รอระบบติดตั้ง จะขึ้นหน้าจอ ตามรูปด้านบน ให้เลือก OK กด enter

จากนั้นติดตั้ง Extension ของ PHP ที่จำเป็นสำหรับโปรแกรม Zabbix ให้พิมพ์คำสั่ง

apt install php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-redis php8.1-intl php8.1-bcmath php8.1-ldap -y

ตามรูปด้านบน

จะขึ้นหน้าต่างตามรูปด้านบน ให้กด tab เพื่อเลื่อน เลือกไปที่ ok แล้วกด enter รอจนหน้าจอกลับมาที่ prompt เครื่องหมาย # เป็นอันเสร็จสิ้นขั้นตอนการติดตั้ง PHP

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

5. การติดตั้งโปรแกรม Zabbix

ดำเนินการดาวน์โหลด package ที่จำเป็นของโปรแกรม zabbix จากเว็บ zabbix โดยใช้คำสั่ง (ตามรูปด้านบน)

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

ใช้คำสั่ง

ls

เพื่อดูว่าได้ไฟล์ที่โหลดมาแล้วอยู่ในห้อง ubuntu server แล้วหรือไม่ ถ้าได้ไฟล์มาแล้ว จะเห็นชื่อไฟล์ปรากฎอยู่ตามรูปด้านบน

จากนั้นให้ใช้คำสั่ง

dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

รอจนแล้วเสร็จ จากนั้นใช้คำสั่ง

apt udate

และรอจนกระบวนการแล้วเสร็จ ตามรูปด้านบน หน้าจอจะกลับที่ prompt เครื่องหมาย # เช่นเดิม

จากนั้นเริ่มดำเนินการติดตั้งโปรแกรม zabbix โดยพิมพ์คำสั่ง

apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y

ตามรูปด้านบน

จากนั้นระบบจะทำการติดตั้ง และจะขึ้นหน้าต่างตามรูปด้านบน ให้กด tab เพื่อเลื่อนเลือกมาที่ Ok จากนั้นกด Enter หน้าจอจะกลับที่ prompt เครื่องหมาย # เช่นเดิม

ขั้นต่อไป ให้ดำเนินการเข้าใช้งาน mysql เพื่อสร้าง database เริ่มต้นให้กับ zabbix โดยพิมพ์คำสั่ง

mysql -u root -p

ระบบจะให้ใส่ password ของ mysql ให้ใส่ password ของ mysql ลงไปตามที่เราได้กำหนดไว้ ในขั้นตอนการติดตั้ง mysql server เมื่อเข้ามาในหน้า prompt ของ mysql server แล้ว จะสังเกตุเห็นเครื่องหมาย mysql> จากนั้นให้เราพิมพ์คำสั่ง

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

จากนั้นจะกลับมาที่หน้า prompt ที่มี # ของ ubuntu server เช่นเดิม ตามรูปด้านบน

จากนั้นดำเนินการ import database เริ่มต้นของ zabbix โดยใช้คำสั่ง

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uroot -p zabbix

ระบบจะถามหา password mysql ของ user root ให้เราทำการพิมพ์ password ลงไป และรอซักครู่ จนระบบ import แล้วเสร็จจะกลับมาที่หน้า prompt ที่มี # ของ ubuntu server เช่นเดิม ตามรูปด้านบน

ดำเนินการ login เข้า mysql อีกครั้ง โดยใช้คำสั่ง

mysql -u root -p

และพิมพ์คำสั่ง

mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

จากนั้นจะกลับมาที่หน้า prompt ที่มี # ของ ubuntu server เช่นเดิม ตามรูปด้านบน

จากนั้นดำเนินการปรับแต่งไฟล์ config ของ zabbix โดยพิมพ์คำสั่ง

nano /etc/zabbix/zabbix_server.conf

ให้เราทำการแก้ไขโค้ด ในบรรทัดที่มีโค้ดนั้นๆ ให้แก้ไขค่าเป็นดังนี้

DBUser=root
DBPassword=ใส่ password ของ mysql ลงไป
ใส่ # ลงไปที่ด้านหน้า Fping6Location=/usr/bin/fping6
CacheSize=64M

การใช้โปรแกรม nano เพื่อ edit ไฟล์นั้น เมื่อเข้าไปแล้ว สามารถกดลูกศร เพื่อเลื่อน cursor ไปแก้ไขเนื้อหาที่ต้องการได้เลย หรือ ถ้าเลื่อนหาไม่เจอ เนื้อหามีมากไปทำให้ตาลาย ให้เรากดปุ่ม ctrl+w เพื่อเปิด function ค้นหา จากนั้นให้เราพิมพ์ keyword ที่ต้องการค้นจากนั้นกด enter ได้เลย ระบบจะเลื่อน cursor ไปยังบรรทัดที่มี keyword ที่เราพิมพ์ค้นหาไป ถ้าจะเลื่อนหาอีก ก็กด ctrl+w อีกครั้ง แล้วกด enter ก็จะใช้ keyword เดิมล่าสุด ในการค้นหาไปตามที่เราค้นหาครั้งนั้นๆ ถ้าแก้ไขเสร็จแล้ว กรณีจะ save ให้เรากดปุ่ม ctrl+o ที่คีย์บอร์ดเพื่อทำการ save จากนั้นกดปุ่ม ctrl+x เพื่อออกจากการ edit ของโปรแกรม nano ก็จะกลับมาที่หน้า prompt ที่มี # เหมือนเดิม

ดำเนินการเปิดใช้งานโปรแกรม Zabbix ได้เลย โดยใช้คำสั่ง

systemctl restart zabbix-server zabbix-agent apache2 และ systemctl enable zabbix-server zabbix-agent apache2

จากนั้นตรวจสอบว่า zabbix-server นั้นทำงานปกติหรือไม่ โดยใช้คำสั่ง systemctl status zabbix-server จากรูปด้านบนจะเห็นว่า active running ได้สมบูรณ์แล้ว เป็นอันเสร็จขั้นตอนการติดตั้งโปรแกรม Zabbix

จากนั้นดำเนินการเปิด browser โดยพิมพ์ในช่อง url: <ip-address ของ server>/zabbix เพื่อทำการตั้งค่าเบื้องต้นในครั้งแรกให้กับโปรแกรม Zabbix จะขึ้นตามรูปด้านบน

ระบบจะตรวจสอบว่าติดตั้ง extension ของ php ครบถ้วนตามที่ระบบต้องการหรือไม่ ถ้าขึ้น OK ทุกตัว แสดงว่าครบถ้วนแล้ว ให้กด Next step ได้เลย ตามรูปด้านบน

จากนั้นจะเข้าสู่การตั้งค่า database ให้กับ zabbix ตามรูปด้านบน ในช่อง user ให้ใส่ root และ ช่อง password ให้ password ของ user root ของ mysql server ลงไปได้เลย จากนั้นกด Next step

ดำเนินการตั้งค่า Zabbix server name ตามที่เราต้องการ และเลือก timezone และเลือก Default theme ที่ต้องการ (หรือจะแก้ไขใน web zabbix ได้อีกครั้งเช่นกัน) จากนั้นกด Next step ตามรูปด้านบน

ระบบจะสรุปค่าต่างๆให้ทราบอีกครั้ง ให้เรากด Next step ได้เลย หรือถ้าหากต้องการแก้ไข ก็สามารถกด Back เพื่อทำการแก้ไขได้

เสร็จสิ้นขั้นตอนการติดตั้ง Zabbix และพร้อมให้เราได้งานเพื่อทำระบบ Traffic monitor ได้ต่อไป

โดย user / password เริ่มต้น ให้เราทำการ login เพื่อเข้าใช้งานได้เลย

user : Admin
password : zabbix

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

6.การคอนฟิก และใช้งาน Zabbix

เมื่อ login เข้าใช้งานครั้งแรก จะเข้าที่หน้าจอตามรูปด้านบน หน้าตาตรงนี้ zabbix เรียกว่า dashboard ซึ่งเราสามารถปรับแต่งได้ตามต้องการ แต่เนื้อหาหลักที่ผู้เขียนจะแนะนำในบทความนี้ ผู้เขียนจะแนะนำวิธีการ เพิ่ม host devices ของอุปกรณ์ router หรือ switch หรือ อุปกรณ์ network ใดที่ใช้ protocol snmp ได้ เพื่อที่จะทำให้ zabbix ใช้ดึงค่าต่างๆ มา monitor แสดงผลให้เราทราบได้ เช่นปริมาณการใช้งาน traffic bandwidth / up down status ของ interface หรือของ network devices และอื่นๆตาม templates default ของระบบ zabbix ที่มีให้เราได้ใช้

การที่จะให้ zabbix ดึงค่าต่างๆของ network devices นั้นๆมาแสดงผลได้นั้น network devices ที่จะให้ zabbix ดึงค่ามานั้นต้องเปิดใช้งาน snmp ซึ่งแต่ละอุปกรณ์ แต่ละยี่ห้อ จะมีขั้นตอนตั้งค่าแตกต่างกันไป แต่หลักๆคือ ทำการ enable snmp server version2 และ กำหนด snmp community และ กำหนด policy ให้ทำการ read only เท่านั้น ในบทความนี้ จะยกตัวอย่าง network devices คือ mikrotik router ซึ่งได้ต่อถึงกันตามรูป network diagram ด้านบน

จากหัวข้อ 1–5 ที่ผู้เขียนได้แนะนำวิธีติดตั้งไปข้างต้นแล้วนั้น คือเครื่อง Zabbix server ที่พร้อมใช้งานแล้ว จากผังจะเห็นว่า zabbix server / และ mikrotik router ทั้ง 2 ตัวนั้น เข้าสู่เครือข่าย internet ได้ปกติแล้ว โดยใช้ public ip โดยตรง ในบทความนี้จะไม่อธิบายถึงวิธีการทำ src.NAT และ dst.NAT ไม่มี firewall ใดๆปิดกั้น ตามรูป network diagram ด้านบน ซึ่ง zabbix server จะเข้าไปดึงข้อมูลจาก mikrotik โดยใช้ public destination ip ได้เลยเพื่อไปหา mikrotik router ตัวนั้นๆ ส่วนการใช้งานจริงๆนั้น ก็ขึ้นอยู่กับผู้ดูแลระบบ ว่าจะออกแบบระบบอย่างไร ไม่ว่าจะใช้กันภายในแบบ intranet จะมีระบบ firewall อย่างไรนั้นก็ตามความต้องการของผู้ดูแลระบบจะคอนฟิกเพิ่มเติมได้เองต่อไป

เข้าไปเปิดใช้งาน SNMP ของ mikrotik ในรูปคือตัว hAP Lite จากรูป network diagram ที่ได้ออกแบบไว้ (ซึ่งผู้เขียนขอข้ามขั้นตอนการตั้งค่าใช้งานของ mikrotik) mikrotik ตัวดังกล่าวนี้ ถูกคอนฟิกให้ใช้งนาเข้าสู่เครือข่าย internet ได้ปกติ การเข้าคอนฟิก mikrotik จะใช้โปรแกรม winbox ของ mikrotik เอง

การเปิดใช้งาน snmp ให้เข้าไปที่เมนู IP → SNMP → เลือก Enable → Communities → + → ตั้งชื่อให้ communitiy → เลือก Read Access เท่านั้น → OK

กลับมาที่หน้าต่าง SNMP Settings ให้เลือก Trap Community : ที่เรา add เข้ามา จากนั้นให้เลือก Trap Version : 2 จากนั้นกด OK ตามรูปด้านบน เป็นอันเสร็จขั้นตอนการเปิดใช้งาน SNMP server ของ mikrotik และสำหรับ mikrotik อีกตัวแสดงที่ใน network diagram ก็ทำด้วยวิธีเดียวกัน

กลับมาที่ web zabbix ที่เราได้ติดตั้งไว้ เพื่อทำการสร้าง Host Group ให้กับอุปกรณ์ network ต่างๆ ที่เราจะเพิ่มเข้าระบบ เพื่อการจำแนก และเข้าถึงได้ง่ายในการจัดการต่อไป ให้เราเข้าที่เมนู Data Collection → Host Groups → Create Host Group → Group Name : ให้ใส่ชื่อตามต้องการ →กด Add ตัวอย่างผู้เขียนตั้งชื่อว่า “Mikrotik router” ตามรูปด้านบน

จากนั้นทำการเพิ่ม Host เพื่อที่จะดึงค่าต่างๆมาใช้เพื่อ monitor ของ host นั้นๆ ให้เข้าไปที่เมนู Data Collectors → Hosts → Create Host → Host name : ใส่ชื่อของ Host device เพื่อให้สื่อถึงอุปกรณ์ของเราได้ตามต้องการ → Host groups กด Select เพื่อเลือก host group ที่เราตั้งค่าไว้ → Template กด Select → Template Group แล้วกด Select → Templates/Network devices จากนั้นเลือก template ที่ zabbix มีให้ โดยเลือกให้เข้ากับยี่ห้อหรือใกล้เคียงกับ network devices ที่เราใช้อยู่ ในที่นี้ทางผู้เขียนเลือก → Mikrotik by SNMP

ที่บรรทัด Interfaces ให้กด Add แล้วเลือก SNMP

ในช่อง SNMP : ให้ใส่ ip ของ interface mikrotik ที่ใช้เข้าสู่ internet ตาม network diagram ที่ได้ออกแบบไว้ข้างต้น และ SNMP community ให้ใส่ค่าที่เราได้กำหนดไว้ที่ community ของ mikrotik ตัวนั้นๆ จากนั้นกด Add

เราจะเห็น Host เพิ่มเข้ามาตามที่เราตั้งชื่อไว้ และ ในคอลัมภ์ Avalibility จะขึ้นตัวอักษร SNMP ที่เป็นสีเขียว นั้นหมายถึงว่า zabbix server สามารถเข้าไปดึงข้อมูลจาก mikrotik ได้แล้ว และทำวิธีเดียวกันนี้ ในการเพิ่ม host mikrotik อีกตัวตาม network diagram ที่ได้ออกแบบไว้ ให้เสร็จเรียบร้อย

เราจะได้ Host mikrotik เพิ่มเข้ามาในระบบ zabbix ครบตาม network diagram ที่เราได้ออกแบบไว้ข้างต้น

การ Monitor อุปกรณ์ network device ที่เราได้เพิ่มเข้าระบบมา สามารถเข้าดูสถานะต่างๆ ไม่ว่าจะเป็น Lastest data , Problem ที่เกิดขึ้น หรือ traffic graphs ของ interface นั้น host device นั้นๆ เข้ามาดูที่เมนู Monitoring -> Hosts แล้วเลือก host ที่ต้องการดูได้เลย ซึ่งแต่ละส่วนก็จะแสดงผลให้เห็นในรูปแบบที่แตกต่างกันไป เพื่อให้เราทราบข้อมูลของอุปกรณ์ และเฝ้าระวังเหตุต่างๆของอุปกรณ์ network ของเราได้สะดวกต่อไป

จากรูปด้านบน ผู้เขียนได้เข้าที่คอลัมภ์ graphs ของ host ที่ต้องการดู traffic เมื่อกดเข้ามา ที่ tab ขวาบน สามารถเลือก period ที่จะแสดงผลได้ตามที่ต้องการ และ เลือก filter ชื่อ interface ที่ต้องการดูได้ตามต้องการ

ความสามารถของ zabbix ยังมีอีกมากมาย และอีกจุดเด่นก็คือ Zabbix สามารถวาด network diagram หรือ Network Map ให้เราเห็นภาพรวมของระบบเครือข่ายเพื่อให้มองภาพกว้างๆของอุปกรณ์ได้ โดยแสดงค่า traffic in/out ที่ใช้งานของแต่ละ link interface และระบบจะแสดง Problom , trigger ต่างๆให้เราทราบด้วย ตามรูปด้านบน ในหัวข้อถัดไป ผู้เขียนจะแนะนำวิธีการวาด Network Map ตามรูปด้านบน

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

7.การตั้งค่าใช้งาน Network Map

เข้าไปที่เมนู Monitoring → Maps → Create map

ที่ช่อง Name : ให้ตั้งชื่อ network map ให้สื่อความหมายตามที่เราต้องการ ในส่วนของ Width และ Height : ความกว้างความยาว ของหน้าจอการวาด map หรือการแสดงผล map สามารถปรับเปลี่ยนได้ภายหลัง ในคอลัมภ์ Action ในส่วนของ properties ที่หน้าเมนู map ของบรรทัดของ map นั้นๆ หากเราวางอุปกรณ์มากขึ้น และให้ได้สัดส่วนตามหน้าจอที่เราแสดงผลได้ตามต้องการ จากนั้น ให้เลือก Display problems เป็น Number of problems เพื่อการแสดงผลที่ไม่รกหน้าจอมากเกินไป จากนั้นกด Add

จะได้พื้นที่สำหรับวาด map ที่เราต้องการวาด network map อุปกรณ์ต่างๆลงไป

จากนั้นกดเข้า map ที่เราต้องการจะวาด หรือ ต้องการจะ monitor ดูได้เลย เมื่อเข้ามาจะเห็นว่า ยังไม่มีอุปกรณ์ใดๆ เพราะเป็น map ที่เราได้สร้างขึ้นมาใหม่ ดังนั้น การวาดเพิ่ม หรือ แก้ไข map ให้เข้าไปที่เมนู Edit map ด้านขวาบน ของหน้าจอ ตามรูปด้านบน

เมื่อเข้ามาหน้าต่างสำหรับวาด Map ให้เราทำการเพิ่ม host ที่ต้องการจะเอามาวาด Map โดยเลือกที่ Map element : Add → จากนั้น หน้าจอจะแสดง element default มาให้ ให้เรากดที่ตัวรูป element default จะขึ้นหน้าต่างให้กำหนดค่า โดย Type ให้เราเลือก Host จากนั้น Label ให้ใส่สคริป macro ว่า {HOST.NAME} เพื่อการแสดงผลใน map จะดึงค่าชื่อของ host นั้นๆมาแสดงได้เลย จากนั้นที่ Host ให้กด Select เพื่อเลือก Host ที่ต้องการเข้ามาใน map

จากนั้นให้กด Select เพื่อทำการเลือก Host group ที่ host ที่เราต้องการนั้นอยู่ใน group ที่เราได้กำหนดไว้ในตอนต้น ตามรูปด้านบน

จากนั้นจะเห็นรายการ host แสดงให้เราเลือก ซึ่ง group : Mikrotik router มี host เดียวที่เราเพิ่มไว้คือ hAP lite — akenet นั่นเอง ดังนั้นเราก็กดเลือกเข้ามาได้เลย

จากนั้นจะได้ host ที่เราต้องการเพิ่มเข้ามา ในส่วนของ Icons ให้เลือกรูป Default ของ host ใน zabbix นั้นมีรูป ให้เราเลือกได้หลายรูปหลายขนาด (ซึ่งตรงนี้เราสามารถเพิ่มรูป สร้าง icons เข้าไปเองได้ แต่จะยังไม่กล่าวถึงในบทความนี้) ตัวอย่างตามรูปด้านบนนี้ ทางผู้เขียนได้เลือกรูปสัญลักษณ์ของ router จากนั้นกด apply จะปรากฏรูปให้เห็นให้กับ host เรา จากนั้นกด close เพื่อออกจากการตั้งค่า host เป็นอันเสร็จ จากนั้น ก็ทำวิธีการเดียวกันนี้ เพื่อเพิ่ม host เข้ามาใน map ได้ตามที่เราต้องการ

สำหรับ element ที่เห็นเป็น cloud (ก้อนเมฆ) ในรูปนี้ เราไม่สามารถไปดึงค่าต่างๆของอุปกรณ์นอกเครือข่ายของเราได้ แต่เพื่อให้สื่อความหมาย ให้เกิดความเข้าใจได้ง่ายของระบบเครือข่ายของเรา เราก็สามารถเพิ่ม element ที่เป็น type image ได้ ซึ่งแต่ละ host หรือ element ที่เราเพิ่มเข้ามาใน map เราสามารถคลิกซ้ายที่ host / element นั้นๆค้างไว้ แล้วลากเปลี่ยนตำแหน่งได้ตามต้องการ จากนั้น ตามรูปด้านบน จากนั้น เราจะเชื่อมโยง Link หรือ ข่ายสาย ของแต่ละ host หรือ element นั้นๆ ให้เชื่อมต่อกัน ให้เกิดเป็น network diagram ตามสภาพเครือข่ายจริงที่เราใช้งาน หรือตามที่เราได้ออกแบบไว้

การเชื่อม Link เข้าหากัน ทำได้โดย คลิกซ้ายเลือกที่ host / element ที่ต้องการ จากนั้น กดปุ่ม ctrl ค้างไว้ แล้วซ้ายเลือก อีก host / element จะเป็นการเลือก host / element 2 อัน จากนั้น ให้เลือก ที่ เมนู Link แล้ว กด Add จะได้เส้น Link สีเขียว เชื่อม host / element เข้าหากัน จากนั้น กด apply และ close เราก็จะได้ Link เชื่อมระหว่าง host / element ถึงกันแล้ว

ทำวิธีเดียวกัน กับ mikrotik อีกตัวที่เรามี ก็จะได้ผลตามรูปด้านบน จากนั้น เพื่อการ monitor จากภาพรวมให้เกิดประสิทธิภาพมากขึ้น เราจำเป็นที่จะต้องตั้งค่าให้ Link นั้นแสดงผล traffice in/out และตั้งค่าให้ Link นั้นๆแสดง error / problems ต่างๆ เมื่อเกิดปัญหากับ Link จะเปลี่ยนสีจาก สีเขียว เป็น สีแดง จากรูปด้านบน เราได้สร้าง Link ที่เชื่อมต่อไปยัง Internet ซึ่งที่ตัว Mikrotik แต่ละตัว เราจะรู้ว่า interface ใดของ mikrotik นั้นใช้เชื่อมต่อออกสู่ internet ก็นำมาเขียน macro script ตาม syntax ของ zabbix เพื่อแสดงผลที่ Link นั้นๆได้เลย

กดเลือก host ที่ต้องการ จะขึ้นหน้าต่างตั้งค่าขึ้นมา เลื่อนลงมาในการตั้งค่า Links ให้ดูคอลัมภ์ Element name ที่ Link ที่เราต้องการจะ Edit จากนั้นให้กดที่ Edit จากนั้นจะสามารถใส่ Label ให้กับ Link ที่เราต้องการได้ ในทีนี้ เป็น Link จาก Mikrotik เชื่อมต่อสู่ Internet ทางผู้เขียนจะดึงค่า traffic in/out ออกมาแสดงผลที่ Link ให้ใส่ macro script ดังนี้

hAP lite — akenet
WAN In: {?last(/hAP lite — akenet/net.if.in[ifHCInOctets.1])}
WAN Out : {?last(/hAP lite — akenet/net.if.out[ifHCOutOctets.1])}

โดยที่ใน { xxx } จะเป็น macro script ที่ใช้ดึงค่ามาแสดงผล
last คือ ค่าล่าสุด
hAP lite — akenet คือ ชื่อของ host ที่เราต้องการจะดึงค่าออกมา
net.if.in[ifHCInOctets.1] คือการดึงค่า traffic in ของ interface นั้นๆ ซึ่ง .1 คือ เลข index ของ snmp ที่ใช้ระบุ interface ที่ต้องการจะดึงค่าออกมา ในตัวอย่างนี้เรารู้ชื่อ interface ของ mikrotik ที่ใช้เชื่อมต่อสู่ internet แต่เราไม่รู้ว่า index snmp number ดังนั้น เราต้องไปดูใน zabbix ว่า index snmp number คือเลขใด

โดยเข้าไปที่เมนู Monitoring → Hosts → คลิกเลือก Host ที่ต้องการ แล้วเลือก ที่ Items ตามรูปด้านบน

จากนั้นจะเข้าสู่เมนู items ของ host ที่เราเลือกมา ในช่อง name : ให้ใส่ keyword ที่เราต้องการค้นหา interface ซึ่ง เราจะรู้อยู่แล้วว่า interface ชื่อว่าอะไร ของ mikrotik ที่ใช้เชื่อมต่อ internet เราก็นำมากรอก แล้วกด apply เพื่อค้นได้เลย จากตัวอย่างรูปด้านบนนี้ interface mikrotik ของผู้เขียน ได้ตั้งชื่อไว้ใน mikrotik ว่า WAN จากนั้นเมื่อ interface แสดงผลออกมาแล้ว ใน คอลัมภ์ Key จะเห็น index snmp number ที่ zabbix แสดงผลออกมา ก็คือ net.if.in[ifHCInOctets.1] ซึ่งเลข index snmp ของ WAN interface mikrotik ก็คือเลข 1 นั่นเอง ก็นำมาใส่ในช่อง Label ได้เลย ดังนี้ ตามรูปด้านล่าง

hAP lite — akenet
WAN In: {?last(/hAP lite — akenet/net.if.in[ifHCInOctets.1])}
WAN Out : {?last(/hAP lite — akenet/net.if.out[ifHCOutOctets.1])}

จากนั้นเมื่อทำการตั้งค่า Label เสร็จแล้ว ให้ทำการตั้งค่า Link indicators ต่อไป เพื่อให้เป็นตัวแจ้งเตือน ให้กับ Link ที่เราต้องการ โดยเข้าไปที่ Link indicatiors แล้วเลือก Add จากนั้น Host ให้กดที่ Select เพื่อเลือก Host ที่ต้องการ ในที่นี้ ก็ยังเป็น Host ที่ชื่อ hAP lite — akenet เพราะเราต้องการกำหนดการแสดงผลของ Link ในการแจ้งเตือน interface ของขา WAN ของ Host hAP lite — akenet

เมื่อกด Select ระบบจะให้เลือก Host group จากนั้น ก็เลือก host ที่เราต้องการได้เลย ซึ่งก็คือ Host hAP lite — akenet

ระบบจะแสดงผล interface ทั้งหมด ของ host : hAP lite — akenet ออกมาให้เราเลือก ในที่นี้ เราจะเลือก interface ที่เชื่อมต่อ internet ซึ่งชื่อว่า WAN หากอุปกรณ์ network เรามี interface หลาย interface เราสามารถ กด ctrl+f ของ browser เพื่อค้นหา interface ที่ต้องการได้เลย จากนั้น ก็คลิกเครื่องหมายถูก หน้า interface ที่เราต้องการได้เลย ตามรูปด้านบน เมื่อเลือก interface ตามที่ต้องการได้แล้ว จากนั้นกดปุ่ม Select

จะได้ Link indicators สำหรับ interface ที่เราต้องการแสดงขึ้นมา ตามรูปด้านบน จากนั้น กดปุ่ม Apply และ Close และกด Close อีกครั้ง ได้เลย เพื่อออกจากการตั้งค่า Link

ทำเช่นเดียวกัน กับ Mikrotik อีกตัวที่เรามี เราก็จะได้ network map แสดงผลตามที่ต้องการ ตามรูปด้านบน เมื่อวาดเสร็จแล้ว ให้กดปุ่ม update ด้านบนมุมขวาได้เลย

ด้วยวิธีเดียวกัน เราสามารถวาด Network Map ได้ตามการออกแบบที่เราต้องการได้

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

ทางผู้เขียนขอจบบทความแนะนำการใช้โปรแกรม ZABBIX ไว้เท่านี้ หากมีคำถามใดเพิ่มเติม สามารถคอมเม้นท์สอบถาม พูดคุย ทักท้วง และแนะนำผู้เขียนได้ครับ

--

--

Ake_.Net JPK

ชอบเขียนบทความเกี่ยวกับระบบ Computer Network เพื่อทบทวนความรู้ความเข้าใจให้กับตนเองเป็นหลัก และให้ผู้ที่สนใจสามารถเข้ามาอ่านได้ครับ ขอขอบคุณที่ติดตามครับ