เข้าระบบ
username :  
password :  
เก็บสถานะ :  
 
:: อ่านรายละเอียด ::
หัวเรื่อง : Network Monitoring and Management System with Nagios
โดย : 4917630003 ผู้อ่าน : 2838 ครั้ง
เขียนเมื่อวันที่ : 12/07/2008 12:08:56
หมวดหมู่ : Networking
เก็บหน้านี้ไว้ | พิมพ์หน้านี้ | แสดงความคิดเห็น กลับไปหน้าที่แล้ว

โดย จิรชัย ทองเทพ
เขียนวันที่ 12/7/2551


บทนำ
Nagios คือ เครื่องมือที่ใช้ในการตรวจจับสถานะการทำงานของ Host, Service หรือ Network Device ทำงานบนระบบปฏิบัติการ Unix และเป็น Open Source โดยสิ่งที่ตรวจจับนั้นต้องสามารถติดต่อผ่าน TCP/IP ได้ ซึ่งจะคอยเฝ้าระวังระบบเมื่อเกิดปัญหาโดยจะแจ้งเตือนปัญหาที่เกิดขึ้น ปัจจุบัน Version ที่ได้ใช้ในบทความนี้คือ  Nagios 3.0.3 (Stable)

ความสามารถของระบบ

  • สามารถตรวจสอบการทำงานของ Service ต่างๆได้ เช่น  SMTP, POP3, HTTP, NNTP, PING และอื่นๆ
  • สามารถตรวจสอบการใช้ทรัพยากรของ Host ได้ เช่น ตรวจจับสถานะการทำงานของ CPU , Disk , Memory usage และอื่นๆ
  • สามารถออกแบบ Plugin เพื่อนำมาใช้ในการตรวจจับข้อมูลของ Service ที่ต้องการใช้ได้
  • สามารถแสดงฝังของ Server หรือ ระบบเครือข่ายได้ เพื่อสามารถวิเคราะห์สิ่งที่เกิดขึ้นกับระบบได้โดยจะมีการตรวจสอบเป็นแบบ Parent
  • สามารถกำหนดเหตุการณ์ควมคุมเมื่อเกิดปัญหาได้ 
  • มีการเก็บข้อมูลเพื่อนำไปวิเคราะห์ได้ 
  • สามารถ Integrate ใช้งานกับ โปรแกรมอื่นๆได้เช่น Snort, Syslog-NG หรืออื่นๆ

FCAPS กับ Nagios
       Nagios ได้ใช้หลักการ FCAPS ในการบริหารจัดการโดยมีคุณสมบัติดังนี้  
Fault

  • สามารถตรวจสอบสถานะของระบบคอมพิวเตอร์และเครือข่ายได้
  • สามารถตรวจสอบปัญหาและแจ้งปัญหาไปยังผู้ดูแลระบบได้   
  • สามารถบันทึกปัญหาและวิธีการแก้ไขได้     

Configuration     

  • สามารถกำหนดค่า Config ต่างๆให้สามารถตรวจจับการทำงานของระบบ Server หรือระบบ Network รวมไปถึงควมคุมอุปกรณ์ต่างๆได้ที่มีพื้นฐานการทำงานบน Protocol TCP/IP ได้   
  • สามารถแสดงลักษณะการเชื่อมต่อและความสัมพันธ์ต่างๆของระบบ  
  • สามารถทราบข้อมูลต่างๆของอุปกรณ์ได้  

Accounting       

  • สามารถตรวจสอบกิจกรรมต่างๆได้ว่าใครใช้บริการอะไร มากน้อยแค่ไหนเพื่อนำมาวิเคราห์กำหนดแผนการต่างได้                             

Performance    

  • ตรวจสอบความสามารถในการทำงานของระบบได้ เพื่อให้ระบบสามารถใช้ได้อย่างมีประสิทธิภาพ ทราบถึง Throughput, Utilization , Error และ respond Time  
  • ตรวจสอบกิจกรรมต่างๆที่เกิดขึ้นภายในระบบได้โดยมีระบบเตือนผู้ดูแลหากมีการใช้งานเกินกว่ามาตรฐานได้   

Security              

  • มีการเข้ารหัสข้อมูลในการ Monitoring   
  • มีการกำหนดสิทธิในการใช้งาน
      

ขั้นตอนการตรวจสอบ Topology ของ Nagios
Nagios มีวิธีการ    ตรวจสอบความสัมพันธ์ของระบบแบบ Dependency โดยจะให้ความสำคัญกับService ก่อน หาก Service ไม่สามารถติต่อได้ก็จะไปตรวจสอบที่ Host และ Parent ตามลำดับ


  
ซึ่งวิธีการทำงานสามารถแสดงตัวอย่างการตรวจสอบได้ดังนี้
   
   
สมมติว่าหาก Switch 2 มีปัญหา Nagios ก็เริ่มทำการตรวจสอบ Service ที่อยู่ใน Parent นั้นก่อน คือ DNS และแจ้งว่า DNS ไม่สามารถติดต่อได้ (UNREACHABLE) จากนั้นก็จะตรวจสอบ Host ของ Service DNS นั้นว่าสามารถเข้าถึงหรือไม่ ซึ่งก็ไม่สามารถติดต่อได้เช่นกัน Nagios ก็จะตรวจสอบ Parent ของ Host นั้นก็คือ Switch2 และก็ไม่สามารถติดต่อได้เช่นกัน จึงไปตรวจสอบ Parent ของ Switch2 นั่นคือ Switch1 ซึ่งสามารถติดต่อได้ ทำให้ปัญหาที่ทำให้ Service DNS ไม่สามารถใช้งานได้คือ Switch2 โดยจะแจ้งสถานะว่า Switch1 = UP , Switch2 = Down และ Proxy =  UNREACHABLE  เป็นต้น
สถานะที่ใช้ในการแจ้งเตือนของHost และ Service จะไม่เหมือนกันโดยแสดงดังนี้

สำหรับสถานะของ Service จะแบ่งเป็น OK, WARNING,CRITICAL, UNKNOWN
สำหรับสถานะของ Host นั้นจะเป็น UP, DOWN , UNREACHABLE

ขั้นตอนการตรวจสอบระบบ
ในการทำงานของ Nagios Server เพื่อตรวจสอบ Service ต่างๆในระบบนั้นจำเป็นต้องใช้ External Program ด้วยหรือเรียกว่า Plugin เนื่องจากในระบบต่างๆมีโครงสร้างการทำงานไม่เหมือนกันทำให้บางครั้งไม่สามารถตรวจสอบระบบได้ จึงทำให้ Nagios แบ่งรูปแบบ Plugin หรือ Agent ที่ใช้ในการติดต่อกับ Nagios Server ไว้หลายวิธีดังนี้

  1. Monitor ผ่าน Plugin ของ Nagios เอง หรือ Plugin อื่นๆที่เขียนขึ้นมาโดยเฉพาะ
  2. Monitor ผ่าน Plugin SSH เป็น Plugin เพื่อใช้สำหรับ Run คำสั่งต่างๆผ่าน Secure Shell โดยตรง
  3. Monitor ผ่าน Plugin NRPEเป็น Plugin เพื่อใช้สำหรับ Run คำสั่งต่างๆผ่าน nrpe โดย nrpe จะเปรียบเสมือนท่อในการส่งข้อมูลมีการเข้ารหัสด้วย SSL/TSL ผ่าน TCP Port 5556
  4. Monitor ผ่าน Plugin SNMP เป็น Plugin ใช้สำหรับ Server หรืออุปกรณ์ Network ต่างๆ
  5. Monitor ผ่าน Plugin NCSA ซึ่งเป็น Plugin ไว้สำหรับทำ Distributed Nagios คือทำให้สามารถกระจายการ Load ของ Nagios Server ได้

ขั้นตอนการติดตั้ง
ก่อนการติดตั้ง Nagios นั้นจำเป็นต้องมีการติดตั้ง Package ดังต่อไปนี้ก่อน 

  1. Apache
  2. GCC Compiler 
  3. GD development libraries 
  4. Perl Net SNMP  

หากยังไม่มีการติดตั้ง สามารถติดตั้งผ่านทาง Yum ดังนี้ 
[root@fc8 ~]# yum install httpd gcc  glibc glibc-common gd gd-devel perl-Net-SNMP

สร้าง User และ Group สำหรับ Nagios
[root@fc8 ~]# groupadd nagios
[root@fc8 ~]# useradd -g nagios -m nagios  

 สร้าง Command Group สำหรับ Nagios เพื่อให้สามารถมี Authorize ในการสั่งงานผ่าน Web ได้ 
 [root@fc8 ~]# groupadd ncmd
 [root@fc8 ~]# usermod -G ncmd nagios
[root@fc8 ~]# usermod -G ncmd apache 
  
 Download Nagios จาก www.nagios.org หรือผ่านทาง wget
[root@fc8 ~]# wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.3.tar.gz  

ทำการแตก File และเข้าไปใน Directory เพื่อติดตั้ง 
 [root@fc8 ~]# tar –zxvf nagios-3.0.3.tar.gz 
 [root@fc8 ~]# cd nagios-3.0.3 

ทำการ Compile Config 
 [root@fc8 ~]# ./configure --prefix=/usr/local/nagios --with-htmlurl=/nagios/➥ 
 --with-cgiurl=/nagios/cgi-bin --with-nagios-user=nagios --with-nagios-group=nagios➥ 
 --with-command-group=ncmd 
  
ทำการ Compile โปรแกรม Nagios Server และติดตั้งลงในระบบ 
 [root@fc8 nagios-3.0.3]# make all 
 [root@fc8 nagios-3.0.3]# make install 
 [root@fc8 nagios-3.0.3]# make install-init 
 [root@fc8 nagios-3.0.3]# make install-commandmode 
 [root@fc8 nagios-3.0.3]# make install-config 
 [root@fc8 nagios-3.0.3]# make web-config

สร้างUser เพื่อใช้เพื่อใช้ในการ Login  เข้า Web Interface
[root@fc8 nagios-3.0.3]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

หลังจากที่ทำการติดตั้ง Nagios Server แล้วให้ติดตั้ง Nagios Plugin ซึ่งเป็นโปรแกรมที่ใช้ร่วม Nagios Server ประกอบไปด้วยข้อมูลที่ออกแบบไว้เพื่อ Monitor ระบบต่างๆ
[root@fc8 ~]#  wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.12.tar.gz
[root@fc8 ~]# tar -zxf nagios-plugins-1.4.12.tar.gz

ทำการ Compile Config ต่างๆ
[root@fc8 nagios-plugins-1.4.12]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios ➥ 
--with-nagios-group=nagios --with-cgiurl=/nagios/cgi-bin --enable-perl-modules

หลังจากที่ Compile เสร็จแล้วให้ทำการ make และ make install เพื่อติดตั้งลงในระบบ [root@fc8 nagios-plugins-1.4.12]# make
[root@fc8 nagios-plugins-1.4.12]# make install

ทำการ Start Service ของ Nagios Server
[root@fc8 nagios-3.0.3]# service nagios start

ท่านสามารถทดสอบการใช้งาน Nagios โดยเข้า Web ไปที่ http://localhost/nagios

โครงสร้างของ Nagios
โครงสร้าง Directory ของ Nagios Server  ประกอบไปด้วย 7 Directories ดังนี้
 
 /usr/local/nagios/
|-- bin                     ประกอบด้วย File โปรแกรม Nagios 
|-- etc                     ประกอบด้วย File Config ของระบบ Server  หรือ ระบบเครือข่าย
 
|-- libexec              ประกอบด้วย File คำสั่งที่ใช้ในการตรวจจับต่างๆซึ่งนำไปใช้ใน File Config

|-- perl                    ประกอบด้วยข้อมูลของ Nagios ที่เขียนเป็น  Moduleใช้สำหรับภาษา Perl 
|-- sbin                   ประกอบด้วย File CGI ที่ใช้เรียกข้อมูลแสดงบน Web 
|-- share                 ประกอบด้วยข้อมูลที่ใช้เข้า Web ของ Nagios 
`-- var                    ประกอบด้วยข้อมูลล็อคของ Nagios Server

เนื่องจาก File Config ตั้งอยู่ที่ /usr/loca/nagios/etc และรายละเอียดการ Config ค่อนข้างเยอะท่านสามารถอ่านเพิ่มเติมได้ที่ http://www.nagios.org 

โดยแผนผังความสัมพันธ์ของ File Config มีดังนี้



ตัวอย่างการทำงานผ่าน Web Interface

หน้าหลัก


Tactical Overview

 

Service Detail

 

Host Detail

 

Status Map

 

Service Problems

 

Scheduling Queue

 

Availability

 

Alert Histogram

 

Alert History

 

Notification

 

Event Log

 

 

เอกสารอ้างอิง

  1. http://www.nagios.org/docs/
  2. Nagios 3 Enterprise Network Monitoring: Including Plug-Ins and Hardware Devices
  3. Nagios: System and Network Monitoring
  4. Pro Nagios 2.0 (Expert's Voice in Open Source)
กลับไปหน้าที่แล้ว
เรียงลำดับคำตอบ :


  ส่วนแสดงความคิดเห็น
หน้าที่ 1
ความคิดเห็นที่ 5     โพสเมื่อ :19/01/2010 09:14:07
Reply by :
Casanova

ระดับ :ศิษย์พี่ใหญ่
ตั้งคำถาม : 29 ครั้ง
ตอบคำถาม : 216 ครั้ง
E-mail :
อ้างอิงจาก คุณ nite
สวัสดีครับ พี่ครับ ตอนนี้ทำ ซีเนียโปรเจคเรื่อง นากิออสพอดีครับ เเต่ติดปัญหาว่า ไม่รุ้ว่าจะเอา frontend ตัวไหนดี เพราะอาจารย์อยากได้ front end เเบบที่เอาของคนอื่นมาเปลี่ยนอะครับ เเต่ต้องมีคุณสมบัต ทั้งการ add host ผ่านหน้าเว็บ หรือการ คอนฟิกผ่านหน้าเว็บ พร้อมกราฟสวยๆ เเบบ rrd ด้วยอะครับ เท่าที่ผมดูมา ไม่มี frontend ตัวไหนเลยที่ทำได้ทั้งสองเเบบนี้ มีเเต่ได้อย่างได้อย่างนึง เช่น sysmon จะได้เเค่ กราฟสวยๆ จาก rrd ในขณะที่ nagiosQL ก็จะได้เเค่ add host ผ่านหน้าเว็บ เเต่ไม่มีกราฟให้ดู พี่พอมีคำเเนะนำเรื่อง frontend ที่หน้าสนใจต่อการนำมา โมต่อมั้ยอ่าครับ ขอบคุณมากครับผม winza42@hotmail.com 

ลองใช้ sysmon สิครับ และที่เหลือก็เขียน script เพิ่มเอาให้สามารถ add host ได้ เหมือน nagiosQL อาจจะศึกษา Source จาก nagiosQL เป็น Guide line ก็ได้ครับ ซึ่งจะได้คุณสมบัติตามต้องการ

ตอบกลับ | อ้างอิง

ความคิดเห็นที่ 4     โพสเมื่อ :24/11/2009 00:52:34
Reply by :
nite
ตำแหน่ง:
Guest
สวัสดีครับ พี่ครับ ตอนนี้ทำ ซีเนียโปรเจคเรื่อง นากิออสพอดีครับ เเต่ติดปัญหาว่า ไม่รุ้ว่าจะเอา frontend ตัวไหนดี เพราะอาจารย์อยากได้ front end เเบบที่เอาของคนอื่นมาเปลี่ยนอะครับ เเต่ต้องมีคุณสมบัต ทั้งการ add host ผ่านหน้าเว็บ หรือการ คอนฟิกผ่านหน้าเว็บ พร้อมกราฟสวยๆ เเบบ rrd ด้วยอะครับ เท่าที่ผมดูมา ไม่มี frontend ตัวไหนเลยที่ทำได้ทั้งสองเเบบนี้ มีเเต่ได้อย่างได้อย่างนึง เช่น sysmon จะได้เเค่ กราฟสวยๆ จาก rrd ในขณะที่ nagiosQL ก็จะได้เเค่ add host ผ่านหน้าเว็บ เเต่ไม่มีกราฟให้ดู พี่พอมีคำเเนะนำเรื่อง frontend ที่หน้าสนใจต่อการนำมา โมต่อมั้ยอ่าครับ ขอบคุณมากครับผม winza42@hotmail.com 
ตอบกลับ | อ้างอิง

ความคิดเห็นที่ 3     โพสเมื่อ :20/11/2009 11:55:43
Reply by :
peak
ตำแหน่ง:
Guest
ดีครับ  ตอนนี้ผมทำโปรเจ็กเกี่ยวกับ nagios ซึ่งตอนนี้ฝึกงานอยู่ที่ Nectec  และผมก็อยากลองอ่าน E -book ดู  ยังไงก็ขอ E-book พี่อ่านด้วยน่ะครับ 
 
                                    peak_jak@hotmail.c0m
ขอบคุณครับ 
ตอบกลับ | อ้างอิง

ความคิดเห็นที่ 2     โพสเมื่อ :21/09/2009 17:24:48
Reply by :
Casanova

ระดับ :ศิษย์พี่ใหญ่
ตั้งคำถาม : 29 ครั้ง
ตอบคำถาม : 216 ครั้ง
E-mail :
ใครสนใจนำเรื่อง nagios ไปทำ project หรือ บทความต่อ สอบถามได้นะครับ
พอดีผมยังมี e-book เป็น pdf ทั้ง 3 เล่ม อยู่ครับ
ตอบกลับ | อ้างอิง

ความคิดเห็นที่ 1     โพสเมื่อ :22/05/2009 23:03:21
Reply by :
บทความสาระความรู้ของท่านมีประโยชน์มากคะ
ตำแหน่ง:
Guest
สวัสดีคะ ท่านผู้เขียน
บทความสาระความรู้ของท่านมีประโยชน์มากคะ 
ขอชื่นชมคะ
ตอบกลับ | อ้างอิง

หน้าที่ 1