ช่วงนี้ต้อนรับกระแส Tablet กันหน่อย แต่ไม่ใช่ Tablet เด็ก ป.1 นะ แต่เป็น Tablet สำหรับ เด็ก ม.ต้น ม.ปลาย, ป.ตรี, ป.โท, ป.เอก ผู้มีอันจะกินละกันครับ :P เนื่องจากโดนแซวจากคณาจารย์ผู้ทรงคุณวุฒิที่โคราช ซึ่งหอบเอา iPhone + iPad มาแซวว่าเดี๋ยวนี้เค้าเรียน, สอบ, ทำการบ้าน, ดูคะแนนสอบ ผ่าน iPad กันแล้ว เล่นเอาผมเหวอไปเลย เป็นจริงครับ เดี๋ยวนี้เค้าเรียนผ่าน iPad กันจริงๆ เป็นที่ทราบกันอยู่แล้วว่า Moodle เป็นเครื่องมือจัดการชั้นเรียนหรือ Learning Management System ชั้นดีและเป็นที่นิยมสูง การพัฒนา Moodle ให้รองรับกับอุปกรณ์และซอฟต์แวร์ต่างๆ ในรูปแบบของ Plugin ก็มีมากขึ้นด้วย สำหรับท่านที่ต้องการใช้งาน Mooble บน iPhone/iPad ก็สามารถดาวน์โหลด App ชื่อ My Moodle ได้ที่ App Store ครับ

อาทิตย์นี้ยังอยู่ในช่วงย้อนอดีตครับ ผมได้เล่น Gluster Platform ตั้งแต่ผลิตภัณฑ์นี้ยังไม่ได้โดนซื้อจาก RedHat ซึ่ง Gluster Platform ทำ Distributed Storage ได้ง่ายมาก และไม่ได้มีความซับซ้อนมากมายนัก เครื่องมือที่ใช้ก็แสนจะธรรมดา แต่ได้ผลลัพท์ที่ดีเยี่ยม ประกอบกับการประยุกต์ใช้งานได้หลากหลาย ทำให้ Gluster Platform เป็นเครื่องมือสร้าง Distributed Storage ที่เพิ่มจำนวนและขนาดได้ตามที่เราต้องการได้ง่ายและผมก็ชอบมากๆ ตอนนี้ Gluster Platform รวมอยู่ในผลิตภัณฑ์ของ RedHat เรียบร้อยแล้วในชื่อ RedHat Storage สำหรับชุมชนโอเพนซอร์สอาจไม่ได้จับ Gluster Platform ตรงๆ นัก เพราะเป็น Commercial แต่จะได้จับ GlusterFS แทน ซึ่งมีความยุ่งยากมากกว่ากันพอสมควร ซึ่งในปัจจุบันก็ไม่ได้ยุ่งยากมากเท่าไรนัก อ้อเกือบลืมไปในประเทศไทยมีคนใช้ GlusterFS เพิ่มขึ้นด้วย (Tarad.com และ AIT) ดูได้จากแผนที่ผู้ใช้งานครับ (http://www.gluster.org/gluster-users/#formHtml)

สำหรับการใช้งาน GlusterFS ก็เหมือนเดิมคือจะต้องมี Node ทำหน้าที่เป็นชุด Storage หากต้องการเพิ่มพื้นที่เก็บข้อมูลก็เพิ่ม Node ให้มากขึ้น และจะต้องมีส่วน Gluster Client เพื่อเป็นจุดเชื่อมต่อกับ Node ต่างๆ ที่มีอยู่ในระบบ ขอไม่เขียนแผนภาพนะครับ :P วิธีการติดตั้งก็ง่ายมาก เราต้องเริ่มต้นที่ Node ก่อน Node จะต้องมีอย่างต่ำ 2 ตัว และ Gluster Client อีก 1 ตัว ดังนั้นเราจะมีเครื่องดังนี้

gluster1.redlinesoft.net มี IP Address เป็น 192.168.10.13
gluster2.redlinesoft.net มี IP Address เป็น 192.168.10.14
client.redlinesoft.net มี IP Address เป็น 192.168.10.15

สำหรับเครื่องทุกเครื่องติดตั้ง Ubuntu Server มีแค่ openssh-server ก็พอครับ อย่าลืมแบ่งพื้นที่ /data ให้มีขนาดเท่าๆ กัน ทั้ง 2 เครื่อง เพื่อเอาไว้เก็บข้อมูล หากในระบบเครือข่ายมี Local DNS อยู่แล้วก็ง่ายครับ แต่ถ้าไม่มีเราก็ไปใส่ไว้ในไฟล์ /etc/hosts ดังนี้

192.168.10.13 gluster1.redlinesoft.net gluster1
192.168.10.14 gluster2.redlinesoft.net gluster2
192.168.10.15 client.redlinesoft.net client

เครื่อง Gluster 1 แลพ Gluster 2 ติดตั้ง glusterfs-server โดยใช้คำสั่ง

sudo apt-get install glusterfs-server

จากนั้นเราต้องบอกให้ Gluster 1 รู้ว่า Gluster 2 เป็น trusted storage ดังนี้

gluster peer probe gluster1.redlinesoft.net

จากนั้นดูสถานะของ trusted storage ด้วยคำสั่ง

gluster peer status

เราจะพบว่ามี trusted storage เพิ่มเข้ามาแล้ว ทีนี้มาสร้าง Volumn กันครับ ใช้คำสั่ง

gluster volume create testvol replica 2 transport tcp gluster1.redlinesoft.net:/data gluster2.redlinesoft.net:/data

คำสั่งข้างต้นจะสร้าง volume ชื่อ testvol เป็นแบบ replicate เลข 2 คือจำนวนเครื่องที่เป็น Node เมื่อสร้าง volume ได้แล้วให้เริ่มการทำงานของ volume นี้โดยใช้คำสั่ง

gluster volume start testvol

ให้ตรวจสอบการทำงาน daemon ของ glusterfs ด้วยคำสั่ง netstat ของทั้ง 2 Node ว่า glusterfsd ทำงานอยู่ หากไม่พบ glusterfsd ทำงานให้ restart glsterfs daemon ใหม่ที่ /etc/init.d/glusterfs-server

กลับมาที่เครื่อง Gluster 1 ให้ดูสถานะของ volume ของเราด้วยคำสั่ง

gluster volume info

จะพบว่าเรามี testvol เป็น volume หลักและมี brick 2 node คือ gluster1.redlinesoft.net:/data และ gluster2.redlinesoft.net:/data ถือว่าเป็นอันเสร็จเรียบร้อย

จากนั้นกำหนดสิทธิ์ให้เครื่อง client (192.168.10.15) เชื่อมต่อกับ volume ของเรากันครับ ใช้คำสั่ง

gluster volume set testvol auth.allow 192.168.10.15

ใช้คำสั่ง gluster volume info อีกรอบเราจะพบว่า เครื่อง client (192.168.10.15) ได้รับอนุญาติให้ใช้ volume ที่ชื่อ testvol นี้ได้แล้ว

กลับไปที่เครื่อง client ติดตั้ง glusterfs-client ดังนี้

sudo apt-get install glusterfs-client

สร้าง directory สำหรับเป็นจุด mount ที่ /mnt/glusterfs ให้ทดสอบ mount ดเวยคำสั่ง

mount -t glusterfs gluster1.redlinesoft.net:/testvol /mnt/glusterfs

ให้ใช้คำสั่ง mount เพื่อตรวจสอบว่าเครื่อง client ได้เชื่อมต่อไปยัง Gluster 1 เรียบร้อยแล้วหรือยัง และใช้คำสั่ง df เพื่อดูพื้นที่ที่สามารถใช้งานได้ สำหรับการ mount ไปที่ distributed storage ทุกครั้งที่ boot เครื่อง ให้แก้ไชไฟล์ /etc/fstab โดยเพิ่มข้อมูลลงไปดังนี้

gluster1.redlinesoft.net:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0

เท่านี้เราก็ได้ Distributed Storage + HA เอาไว้ใช้งานแล้วครับ :)

อาทิตย์นี้ยังอยู่ในช่วงรื้อฟื้นความหลังกันอยู่ครับ เรื่องของ Zenoss เจ้า Zenoss เป็นระบบ Network Monitoring และ System Management ที่ถึกมาก สมัยก่อน Zenoss มักโฆษณาว่าไม่ต้องติดตั้งโปรแกรม Agent ก็สามารถทำงานได้ สามารถใช้ข้อมูลจาก Ping, Traceroute, DNS Resolve ได้ ซึ่งดูไร้สาระดีแต่ผมก็ชอบครับ :P สำหรับการติดตั้งก็ง่ายมากครับ ดาวน์โหลด Zenoss Ubuntu/Debian Native Stack ดังนี้

wget http://downloads.sourceforge.net/project/zenoss/zenoss-3.2/zenoss-3.2.1/zenoss-stack_3.2.1_i386.deb

จะได้ไฟล์ zenoss-stack3.2.1i386.deb มาให้ติดตั้งโดยใช้ dpkg ดังนี้

sudo dpkg -i zenoss-stack_3.2.1_i386.deb

ทีนี้ก็นั่งรอครับ เมื่อติดตั้งเสร็จเรียบร้อยก็สั่ง start service ได้เลย โดยใช้คำสั่ง

sudo /etc/init.d/zenoss-stack start

เปิดเบราเซอร์ไปที่ http://localhost:8080 ตั้งค่า password และเพิ่ม user แล้ว config device ที่ต้องการ monitor ได้เลย ง่ายมั๊ย :)

วันนี้มารื้อพื้น MRTG ผมยังจำได้ว่าใช้ MRTG ในการ Monitor Switch 3com 36 ports เมื่อนานมาแล้ว ประมาณ 5 ปีได้ วันนี้เลยมารื้อฟื้นความจำกันนิดหน่อย มาเริ่มกันเลย ก่อนอื่นเราต้องมี Apache, MRTG และ Host ที่เราต้องการดูข้อมูล ยกตัวอย่างเป็นเครื่องเซิร์ฟเวอร์ ชื่อ www ipaddress 192.168.10.12 ละกันครับ มี community ชื่อ public :) พอทราบข้อมูลเบื้องต้นแล้วก็ลงมือกันได้ครับ ติดตั้งแบบรวดเดียวจบ

sudo apt-get install mrtg apache2

จากนั้นสร้างไดเรคทอรีชื่อ mrtg ไว้ที่ /var/www ดังนี้

mkdir /var/www/mrtg

สร้าง config ของ mrtg โดยการอ่านจาก SNMP ของ Host ปลายทาง ดังนี้

sudo cfgmaker --output /etc/mrtg.cfg public@192.168.10.12

เราจะได้ไฟล์ config อยู่ที่ /etc/mrtg.cfg ครับ จากนั้นสร้าง index ไฟล์จากไฟล์ config ด้วย indexmaker

sudo indexmaker /etc/mrtg.conf > /var/www/mrtg/index.html

จากนั้นใช้คำสั่ง mrtg เพื่อสร้างข้อมูลและกราฟ (ใช้คำสั่งนี้สัก 4 รอบจะได้ข้อมูลครบ)

sudo env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

จากนั้นสร้าง cron job เพื่อให้อัพเดททุกๆ 5 นาที ใช้คำสั่ง

sudo crontab -e

ใส่ข้อมูลลงไปดังนี้

*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

ดูผลลัพท์ที่ http://localhost/mrtg ง่ายๆ สบายๆ

ผมไม่ได้จับงานระบบเครือข่ายมานานมาก นานจนลืมไปเลยล่ะ วันนี้เลยได้มารือฟื้นความจำกันนิดหน่อย เริ่มจาก snmpd กันก่อน หากใครนึกไม่ออกให้ไปอ่านที่ Wikipedia นะครับ :P เมื่อก่อนใช้ RedHat จำได้ลางๆ กับ SNMP V1 กันเลยทีเดียว แต่เดี๋ยวนี้ใช้ Debian/Ubuntu เจอ SNMP V2 แล้วแปลกตาไป แต่ก็ง่ายต่อการเข้าใจมากขึ้นครับ วิธีการติดตั้ง snmpd อย่างลวกๆ

sudo apt-get install snmp snmpd

แก้ไข default config ที่ /etc/default/snmpd ตรงบรรทัด TRAPDRUN=no แก้เป็น TRAPDRUN=yes และตรวจดูว่า SNMPDRUN=yes แล้วหรือยัง จากนั้นแก้ไข /etc/snmp/snmpd.conf ให้เรียกข้อมูลจากเครื่องอื่นๆ ได้แก้ดังนี้

# Listen for connections from the local system only
#agentAddress udp:127.0.0.1:161
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

แก้ read only community จาก

rocommunity public localhost

เป็น

rocommunity public

จากนั้นก็ลองทดสอบด้วยคำสั่ง snmpwalk ดังนี้ ทดสอบด้วย localhost

snmpwalk -O s -v 1 -c public localhost

และทดสอบด้วย IP Address ดังนี้

snmpwalk -O s -v 1 -c public 192.168.10.1

ถ้าถูกต้องจะได้ข้อมูลยาวหลายหน้าถือว่าใช้ได้ครับ ส่วนเรื่อง Authen เดี๋ยวมาต่อตอนหน้าครับ :P