Thursday, January 28, 2010

การปรับแต่ง Nagios ให้สามารถ monitor เครื่อง Client ที่ลงระบบปฏิบัติการ Linux

การปรับแต่ง Nagios ให้สามารถ monitor เครื่อง Client ที่ลงระบบปฏิบัติการ Linux

หลังจากที่เราทำการติดตั้ง Nagios เรียบร้อยแล้ว สิ่งที่ Nagios ทำคือ ระบบจะสามารถ monitor ตัว Nagios server เอง ดังรูป



ซึ่งหากเราจะต้องการ Monitor client เครื่องอื่น ๆ ก็จะต้องทำการปรับแต่งระบบเพิ่มเติมอีกเล็กน้อย โดยเราจะต้องใช้ Nagios plugins ตัวหนึ่งที่ชื่อว่า NRPE - Nagios Remote Plugin Executor

สำหรับรายละเอียดของ NRPE สามารถหาอ่านได้ที่ http://wiki.nectec.or.th/ntl/Project/NRPE

การติดตั้ง NRPE นั้น แบ่งออกเป็น 2 ส่วน คือการติดตั้งที่ Client และการติดตั้งที่ Server

Client ที่ใช้จะเป็น Debian5 ซึ่งถ้าใครจะใช้ Linux ตระกูล Redhat ก็สามารถทำการปรับแต่งได้ไม่ต่างกันครับ

การติดตั้งที่ Client

1. Download Nagios-plugins จาก http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

2. Download nrpe จาก http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

3. สร้าง Nagios account

[client]# useradd nagios
[client]# passwd nagios

4. ติดตั้งNagios-plugin

[client]# tar xvfz nagios-plugins-1.4.11.tar.gz
[client]# cd nagios-plugins-1.4.11
[client]# export LDFLAGS=-ldl
[client]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[client]# make
[client]# make install
[client]# chown nagios.nagios /usr/local/nagios
[client]# chown -R nagios.nagios /usr/local/nagios/libexec/


5. ติดตั้ง NRPE

[client]# aptitude install libssl-dev libkrb5-dev zliblg-dev e2fsprogs
[client]# tar xvfz nrpe-2.12.tar.gz
[client]# cd nrpe-2.12
[client]# ./configure
[client]# make all
[client]# make install-plugin
[client]# make install-daemon
[client]# make install-daemon-config
[client]# aptitude install xinetd
[client]# make install-xinetd

6. ปรับแต่งค่าของ /etc/xinetd.d/nrpe โดยเพิ่ม ip-address ของ Nagios server (สมมติให้ IP ของ Nagios server คือ: 10.1.1.1)

only_from = 127.0.0.1 10.1.1.1

7. เพิ่มค่าใน /etc/services

nrpe 5666/tcp # NRPE

8. เปิดการใช้งาน

[client]#service xinetd restart

9. ตรวจสอบว่า nrpe ทำงานอยู่หรือไม่

[client]# netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN

10. ตรวจสอบว่า nrpe ทำงานได้ถูกต้องหรือไม่

[client]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12

11. ปรับแต่งค่าของ nrpe ที่ /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_mem]=/usr/local/nagios/libexec/check_mem -w 80,50 -c 90,90

-------------------------------------------------------------------------------------------------

การติดตั้งที่ Nagios Server

1. Download nrpe จาก http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

2. ติดตั้ง NRPE

[Server]# aptitude install libssl-dev libkrb5-dev zliblg-dev e2fsprogs
[Server]# tar xvfz nrpe-2.12.tar.gz
[Server]# cd nrpe-2.12
[Server]# ./configure
[Server]# make all
[Server]# make install-plugin

3. ตั้งค่า Host และ Service

ที่ /etc/nagios3/conf.d/ ให้เราสร้างไฟล์ host ใหม่ขึ้นมา ตามชื่อของ Client เช่น client.cfg แล้วใส่ค่าลงไป ตัวอย่างเช่น

define host{
use linux-server
host_name client
alias Debian5 Server
address 10.10.10.10
contact_groups admins
}

# Service to check load
define service{
use generic-service
host_name client
service_description Load
notifications_enabled 0
check_command check_nrpe!check_load
}

4. reload การทำงานของ Nagios

[Server]# /etc/init.d/nagios3 reload

5. เมื่อเข้าไปดูที่หน้าจอก็จะพบว่ามี Client เพิ่มขึ้นมาแล้ว ดังรูป

Wednesday, January 20, 2010

Change Nagios TimeZone in Debian

เวลาลง Package บน Debian ถ้าลงด้วย aptitude ก็จะไม่เหมือนลงแบบแตกไฟล์ เวลาคู่มือเขียน ก็ไม่ได้อ้างอิงการลงแบบ aptitude
การเซท Timezone ของ Nagios เหมือนกัน หาอยู่ตั้งนานเพราะไม่เหมือนในคู่มือ มีข้อแตกต่างกันอยู่เล็กน้อย

1. vi เข้าไปที่ /etc/nagios3/nagios.cfg แล้วเพิ่มคำสั่งนี้ลงไป

use_timezone=Asia/Bangkok

2. vi เข้าไปที่ /etc/nagios3/apache2.conf แล้วเพิ่มคำสั่งนี้ลงไป



3. Restart Apache2 กับ Nagios แล้วลองเปิดดู timezone จะเปลี่ยนไปแล้ว

Tuesday, January 19, 2010

Add user บน Nagios3

ถ้าเราลง Nagios3 โดยใช้ aptitude บน Debian
Package ต่าง ๆ จะไม่ได้อยู่เหมือนหับที่ในเวบเค้าเขียนกัน

สิ่งแรกที่ต้องทำหลังจากลง Nagios ไปแล้ว คือ การสร้าง user/password เพื่อให้เราสามารถเข้าไปยังหน้าเวบได้
ก็พิมพ์ตามนี้ได้เลย


htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin


ใส่ password แล้วก็เข้าเวบได้เลย

Debian 5 minimal Installation Part 2

Debian 5 minimal Installation Part 2
ต่อจากคราวที่แล้วเลยนะครับ


14. เลือก Timezone ที่เราอยู่ ถ้าไม่ทราบ ให้กด Enter ผ่านไปเลยครับ แล้วไปตั้งทีหลัง



15. เลือก Partition ของ Disk สำหรับมือใหม่ ให้เราเลือกทั้งหมดเลยครับ



16. ขั้นตอนนี้จะบอกรายละเอียดของ Disk ที่จะลง Debian ไม่มีอะไรให้กด Enter ผ่านไปเลย



17. ระบบจะทำการสร้าง Partition ให้เรา สำหรับ Basic partition ทุกอย่างจะอยู่ใน / ทั้งหมด ส่วน Swap จะหมายถึง Virtual memory สำรองกรณี Ram เราไม่พอ ให้เราเลือกไปที่ Finish partition แล้วกด Enter เพื่อไปขั้นตอนต่อไป



18. ระบบจะทำการสร้าง Partition บน Disk และจะถามยืนยันครั้งสุดท้ายให้เราเขียน Partition ลง Disk ให้เราตอบ YES เพื่อดำเนินการ



19. จากขั้นตอนด้านบน ระบบจะทำการ Format Disk / Build partition / Install Base OS ซึ่งใช้เวลาประมาณหนึ่ง ตามความเร็วของ CPU และความจุของ Ram ที่มีรวมถึงขนาดของ Harddisk เมื่อทำทุกกระบวนการแล้ว จะขึ้นหน้าจอตามรูป เพื่อให้เราใส่ Root password แล้วกด Enter



20. ระบบจะให้เราใส่ root password อีกครั้ง เพื่อยืนยัน



21. จากนั้นระบบจะให้เราตั้ง user ขึ้นมาเพื่อใช้งานแทน Root โดยให้ใส่ Fullname



22. ใส่ username ของ user



23. กำหนด password ให้กับ user ที่เราตั้งขึ้น



24. ระบบจะให้เราใส่ user password อีกครั้ง เพื่อยืนยัน



25. ระบบจะทำการติดตั้ง Package manager จากแผ่น ให้เราเลือก no เพราะว่าเราจะทำการติดตั้งเอง



26. ระบบจะถามให้เราเรียก package จาก Internet ให้เราตอบ No เหมือนเดิม เพราะว่าเราจะติดตั้งเอง



27. ระบบจะให้เราทำแบบสอบถามเรื่อง Package ให้เราตอบ No เพื่อข้ามขั้นตอนนี้ไป



28. มาถึงขั้นตอนการเลือก Package เพื่อความรวดเร็ว ให้เราเอาเครื่องหมาย * ออกให้หมด เลือกไปที่ Continue แล้วกด Enter เพื่อดำเนินการต่อไป
การ ที่เราไม่เลือกอะไรเลย จะทำให้ระบบติดตั้งเฉพาะ Package ที่จำเป็นต่อการ Run ระบบ เท่านั้น ซึ่งเราสามารถที่จะมาเพิ่ม Package ทีหลังได้



29. ระบบจะถามว่า จะให้ Install GRUB เป็น bootloader หรือไม่ ให้ตอบ Yes



30. หลังจากนั้น ระบบจะดำเนินการติดตั้งจนแล้วเสร็จ ให้เรากด Continue ระบบจะ Reboot ตัวเอง ให้เรานำแผ่น DVD ออกจากเครื่องด้วย



31. หลังจาก Reboot แล้ว จะ Boot เข้าสู่ระบบปฏิบัติการ Debian แบบ Console



32. ให้เราลอง Login ด้วย user root และ password root ที่เราตั้งไว้



ถ้า Login ได้ สำเร็จ แสดงว่าเราได้ติดตั้งระบบเป็นที่เรียบร้อยแล้ว แต่จริง ๆ แล้ว ระบบยังทำงานไม่สมบูรณ์ จะต้องมีการทำ Post installation เพื่อให้ระบบมีความปลอดภัย และพร้อมใช้งาน

สำหรับ Post installation สามารถเข้าดูได้ที่

http://itprosolution.blogspot.com/2009/08/debian-5-post-installations.html

Debian 5 minimal Installation - Part 1

Debian 5 minimal Installation Part 1

ก่อนที่เราจะทำอะไรกับ Linux เราก็ต้อง Install Linux ก่อน จริงไหม
ทีนี้ เราจะ Install Linux ยังไง

บท ความนี้ จะบอกวิธี ขั้นตอน การลง Linux แบบของผมเองครับ ซึ่ง แบบของผม เนี่ย อาจจะไปเหมือนกับแบบของอีกหลาย ๆ คนก็ได้ครับ แต่ละคนก็จะมีวิธีการ install ที่แตกต่างกันออกไป แบบที่ผมใช้ อาจจะธรรมดา แต่ก็พอใช้ได้ล่ะครับ

การลง Linux แบบที่จะเห็นต่อไปนี้ เป็นการลงแบบ Server คือวัตถุประสงค์หลักเพื่อใช้งานเป็น server นั่นเอง
การ ติดตั้งก็จะไม่เหมือนกับการลง Linux แบบ Desktop เช่น ไม่มี X-Windows ให้ใช้งาน เป็นต้น หลังจากการ Install แล้ว จะใช้งานผ่าน Console ที่เป็น Command line เท่านั้น (เริ่มสนุกขึ้นมาแล้วสิ) ลองมาดูกันครับ

1. เริ่มจากการหาแผ่น Debian 5 มาก่อนครับ ซึ่งหาได้ไม่ยากเลย แค่ไปที่ http://www.debian.org/distrib/ แล้วเลือกเอาเลยครับ ว่าจะเอา Package แบบไหนดี แต่ที่ผมใช้จะเป็น DVD แผ่นเดียวครับ

2. เตรียมเครื่อง Server ที่ต้องการ Install จะเป็นเครื่องเปล่าหรือเครื่องที่มีช้อมูลแต่ไม่ใช้แล้วก็ได้ แต่ว่า ต้องแน่ใจว่า เครื่องที่เตรียมนั้น จะไม่มีการใช้งานอีกแล้ว เพราะในขั้นตอนการ Install จะมีการ Format disk ทำให้ข้อมูลเดิมหายไปทั้งหมด

3. ใส่แผ่นลงในเครื่อง แล้วตั้งให้บูทจากแผ่น เมื่อบูทแล้ว จะปรากฏหน้าจอดังรูป



4. กด Enter จะปรากฏหน้าจอที่สองดังรูป ให้เราเลือกภาษาในการติดตั้ง โดยปกติ เราก็เลือกภาษาอังกฤษอยู่แล้ว จึงไม่ต้องไปเปลี่ยนค่าอะไร ให้กด Enter เพื่อไปขั้นตอนต่อไป



5. หน้าจอนี้จะถามเราว่า เราใช้งานอยุ่ที่ประเทศในแถบไหน จากที่นี้ เรามองไม่เห็นประเทศไทยเลย จึงต้องปรับให้อยู่ที่อเมริกาไปก่อน ให้กด Enter เพื่อไปขั้นตอนต่อไป



ุ6. จากนั้น ระบบจะให้เรากำหนด keymap บนแป้น keybboard ซึ่งเราก็ใช้งานภาษาอังกฤษเป็นหลักอยู่แล้ว ดังนั้น ขั้นตอนนี้ จึงข้ามไปได้ ให้กด Enter เพื่อไปขั้นตอนต่อไป



7. ระบบจะทำการหา IP จากระบบ DHCP ซึ่งเราไม่มี แต่ถ้าหากเรามีการต่อ DHCP Server เอาไว้ ก็จะสามารถรับ IP จาก DHCP Server ได้ทันที ในที่นี่ ฟ้องว่า หา IP ไม่เจอ ให้เรากด Continue เพื่อไปขั้นตอนต่อไป



8. ระบบมีทางเลือกสำหรับการหา IP ให้เราอยู่4 ทางคือ
ลองใหม่ / ลองใหม่ แต่ระบุเครื่องของ DHCP Server / กำหนด IP เอง หรือสุดท้าย ไม่ต้องใส่ค่าอะไรเลย คือไม่มี IP นั่นเอง ซึ่ง ผมไม่แนะนำอันสุดท้ายสำหรับมือใหม่ เพราะจะต้องไปเซทเองหลังจากที่ติดตั้งเสร็จแล้ว เดี๋ยวจะงง ให้ตั้งไปเลยตอนนี้จะดีกว่าครับ ซึ่งในกรณีนี้ ผมเลือก กำหนด IP เองครับ (ก็ไม่มี DHCP Server นี่นา)



9. พิมพ์ *IP Address ของเครื่องนี้ลงไป



10. พิมพ์ *Subnet Mask ของเครื่องนี้ลงไป



11. พิมพ์ *Gateway ของเครื่องนี้ลงไป



12. ใส่ค่า DNS Server ซึ่ง DNS server นั้น เราสามารถหาได้จากการทราบว่า เราใช้ internet ของที่ไหน ก็ไปถาม Internet เจ้านั้นว่า จะให้เราใช้ DNS Server เบอร์อะไร ส่วนที่ผมSet เป็นของ CSLox ครับ



13. ใส่ชื่อของ Server หรือ Hostname ตามตัวอย่างเลยครับ อยากตั้งชื่ออะไรก็ตั้งได้เลยครับ




*หมายเหตุ IPAddress/Subnet mask/Gateway ของเครื่อง ๆ นึง จำเป็นจะต้องทราบก่อนที่จะทำ Server ครับ เนื่องจากว่า ท่านจะได้ทราบว่า Server ของท่านอยู่ตรงไหนของระบบ ยกตัวอย่างง่าย ๆ หากเป็น Home Network ที่เป็น ADSL และ IP ของ Router เป็นเบอร์ 192.168.1.1
IPAddress ควรจะเป็น 192.168.1.2-192.168.1.254 (เบอร์ไหนก็ได้เบอร์นึง ที่ไม่ซ้ำกับเครื่องอื่นในวง LAN)
Subnet mask ควรจะเป็น 255.255.255.0
Gateway ควรจะเป็น 192.168.1.1

To be continue ..

เก็บ package บน Linux โดยใช้ Lynis

ผมเพิ่งจะเริ่มใช้ lynis เมื่อไม่นานมานี้ แล้วรู้สึกว่า จะใช้ง่ายไม่ยากมากนัก ลงก็ง่าย เพราะลงผ่าน Aptitude ได้เลย
Lynis เป็น Auditor tools มีเอาไว้เพื่อตรวจสอบว่า ระบบ Linux ของเรานั้น มีช่องโหว่ตรงไหนบ้างหรือไม่ เป็นการตรวจสอบ configuration ของระบบ ซึ่งแน่นอน มันจะตรวจสอบด้วยว่า เราลง Package อะไร เวอร์ชั่นไหนลงไปด้วย
ทีนี้ หากผมต้องการใช้ประโยชน์จากโปรแืกรมนี้ เพื่อดึงเอามาเฉพาะ package ที่เราลงไปใน server เราก็สามารถทำได้ครับ โดยจะเขียนออกมาเป็น script ดังนี้

#!/bin/bash
lynis -q
cat /var/log/lynis-report.dat | grep installed_package > `hostname -s`-package-`date +%d-%b-%Y`
rm -f /var/log/lynis*