พอดีเข้าไปเว็บของโปรแกรม Zabbix หน่ะครับ ทราบว่าโปรแกรมนี้น่าสนใจมาก ไว้มอนิเตอร์เน็ตเวอร์คได้ บทความต่อไปนี้จะแนะนำวิธีการติดตั้งและคอนฟิกโปรแกรม Zabbix บน CentOS ครับ โดยโปรแกรม Zabbix นี้หลักๆแล้วเอาไว้มอนิเตอร์ระบบเน็ตเวอร์ค เซอร์เวอร์ เร้าท์เตอร์ สวิตซ์ แอ๊ปพลิเคชั่นต่างๆที่ลงในเครื่องเซอร์เวอร์ มีกราฟให้ดูด้วยครับ คล้ายๆกับ MRTG หรือ Cacti รับรองใช้แล้วจะติดใจ
เว็บไซต์โปรแกรมครับ http://www.zabbix.org
โปรแกรมนี้เป็น Open Source วิธีการติดตั้งค่อนข้างมีหลายขั้นตอนครับ ผมจะติดตั้ง Zabbix บน CentOS 5.8 โดยใช้ไฟล์ RPM จากเว็บนี้ http://repo.zabbixzone.com/centos/5 มีทั้งเวอร์ชั่น i386 และ x86_64 ก็เลือกเอาตาม CentOS ที่ติดตั้งอยู่ในเครื่อง เครื่องผมเป็น i386 ซีพียู Cerelon
** ทำตามไปช้าๆนะครับ อ่านแต่ละข้อให้หมดก่อนค่อยทำตาม จะได้ติดตั้งอย่างราบรื่น บ่ติดขัด **
** บทความนี้ผมติดตั้ง Zabbix บนเครื่อง Elastix ครับ พอดีไม่มีเครื่องว่าง ท่านใดที่คิดจะใช้ Zabbix อย่างจริงๆจังๆ แนะนำให้ลงบนเครื่องใหม่จะดีกว่าครับ **
1. ติดตั้งโปรแกรมเพิ่มเติม
** มีติดตั้ง php ด้วยนะครับ ถ้าในเครื่องท่านมีติดตั้ง php ไว้แล้ว ก็ลบ php* ในคำสั่งด้านล่างนี้ออก **
- โค้ด: เลือกทั้งหมด
yum -y install gnutls-devel OpenIPMI-libs php-bcmath php php-cli php-devel php-imap php-mcrypt php-mhash php-pdo php-ncurses php-readline php-snmp php-xmlrpc php-mysql php-gd php-bcmath php-mbstring php-xml curl-devel gcc automake mysql libidn-devel openssl-devel net-snmp net-snmp-devel net-snmp-libs net-snmp-utils rpm-devel zlib-devel mysql mysql-server mysql-devel glibc-devel unixODBC java-1.6.0-openjdk mod_ssl httpd
2. ติดตั้งไฟล์ RPM
ติดตั้งด้วยคำสั่ง rpm -ivh ครับ ดึงไฟล์จากเซอร์เวอร์มาเลย ถ้าไฟล์ไหนมีติดตั้งในเครื่องอยู่แล้ว มันจะฟ้องให้เรารู้ ก็ปล่อยไป
- โค้ด: เลือกทั้งหมด
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/fping-2.4b2-16.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/iksemel-1.4-2.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/iksemel-devel-1.4-2.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/iksemel-utils-1.4-2.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/libssh2-1.4.0-2.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/libssh2-devel-1.4.0-2.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/libssh2-docs-1.4.0-2.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-2.0.2-1.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-agent-2.0.2-1.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-get-2.0.2-1.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-java-gateway-2.0.2-1.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-sender-2.0.2-1.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-server-mysql-2.0.2-1.el5.i386.rpm' --nodeps
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-server-2.0.2-1.el5.i386.rpm'
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-web-mysql-2.0.2-1.el5.i386.rpm' --nodeps
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-web-2.0.2-1.el5.i386.rpm'
คือหลักๆแล้วเราต้องติดตั้ง zabbix-server (Zabbix Server), zabbix-agent (Zabbix Agent), zabbix-web (Zabbix Web Interface)
** Zabbix Server เป็นโปรแกรมหลัก เราติดตั้งไว้ในเครื่องที่เราจะใช้เป็นศูนย์กลางมอนิเตอร์ระบบ มอนิเตอร์อุปกรณ์
** Zabbix Agent ทำหน้าที่ฝังไว้ในเครื่องที่เป็น Linux ซึ่งจะทำให้เราใช้ Zabbix Server มอนิเตอร์เครื่อง Linux ได้ สามารถดูรายละเอียดในเครื่องได้เยอะแยะครับ แต่ถ้าเราแค่ต้องการดูว่าเครื่องไหน Down ก็ไม่จำเป็นต้องติดตั้งก็ได้ แต่เครื่องที่เป็น Zabbix Server ควรจะติดตั้ง Zabbix Agent ไว้ด้วยครับ อย่างน้อยมันก็ควรจะมอนิเตอร์ตัวเองได้
สำหรับอีก 2 ไฟล์คือ
- โค้ด: เลือกทั้งหมด
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-proxy-mysql-2.0.2-1.el5.i386.rpm' --nodeps
rpm -ivh 'http://repo.zabbixzone.com/centos/5/i386/zabbix-proxy-2.0.2-1.el5.i386.rpm'
เอาไว้ติดตั้งบนเครื่องที่จะเป็น Proxy ครับ กล่าวคือถ้าเครื่องที่เราติดตั้ง Zabbix เราใช้มันเป็น Server เลย เราก็ไม่ต้องติดตั้ง zabbix-proxy
3. ไฟล์คอนฟิกของ Zabbix
ไฟล์คอนฟิกของ zabbix อยู่ที่โฟลเดอร์ /etc/zabbix ครับ
4. User/Group ของ Zabbix
ไฟล์ /etc/passwd มีบรรทัดนี้เพิ่มขึ้นมา
zabbix:x:101:102:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
ไฟล์ /etc/group มีบรรทัดนี้เพิ่มขึ้นมา
zabbix:x:102:
5. ดาต้าเบส MySQL
มีดาต้าเบส zabbix ถูกสร้างขึ้นมา แต่ไม่มีเทเบิลเลย ปล่อยไปก่อนครับ ไว้ติดตั้งจากหน้าเว็บอีกทีครับ
6. คอนฟิก Zabbix Server
- โค้ด: เลือกทั้งหมด
vi /etc/zabbix/zabbix_server.conf
เอาเครื่องหมาย # หน้าบรรทัด DBHost=localhost ออกและแก้ไข localhost เป็น IP Address ของ MySQL Server ที่มีดาต้าเบส zabbix อยู่ (กรณีติดตั้งคนละเครื่อง)
บรรทัด DBName=zabbix ใส่ชื่อดาต้าเบส (ชื่อดีฟอลท์คือ zabbix ครับ)
บรรทัด DBUser=zabbix ใส่ชื่อยูสเซอร์ที่จะใช้คอนเน็คดาต้าเบส อาจจะใส่เป็น root ก็ได้
เอาเครื่องหมาย # หน้าบรรทัด DBPassword= ออก แล้วใส่พาสเวอร์ดที่จะใช้คอนเน็คดาต้าเบส เช่น DBPassword=password
คอนฟิกเท่านี้ก่อนครับ ไว้ตอนจะปรับแต่งค่อยมาแก้ไขอีกที
7. ไฟล์ในไดเร็คตอรี่ /etc/init.d
มี 3 ไฟล์
zabbix-agent
zabbix-java-gateway
zabbix-server
8. ทำให้ Zabbix รันเป็น Service
รันคำสั่งต่อไปนี้
- โค้ด: เลือกทั้งหมด
chkconfig zabbix-agent on
chkconfig zabbix-java-gateway on
chkconfig zabbix-server on
9. ดาวน์โหลด Zabbix Source Code
ท่านอาจจะสงสัยนะครับว่า ผมติดตั้งด้วยไฟล์ rpm แล้วทำไมต้องโหลด Source Code มาอีก คำตอบคือผมจะเอาไฟล์ Web ของมันครับ เพราะว่าไฟล์ Web ที่ได้จาก rpm มันเปิดไม่ได้ (เข้าหน้าเว็บแล้วเป็นหน้าว่างๆ)
- โค้ด: เลือกทั้งหมด
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.2/zabbix-2.0.2.tar.gz
- โค้ด: เลือกทั้งหมด
tar xzvf zabbix-2.0.2.tar.gz -C /usr/src
10. ก็อปไฟล์ Web
ย้ายไฟล์ /etc/httpd/conf.d/zabbix.conf ไปไว้ที่อื่นก่อนและสตาร์ท httpd
- โค้ด: เลือกทั้งหมด
mv /etc/httpd/conf.d/zabbix.conf /tmp
service httpd restart
ก๊อบไฟล์เว็บ Zabbix
- โค้ด: เลือกทั้งหมด
cp -rf /usr/src/zabbix-2.0.2/frontends/php /var/www/html/zabbix
- โค้ด: เลือกทั้งหมด
chmod -R 755 /var/www/html/zabbix
chown -R apache:apache /var/www/html/zabbix
** ถ้าท่านติดตั้งลงในเครื่องเดียวกับ Elastix คำสั่งล่างให้เปลี่ยน apache:apache เป็น asterisk:asterisk ครับ **
11. แก้ไขไฟล์ /etc/php.ini
- โค้ด: เลือกทั้งหมด
date.timezone = Asia/Bangkok
max_input_time = 600
max_execution_time = 600
memory_limit = 256M
post_max_size = 32M
mbstring.func_overload = 2
แล้วรีโหลด httpd
- โค้ด: เลือกทั้งหมด
service httpd reload
12. ติดตั้งดาต้าเบส
ควรทำแบบ Manual ครับ ผมพยายามติดตั้งจากหน้าเว็บแล้วมันไม่สำเร็จ
- โค้ด: เลือกทั้งหมด
mysql -uroot -p zabbix < /usr/src/zabbix-2.0.2/database/mysql/schema.sql
mysql -uroot -p zabbix < /usr/src/zabbix-2.0.2/database/mysql/images.sql
mysql -uroot -p zabbix < /usr/src/zabbix-2.0.2/database/mysql/data.sql
13. ติดตั้ง Zabbix จากหน้าเว็บ
ต่อไปเปิดเว็บ Zabbix เพื่อติดตั้งดาต้าเบส ยูสเซอร์
- โค้ด: เลือกทั้งหมด
http://x.x.x.x/zabbix
จะได้หน้าแบบนี้ครับ
ต่อไปก็ทำตามขั้นตอน
จะได้ Login ตามรูปครับ
ลองล๊อกอินดูครับ
User = Admin (ตัว A ตัวใหญ่นะครับ)
Password = zabbix (ตัวเล็กทั้งหมด)
หน้าตาเว็บ Admin ตามรูปครับ
14. สตาร์ท Zabbix
รันคำสั่งต่อไปนี้
- โค้ด: เลือกทั้งหมด
service zabbix-agent start
service zabbix-server start
service zabbix-java-gateway start
จะมีพอร์ต TCP 10050, 10051 ทำงานอยู่ครับ
15. เช็คโพรเซสของ Zabbix
รันคำสั่งนี้
- โค้ด: เลือกทั้งหมด
ps -e | grep zabbix
ผลลัพธ์ครับ
- โค้ด: เลือกทั้งหมด
25640 ? 00:00:00 zabbix_agentd
25641 ? 00:00:00 zabbix_agentd
25642 ? 00:00:00 zabbix_agentd
25643 ? 00:00:00 zabbix_agentd
25644 ? 00:00:00 zabbix_agentd
25645 ? 00:00:00 zabbix_agentd
25659 ? 00:00:00 zabbix_server
25662 ? 00:00:00 zabbix_server
25664 ? 00:00:00 zabbix_server
25666 ? 00:00:00 zabbix_server
25667 ? 00:00:00 zabbix_server
25668 ? 00:00:00 zabbix_server
25669 ? 00:00:00 zabbix_server
25670 ? 00:00:00 zabbix_server
25671 ? 00:00:00 zabbix_server
25672 ? 00:00:00 zabbix_server
25674 ? 00:00:00 zabbix_server
25676 ? 00:00:00 zabbix_server
25678 ? 00:00:00 zabbix_server
25680 ? 00:00:00 zabbix_server
25681 ? 00:00:00 zabbix_server
25683 ? 00:00:00 zabbix_server
25685 ? 00:00:00 zabbix_server
25687 ? 00:00:00 zabbix_server
25688 ? 00:00:00 zabbix_server
25689 ? 00:00:00 zabbix_server
25690 ? 00:00:00 zabbix_server
25691 ? 00:00:00 zabbix_server
25696 ? 00:00:00 zabbix_server
25698 ? 00:00:00 zabbix_server
25700 ? 00:00:00 zabbix_server
25701 ? 00:00:00 zabbix_server
25702 ? 00:00:00 zabbix_server
16. เปลี่ยน Password ของ Admin
เข้าหน้าเว็บคอนฟิก Zabbix ครับ http://x.x.x.x/zabbix
User = Admin
Pass = zabbix
แล้วคลิ๊ก Administrator -> Users
Disable guest ก่อนเลยครับ โดยคลิ๊ก Enabled ตรงคอลัมน์ Status มันจะกลายเป็น Disabled
ทีนี้มาเปลี่ยน Pass ของ Admin คลิ๊กที่ Admin ในคอลัมน์ Members
คลิ๊กที่ Change Password ครับ จากนั้นใส่ Password ใหม่และใส่ซ้ำอีกครั้ง เสร็จแล้วคลิ๊ก Save
17. ปัญหาที่อาจจะเจอ
หน้าเว็บล๊อกอินมีข้อความฟ้องว่า
- โค้ด: เลือกทั้งหมด
mysql_free_result(): supplied argument is not a valid MySQL result resource [include/db.inc.php:570]
เกิดจากปัญหาตอนสร้าง Database โดยโปรแกรมติดตั้ง (บางครั้ง) ไม่ได้ติดตั้ง Database ให้ด้วย ให้ติดตั้ง Database ตามข้อ 12 ครับ
18. Log ไฟล์
Log ที่เกิดขึ้นกับโปรแกรม Zabbix เก็บไว้ในโฟลเดอร์ /var/log/zabbix ซึ่งมี 3 ไฟล์
zabbix_agentd.log
zabbix_java_gateway.log
zabbix_server.log
อย่างเช่น Start เซอร์เวอร์ไม่ได้ก็เข้ามาดูในไฟล์ zabbix_server.log ดูข้อความ ก็พอจะเดาสาเหตุออกครับ
19. ส่งท้าย
บทความนี้ใช้เวลาทำตั้งแต่เวลา 09.30 - 14.45 ของวันอาทิตย์ที่ 09/09/2555 ที่เป็นวันพักผ่อนของหลายๆท่าน ใช้เวลาทำหลายชั่วโมงเลย แต่ก็ OK เพราะติดตั้ง Zabbix 2.0.2 ได้สำเร็จครับ โปรแกรมนี้หลายๆท่านบอกว่าติดตั้งยาก แต่ดูจากที่ผมทำคงไม่น่าจะยากเกินความสามารถนะครับ ไว้คราวหน้ามาต่อด้วยการคอนฟิกครับ
บทความที่เกี่ยวข้อง
เทคนิคการคอนฟิก Zabbix 2.0.2 มอนิเตอร์อุปกรณ์ แบบเบสิค