หน้า 1 จากทั้งหมด 1

เทคนิคการติดตั้งโปรแกรม Zabbix 2.0.2 บน CentOS

โพสต์โพสต์แล้ว: 09 ก.ย. 2012 14:54
โดย nuiz
โปรแกรม Zabbix 2.0.2
พอดีเข้าไปเว็บของโปรแกรม 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 มอนิเตอร์อุปกรณ์ แบบเบสิค

Re: เทคนิคการติดตั้งโปรแกรม Zabbix 2.0.2 บน CentOS

โพสต์โพสต์แล้ว: 04 ต.ค. 2012 19:15
โดย jasada123
ขั้นตอนที่ 2 มันติดอะคับ ทำไง ดี

Re: เทคนิคการติดตั้งโปรแกรม Zabbix 2.0.2 บน CentOS

โพสต์โพสต์แล้ว: 04 ต.ค. 2012 23:09
โดย nuiz
ติดอะไรยังไง ขอดู message หน่อยคับ