เทคกะนิก ที่จะไปตรวจสอบ host ที่ไม่สามารถเข้าถึงได้มีดังนี้ครับ
o Monitoring via NRPE
o Monitoring via SSH
o Monitoring via SNMP
o Monitoring Windows
ปล. จะไม่ขอกล่าวถึง NSCA นะครับเพราะ 4 วิธีข้างต้นก็เพียงพอแล้วครับ (ข้ออ้าง … ครับ)
Monitoring via NRPE
ขอยกรูปต่อไปนี้มาอธิบายเลยนะครับ ผมคิดว่าดูแล้วเข้าใจมากกว่าจะมาอ่านผมอธิบาย
แง่วๆๆ ล้อเล่นครับอ่านผมอธิบายหน่อยนะครับ
NRPE ย่อมาจาก Nagios Remote Plug-Ins Executor เป็นเครื่องมือช่วย execute plugin เพื่อหาค่าที่ต้องการ เช่น cpu_load และส่งกลับไปยังผู้ร้องขอ ซึ่งอาจจะเป็นคนละเครื่องกัน โดย NRPE ต้องติดตั้งทั้งสองฝั่งครับ คือ ฝั่ง Monitoring (Nagios) และ Remote Linux Host (เครื่องที่จะทำการ monitor)
จากรูปเมื่อผู้ร้องขอข้อมูลต้องการ 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
++ ลืมบอกไปครับ NRPE ใช้กับ host ที่ลงระบบปฏิบัติการ Unix นะครับ windows ต้องรอแว๊วครับ…
ต่อมาก็มามึน..งง กับการ config กันดีกว่าครับ เอ๊ย ไม่มึนกันนะครับ ไม่ยากอย่างที่คิด แต่มันก็ไม่ได้ง่ายอย่างที่หวังครับ 6(--‘)
o Setup Remote Host (เครื่องที่ถูก monitor)
1. ทำการ login เข้าสู่ server ที่ต้องการ monitor โดยใช้ root user
2. ตรวจสอบ nagios-plugin โดยพิมพ์คำสั่งดังนี้
#cd /usr/local/nagios/libexec/
3. ทำการติดตั้งโปรแกรม xinetd เพื่อใช้ควบคุม service การให้บริการผ่าน โพรโตคอล TCP,UDP และกำหนดการเชื่อมต่อของแต่ละ service โดยใช้การติดตั้งดังนี้
# yum install xinetd
4. Download NRPE daemon โดยการ download ไฟล์
เข้าสู่ website ของ sourceforge
http://sourceforge.net/projects/nagios/files/
เลือก download nrpe-2.12.tar.gz
5. ทำการแตกไฟล์ nrpe-2.12.tar.gz ที่ได้จากการ download
# tar xzf nrpe-2.12.tar.gz
# cd nrpe-2.12
6. ทำการ compile NRPE addon
# ./configure
# make all
# ./configure
# make all
7. ติดตั้ง NRPE plugin (ใช้สำหรับทดสอบ), daemon และ ไฟล์ตัวอย่าง daemon config
# make install-plugin
# make install-daemon
# make install-daemon-config
หมายเหตุ : ขั้นตอนการติดตั้งจะอยู่ใน /usr/local/nagios/libexec/nrpe-2.12/)
8. ติดตั้ง service NRPE daemon ภายใต้ xinetd
# make install-xinetd
9. แก้ไขไฟล์ nrpe ที่ path /etc/xinetd.d/nrpe
โดยการเพิ่มหมายเลข IP Addres ของ NetHAM
# gedit /etc/xinetd.d/nrpe &
เมื่อทำการเพิ่มหมายเลข IP Addres ของ NetHAM แล้วให้ทำการ save
10. เพิ่มคำสั่งต่อไปนี้ลงในไฟล์ NRPE daemon
# gedit /etc/services &
เพิ่มคำสั่ง nrpe 5666/tcp # NRPE
11. Restart xinetd service โดยคำสั่ง
# service xinetd restart
12. ทดสอบ NRPE daemon บน localhost
- ตรวจสอบว่ามี nrpe daemon ทำงานอยู่หรือไม่
# netstat –at grep nrpe
13. ตรวจสอบการทำงานของ NRPE
# /usr/local/nagios/libexec/check_nrpe –H localhost
ผลที่แสดงออกมาควรเป็นชื่อ NRPE v2.12
14. เพิ่มคำสั่งให้ firewall อนุญาติให้ NRPE daemon สามารถเข้ามา
access remote server
เพิ่มคำสั่ง
# iptables -A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT
# service iptables save
15. ตรวจสอบ firewall
# iptables –L grep nrpe
16. ปรับแต่งค่าต่างๆของ 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 /
17. ตรวจสอบการทำงานผ่าน NRPE daemon อีกครั้ง
ได้ตามนี้ แสดงว่า คุณทำได้แล้วครับ
o Setup NetHAM (เครื่องที่ใช้ monitor)
1. ติดตั้ง check_nrpe plugin โดยวิธีดังนี้
โดยการ download ไฟล์โดยเข้า website ของ sourceforge
http://sourceforge.net/projects/nagios/files/
เลือก download nrpe-2.12.tar.gz
2. ทำการแตกไฟล์ nrpe-2.12.tar.gz ที่ได้จากการ download
# tar xzf nrpe-2.12.tar.gz
# cd nrpe-2.12
3. ทำการ compile NRPE addon
# ./configure
# make all
4. ติดตั้ง NRPE plugin
# make install-plugin
5. ทดสอบการทำงานระหว่าง check_nrpe plugin กับ NRPE daemon ที่เครื่อง
remote host โดยใช้คำสั่ง
# /usr/local/nagios/libexec/check_nrpe -H
เรามาทดลอง monitor เครื่อง Remote Unix Host กันครับ
# cd /usr/local/nagios/libexec/
# ./check_nrpe –H
เช่น
# ./check_nrpe –H
# ./check_nrpe –H
ผลตอบกลับน่าจะเป็นไปทำนองนีนะครับ :
หากได้ตามนีก็เป็นอันสำเร็จครับ ..
Monitoring via SSH
ต่อมาเป็นการ monitor ผ่านโปรโตคอล SSH ก็เป็นอีกวิธีครับที่จะเข้าไปตรวจสอบ host ได้แต่ที่ host ก็ต้องเปิด port ssh และรัน sshd daemon ไว้ด้วยครับ ในการ monitor ผ่าน ssh จะต้องมีการสร้าง key เข้ามาเกี่ยวด้วยซึ่งเป็นขั้นตอนที่สำคัญครับ ผมจะขอข้ามขั้นตอนการสร้าง key ระหว่างเครื่อง monitoring กับเครื่อง host นะครับแต่จะนำเสนอวิธีการใช้ plugin check_by_ssh
ในการตัวอย่างเป็นการใช้ plugin check_by_ssh นะครับไม่ใช่ check_ssh เพราะเป็นการทำงานต่างกัน ใน plugin นี้มี option ที่สำคัญที่จะต้องระบุก็คือ -i ซึ่งเป็นการระบุที่เก็บ key ที่เราได้ทำการสร้างไว้ครับ ส่วน -c เป็นการระบุคำสั่งที่ต้องการตรวจสอบและ -t เป็นการระบุเวลา timeout หากมีการติดต่อกันนานเกินกำหนดจะทำการปิด connection ทันที
Monitoring via SNMP
การ monitor ด้วยใช้ SNMP เป็นอีกเทคนิคหนึ่งครับ แต่ค่อนข้างยุ่งยากครับ ต้องมีความรู้พื้นฐานของการปรับแต่งและการใช้ SNMP เกริ่มมาขนาดนนี้ก็ตามสเต็ปครับ ผมจะไม่ขออธิบายนะครับ รายละเอียดเยอะครับแต่มีอะไรถามมาได้ครับ การใช้เทคนิคนี้เราต้องรู้ก่อนว่าค่า OID (Object Identifiers) ของอุปกรณ์ที่เราจะไปตรวจสอบมีค่าอะไรครับ และก็ต้องเพิ่มชื่อ community ให้ที่เครื่อง host เพื่อให้เราสามารถเข้าไป walk ค่าต่างๆได้ครับ ในตัวอย่าง ค่า OID ของเครื่อง host เป็นดังนี้ครับ
- IF-MIB::ifOperStatus.1
- HOST-RESOURCES-MIB::hrSystemUptime.0
และมี community string คือ nagios-test
Monitoring Windows
การ monitor Windows host มีหลักการเหมือนกับ NRPE แต่แตกต่างที่ plugin ที่ใช้ในการส่งคำสั่งไปยัง host ของ Windows จะใช้ plugin check_nt แทน
ผมจะทำบน Remote Windows Host ที่เป็น Windows XP นะครับ
1. ก่อนอื่น ต้องมี NSClient++ ก่อนครับโดยดาวน์โหลดได้ที่
http://inms.in.th/netham/files/
· Copy Folder NSClient++ ที่ได้ทำการ Unzip แล้วไปไว้ที่ Local Disk (C:)
· เข้าสู่ Dos โดยไปที่ Start Menu > Runs > พิมพ์ cmd > กด OK
· เข้าสู่ folder NSClient++ โดยพิมพ์คำสั่ง
cd c:\
cd “NSClient++”
· ทำการติดตั้ง NSClient++ โดยพิมพ์
nsclient++.exe /install
2. หลังจากติดตั้ง NSClient++ เรียบร้อยแล้ว เราจะต้องตั้งค่าขั้นต้นกันครับ
· กลับสู่ folder NSClient++ ใน C:
· เปิดไฟล์คอนฟิก nsc.ini เราจะเปิดด้วย Text editor อะไรก็ได้ แล้วแต่สะดวกครับ จากนั้นให้เอา comment ออกที่ตำแหน่ง
หัวข้อ [modules]
ให้เอา “ ; ” หน้าข้อความต่อไปนี้ออก
ในหัวข้อ [Settings]
ให้เอา “ ; ” หน้าข้อความ allowed_hosts ออก และทำการเติมหมายเลข IP Address ของ NetHAM
allowed_hosts= NetHAM IP address
ในหัวข้อ [NSClient]
ให้เอา “ ; ” หน้าข้อความ port=12489 ออก
เราจะใช้การส่งคำสั่งผ่านทาง port 12489 ครับ
3. จากการตั้งค่าขั้นต้น ได้เปิด port 12489 ไว้เพื่อให้ NSClient ติดต่อกับ NetHam ซึ่งถ้า Windows ของคุณปิด Firewall อยู่แล้ว ก็ไม่จำเป็นต้อง Config อะไรบน Windows เพิ่มครับ แต่เพื่อความปลอดภัยแล้ว ควรเปิด Firewall และสร้าง Exception port แค่ที่เราต้องการใช้งาน เพื่อป้องกันการบุกรุกจากผู้ไม่ประสงค์ดีครับ
สั่งให้ firewall เปิด port 12489Control Panel > Windows Firewall > Exceptions > คลิก Add Port…

กรอกข้อมูลดังต่อไปนี้ แล้วกด OK
4. สั่งให้ NSClient++ ทำงานเป็น daemon โดย คลิกขวาที่ My Computer และเลือก Service แล้ว คลิกขวาที่ Process ชื่อ NSClientpp (Nagios) 0.3.7.82 2009-07-19 w32 กด Start

ทีนี้ก็จะเป็นทางฝั่ง nagios บ้างครับ ให้เราลองใช้คำสั่งไปตรวจสอบ host โดยใช้ NSclientผมจะขอยกตัวอย่าง การ monitor host ดูว่า host windows มีการเปิดใช้งานมานานเท่าไร
1. เราต้องทำการกำหนดคำสั่งก่อนครับ (หากยังจำกันได้)
# 'check_nt' command definition
define command{
command_name check_nt_uptime
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$
}
2. ทำการระบุ host ที่จะทำการ monitor
define service{
use generic-service ; Name of service template to use
host_name WINDOWS
service_description NT_UPTIME
check_command check_nt_uptime!UPTIME
notifications_enabled 0
}
3. หลักจาก assign service ให้ host แล้ว ให้ทำการ write config และ เริ่มการทำงานใหม่
4. กลับมาดูผลการตรวจสอบกันครับ
1. เราต้องทำการกำหนดคำสั่งก่อนครับ (หากยังจำกันได้)
# 'check_nt' command definition
define command{
command_name check_nt_uptime
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$
}
2. ทำการระบุ host ที่จะทำการ monitor
define service{
use generic-service ; Name of service template to use
host_name WINDOWS
service_description NT_UPTIME
check_command check_nt_uptime!UPTIME
notifications_enabled 0
}
3. หลักจาก assign service ให้ host แล้ว ให้ทำการ write config และ เริ่มการทำงานใหม่
4. กลับมาดูผลการตรวจสอบกันครับ
แหล่งที่มา :
- 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) โดย ชาวีร์ อิสริยภัทร์ , ธนชัย คงพูล
- 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) โดย ชาวีร์ อิสริยภัทร์ , ธนชัย คงพูล



ไม่มีความคิดเห็น:
แสดงความคิดเห็น