โดยทั่วไปนั้นการตรวจสอบสถานะของ service หากเป็นสถานะที่สามารถเข้าถึงได้จากภายนอก เช่น เวลาที่ใช้ในการโหลดหน้าเพจ , ระยะเวลาที่ใช้สำหรับการส่ง packet ไปกลับ 1 รอบ (round trip time) NetHAM จะสามารถตรวจสอบโดยการ probe เองโดยตรงได้ เช่น การใช้ command check_ping แต่ก็มีข้อมูลจำเพาะของ server บางอย่างที่ไม่สามารถเข้าถึงได้จากภายนอก เช่น cpu load , memory , disk space , จำนวนผู้ใช้ที่ login ในขณะนั้น ฯลฯ
หากต้องการทราบข้อมูลเหล่านี้ เราจำเป็นต้องติดตั้ง daemon ไว้บน server เพื่อทำการส่งข้อมูลเหล่านี้กลับไปยัง NetHAM ตัว daemon ที่กล่าวมานี้คือ NRPE ครับ หรือ Nagios Remote Plug-Ins Executor เป็นเครื่องมือช่วย execute plugin เพื่อหาค่าที่ต้องการ (เช่น cpu load) และส่งกลับไปยังผู้ร้องขอ ซึ่งอาจจะเป็นคนละเครื่องกันก็ได้ครับ ตามหลักการแล้ว NRPE ต้องติดตั้งทั้ง 2 ฝั่ง คือ NRPE daemon ติดตั้งอยู่บน server เป็นผู้ให้บริการ และ plugin check_nrpe ติดตั้งอยู่บน NetHAM ผู้ร้องขอข้อมูล
จากรูปเมื่อผู้ร้องขอข้อมูลต้องการ monitor ข้อมูลของ Remote Linux Host จะมีขั้นตอนการทำงานดังนี้
1. Nagios จะทำการ execute check_nrpe plugin และจะบอก service ที่ต้องการ monitor
2. check_nrpe plugin จำทำการติดต่อกับ NRPE daemon ที่ฝั่นของ Remote Linux Host บน SSL-protected connection
3. NRPE daemon จะรันคำสั่งที่ Nagios plugin ที่จัดสรรไว้เพื่อที่จะไปตรวจสอบเอาข้อมูลที่ Nagios ต้องการออกมา
4. ผลลัพธ์จากการตรวจสอบจะถูก NRPE daemon ส่งกลับไปยัง check_nrpe plugin และ return ผลการตรวจสอบให้แก่ Nagios
รู้และเข้าใจหลักการแล้วต่อมาจะมาทำการ setup NRPE ให้แก่ NetHAM กันดีกว่าครับ จากหลักการ NRPE จะต้องทำการติดตั้งทั้งสองฝั่งแต่ใน NetHAM ได้ทำการติดตั้งให้แล้วเหลือแต่ให้เราไปสร้างคำสั่งขึ้นมาเท่านั้นเอง การสั่งคำสั่งก็ทำตามดังนี้ครับ
1. เข้าสู่ เมนูคำสั่ง > กำหนดคำสั่ง ให้ทำการคลิกที่ปุ่ม เพิ่ม
2. Command line ที่ต้องทำการใส่คำสั่งตาม Pattern ดังนี้
$USER1$/check_nrpe -H $HOSTADDRESS$ -c
จากนั้นให้ทำการบันทึก
เพิ่มเติมนิดครับ ต่อไปนี้เป็นตัวอย่างคำสั่งครับที่จะให้ตรวจสอบค่าต่างๆ
check_load
$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_load
check_total_procs
$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_total_procs
check_hda1
$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_hda1
3. ต่อมาจะเป็นขั้นตอนการสร้าง service นะครับ ให้เข้า เมนูคอนฟิก > เซอร์วิส คลิกที่ปุ่ม เพิ่ม
4. ทำการเพิ่มชื่อให้กับ service นี้และคลิกเลือกคำสั่งทีทำการสร้างขึ้นมา
จากนั้นให้ทำการบันทึก และสั่งเริ่มการทำงานใหม่
5. เมื่อเข้ามาเมนูคอนฟิก > เซอร์วิส จะพบ service ที่พร้อมใช้งาน
ต่อมาก็เป็นขั้นตอนของฝั่ง Remote Linux Host แต่ก็มีขั้นตอนที่ซับซ้อนพอสมควรนะครับ หากผู้ใดไม่มีพื้นฐานในการใช้ระบบปฏิบัติการ linux ต้องใช้ความพยายามนีสนิงนะครับ อ่อ อีกเรื่องครับที่เครื่อง Remote Linux Host จะต้องติดตั้ง Nagios-plugin เอาไว้เป็นที่เก็บคำสั่งด้วยครับข้อนี้สำคัญมากโดยขั้นตอนก็เหมือนกับขั้นตอนการติดตั้ง Nagios เลยครับสามารถหาศึกษาได้จากในเวปครับ
ขั้นตอนการ setup ที่ฝั่ง Remote Linux Host
1. ต้องทำการติดตั้งโปรแกรม xinetd เพื่อใช้ควบคุม service การให้บริการผ่านโพรโตคอล TCP,UDP และกำหนดการเชื่อมต่อของแต่ละ service โดยใช้การติดตั้งดังนี้
# yum install xinetd
2. ทำการ download ไฟล์โดยเข้า website ของ sourceforge
http://sourceforge.net/projects/nagios/files/
เลือก download nrpe-2.12.tar.gz
3. ทำการแตกไฟล์ nrpe-2.12.tar.gz ที่ได้จากการ download
4. ทำการ compile NRPE addon
# ./configure
# make all
5. ติดตั้ง NRPE plugin (ใช้สำหรับทดสอบ), daemon และ ไฟล์ตัวอย่าง daemon config
# make install-plugin
# make install-daemon
# make install-daemon-config
ขั้นตอนติดตั้ง NRPE plugin, daemon และ ไฟล์ตัวอย่าง daemon config
หมายเหตุ : ขั้นตอนการติดตั้งจะอยู่ใน /usr/local/nagios/libexec/nrpe-2.12/)
6. ติดตั้ง service NRPE daemon ภายใต้ xinetd
# make install-xinetd
7. แก้ไขไฟล์ nrpe ที่ path /etc/xinetd.d/nrpe
โดยการเพิ่มหมายเลข IP Addres ของ NetHAM
# gedit /etc/xinetd.d/nrpe &
8. เพิ่มคำสั่งต่อไปนี้ลงในไฟล์ NRPE daemon
# gedit /etc/services &
9. Restart xinetd service โดยคำสั่ง
# service xinetd restart
10. ทดสอบ NRPE daemon บน localhost
ตรวจสอบว่ามี nrpe daemon ทำงานอยู่หรือไม่
# netstat –at grep nrpe
หากไม่มี NRPE daemon running
ตรวจสอบ
- ใน path /etc/services/ มีการเพิ่ม NRPE ?
- ใน path /etc/xinetd.d/nrpe มีการเพิ่มไอพีของ localhost ?
- มีการติดตั้ง xinetd และ เริ่มการทำงาน ?
- ตรวจสอบไฟล์ system log สำหรับข้อผิดพลาดของ NRPE และ xinetd.d
11. ตรวจสอบการทำงานของ NRPE
# /usr/local/nagios/libexec/check_nrpe –H localhost
ผลที่แสดงออกมาควรเป็นชื่อ NRPE v2.12
12. เพิ่มคำสั่งให้ firewall อนุญาติให้ NRPE daemon สามารถเข้ามา
access remote server
เพิ่มคำสั่ง
# iptables -A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT
# service iptables save
13. ปรับแต่งค่าต่างๆของ plugin ที่ path /usr/local/nagios/etc/nrpe.cfg
ตัวอย่าง การปรับค่าของ check_hda1
เดิม /usr/local/nagios/libexec/check_disk –w 20% -c 10% -p /dev/hda1
แก้ไข /usr/local/nagios/libexec/check_disk –w 20% -c 10% -p /
14. ตรวจสอบการทำงานผ่าน NRPE daemon อีกครั้ง
หว้า…จบแล้วครับ จากนี้ก็ลองให้ NetHAM ไป monitor host โดยใช้ NRPE ดูนะครับ ได้ผลอย่างไรมาเล่าให้ฟังกันบ้างนะครับ (- -“)
แหล่งที่มา :
- James Turnbull, Pro Nagios 2.0 สำนักพิมพ์ Apress the expert’s voice
- Wolfgang Barth, Nagios System and Network Monitoring สำนักพิมพ์ opensource PRESS
- Nagios, NRPE Documentation Copyright (c) 1999-2007 by Ethan Galstad
- เอกสารในงานอบรมการใช้โปรแกรมตรวจสอบสถานะของเครือข่ายและบริการ NetHAM (Network Health Analysis and Monitoring) โดย ชาวีร์ อิสริยภัทร์ , ธนชัย คงพูล
ไม่มีความคิดเห็น:
แสดงความคิดเห็น