X
Change of support channel during COVID-19

หากกำลังมองหา Monitor เพื่อตรวจสอบการทำงานของเครื่อง server ทั้ง service และ status ต่างๆ ในบทความนี้เราจะมาแนะนำ Icinga เป็น Software สำหรับ monitoring system สามารถแจ้งสถานะการดาวน์ของ Service ต่างๆ ได้ โดย Icinga จะเป็นโปรแกรมลูกของ Nagios ซึ่งจะทำให้สามารถใช้งาน Plugin ร่วมกับ Nagios ได้ด้วย

เตรียมพร้อมก่อนการติดตั้ง

ปิดการใช้งาน SELinux และดำเนินการติดตั้ง packages สำหรับ Icinga 

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum -y install wget httpd mod_ssl gd gd-devel mariadb-server php-mysql php-xmlrpc gcc mariadb 
libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql

หลังจากนั้นทำการ Reboot

สร้าง icinga user และ icinga-cmd group แล้วทำการเพิ่ม  icinga user และ apache user เข้าใน icinga-cmd group

useradd icinga
groupadd icinga-cmd
usermod -a -G icinga-cmd icinga
usermod -a -G icinga-cmd apache

# ทำการดาวน์โหลด Icinga เวอร์ชั่นล่าสุด
cd /tmp/
wget http://downloads.sourceforge.net/project/icinga/icinga/1.10.1/icinga-1.10.1.tar.gz
tar -zxvf /tmp/icinga-1.10.1.tar.gz
cd /tmp/icinga-1.10.1

Compile และ Install Icinga

./configure --with-command-group=icinga-cmd --enable-idoutils
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
make install-idoutils

กำหนดตั้งค่า Icinga

ค่าต่างๆ ของ Icinga จะถูกติดตั้งไว้ที่ /usr/local/icinga/etc/ สำหรับการเริ่มต้นใช้งานจะต้องมีการแก้ไขไฟล์ /usr/local/icinga/etc/objects/contacts.cfg เพื่อเปลี่ยนอีเมล์ในการรับการแจ้งเตือนของระบบ

vi /usr/local/icinga/etc/objects/contacts.cfg

# ในบรรทัด email ให้เปลี่ยนชื่ออีเมล์เป็นอีเมล์ที่ต้องการรับการแจ้งเตือน
email    icinga@localhost  ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

# ย้ายไฟล์ตัวอย่างการตั้งค่าของ  idoutils ไปยังโฟลเดอร์ของ Icinga
cd /usr/local/icinga/etc/
mv idomod.cfg-sample idomod.cfg
mv ido2db.cfg-sample ido2db.cfg
cd modules/
mv idoutils.cfg-sample idoutils.cfg

สร้าง Database สำหรับ idoutils

systemctl start mariadb.service
mysql -u root -p

MariaDB [(none)]> CREATE DATABASE icinga;
MariaDB [(none)]> GRANT USAGE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' \
 WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Import Database
mysql -u root -p icinga < /tmp/icinga-1.10.1/module/idoutils/db/mysql/mysql.sql

กำหนดตั้งค่า Web Interface

สร้างบัญชีผู้ใช้งาน เพื่อใช้สำหรับ Login เข้าหน้า Icinga Monitoring ให้จำ Password ที่กำหนดให้บัญชีผู้ใช้นี้ไว้ เพราะจะต้องได้ใช้ในภายหลัง

htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

หลังจากนั้นทำการ Restart Apache

systemctl restart httpd.service

ดาวน์โหลดและติดตั้ง Nagios Plugins

ดาวน์โหลด Nagios Plugins ไว้ที่ /tmp

cd /tmp
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
tar -zxvf /tmp/nagios-plugins-2.0.3.tar.gz
cd /tmp/nagios-plugins-2.0.3/

# Compile andและ install plugins
./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-nagios-user=
icinga --with-nagios-group=icinga
make
make install

Starting Icinga บนระบบ

ตรวจสอบการตั้งค่ากับไฟล์ตัวอย่าง

/usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg

ถ้าไม่พบ errors ใดๆ ให้ทำการ start Nagios และ Idoutils.

/etc/init.d/icinga start
/etc/init.d/ido2db start

ทำการ Start Icinga และ Idoutils

chkconfig ido2db on
chkconfig icinga on
systemctl enable httpd.service
systemctl enable mariadb.service

เข้าใช้งานหน้า Icinga Monitoring

พร้อมเข้าใช้งานหน้า Icinga Monitoring ตาม URL ด้านล่างนี้ โดย Username (icingaadmin)  และ Password ที่คุณระบุไว้ก่อนหน้า

เข้าเรียกใช้งานได้ดังนี้ http://ip-address/icinga/
icinga-01

ตรวจสอบสถานะของ Service ต่างๆ : เลือก Status >> Service Detail

icinga-02

ตรวจสอบรายงานการ Alert ของสถานะ Service ต่างๆ : เลือก Reporting >> Alert Summary

icinga-03

ตรวจสอบรายงานการแจ้งเตือนของสถานะ Service ต่างๆ : เลือก Reporting >> Notifications

icinga-04

กราฟแสดงสถานะ Host และ Service : เลือก Reporting >> Trends (จากภาพ : กราฟแสดงสถานะ Service ของ http)

icinga-05

กราฟแสดงสถานะ Host และ Service : เลือก Reporting >> Alert Histogram (จากภาพ : กราฟแสดงสถานะ Service ของ http)

icinga-06

ข้อมูลเพิ่มเติม : https://www.icinga.org/

เพียงเท่านี้ ท่านก็จะได้ระบบ monitoring ที่ดีตัวหนึ่งไว้ใช้งาน พร้อมสำหรับดูแลเว็บ/เซิร์ฟเวอร์ ต่างๆ ของท่านแล้ว

Ichinga สามารถลงไว้ใน CloudNode-M ขนาดเล็ก M1G ได้อย่างง่ายดาย