คุณรู้ไหมสร้าง Linux อย่างไร?

พอดีทาง Linux Foundation ได้อัพโหลด Video ขึ้นเผยแพร่ทาง Youtube ซึ่งนานๆ ทีจะมี Video ที่มีข้อมูลที่เป็น Infographic เนื้อหาที่เข้าใจง่าย เลยขอ Blog เก็บไว้หน่อย จากวิดีโอนี้คุณจะรู้ว่ามี Linux อยู่รอบตัวคุณ มีนักพัฒนาที่ร่วม Contribute เข้าไปใน Linux Kernel มากกว่าที่คุณคิด

จับ traffic network ด้วย ntop

มาย้อนอดีตกันอีกรอบ สมัยก่อนเวลาจับ traffic เราพยายามจับเอาข้อมูลที่วิ่งผ่าน NIC แล้วเอามาวิเคราะห์และทำสถิติบนเครื่องนั้นๆ ซึ่งก็ทำให้ง่ายและดิบซึ่งเครื่องมือลักษณะนี้มีอยู่หลายตัว วันนี้มาย้อนอดีตกันกับเครื่องมือที่ชื่อว่า ntop ครับ วิธีการติดตั้งทำดังนี้

sudo apt-get install ntop

อย่าพยายาม start services ตอนนี้เพราะยังไม่มี config และยังไม่ได้ตังค่า password ให้กับ admin ให้ตั้งค่าดังนี้

sudo ntop --set-admin-password

จากนั้นสั่ง restart ntop ได้เลยดังนี้

/etc/init.d/ntop restart

เรียกดูข้อมูลโดยเปิด browser ไปที่ http://localhost:3000 ครับ

มาเล่น Moodle ผ่าน Android Tablet กัน

หลังจากโดนคณาจารย์รุมอัดเรื่อง Moodle บน iPad มาก็เลยได้มีโอกาสค้นหาข้อมูลเรื่องเหล่านี้บน Android Tablet บ้าง ก็พบว่า มีโครงการลักษณะเดียวกันนี้บน Android Tabet เหมือนกัน คือ เป็น Mobile Client ที่เชื่อมต่อกับ Moodle ผ่าน Service APIs ทำงานได้เหมือนกับ Client ที่อยู่บน iPad แต่เจ้าตัวนี้ทำงานได้บน Android Tabet/Mobile และ Black Berry ครับ โครงการนี้มีชื่อว่า umm : Unofficial Moodle Mobile App
ตัว umm พัฒนาบน Phonegap platform โดยหวังผลในการ port ไปยัง mobile platform อื่นๆ ได้ เช่น iOS, QNX, Android, Window Mobile เป็นต้น นอกจากนี้การใช้ HTML5 ในการพัฒนา App ทำให้ข้าม Platform ทำได้ง่ายมากขึ้น โดยผ่าน Phonegap Build นั่นเอง สำหรับตัวโครงการสามารถดูข้อมูลเพิ่มเติมได้ที่ หน้าโครงการ umm: Unofficial Moodle Mobile app และแนวทางการพัฒนาต่อยอดการนำไปใช้งาน สำหรับซอร์สโค้ดของ App นี้สามารถ check out ได้ที่ GitHub ครับ

บริการจัดการชั้นเรียน Moodle ผ่าน iPad

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





 

สร้าง Distributed Storage + HA ด้วย GlusterFS

อาทิตย์นี้ยังอยู่ในช่วงย้อนอดีตครับ ผมได้เล่น Gluster Platform ตั้งแต่ผลิตภัณฑ์นี้ยังไม่ได้โดนซื้อจาก RedHat ซึ่ง Gluster Platform ทำ Distributed Storage ได้ง่ายมาก และไม่ได้มีความซับซ้อนมากมายนัก เครื่องมือที่ใช้ก็แสนจะธรรมดา แต่ได้ผลลัพท์ที่ดีเยี่ยม ประกอบกับการประยุกต์ใช้งานได้หลากหลาย ทำให้ Gluster Platform เป็นเครื่องมือสร้าง Distributed Storage ที่เพิ่มจำนวนและขนาดได้ตามที่เราต้องการได้ง่ายและผมก็ชอบมากๆ ตอนนี้ Gluster Platform รวมอยู่ในผลิตภัณฑ์ของ RedHat เรียบร้อยแล้วในชื่อ RedHat Storage สำหรับชุมชนโอเพนซอร์สอาจไม่ได้จับ Gluster Platform ตรงๆ นัก เพราะเป็น Commercial แต่จะได้จับ GlusterFS แทน ซึ่งมีความยุ่งยากมากกว่ากันพอสมควร ซึ่งในปัจจุบันก็ไม่ได้ยุ่งยากมากเท่าไรนัก อ้อเกือบลืมไปในประเทศไทยมีคนใช้ GlusterFS เพิ่มขึ้นด้วย (Tarad.com และ AIT) ดูได้จากแผนที่ผู้ใช้งานครับ
สำหรับการใช้งาน GlusterFS ก็เหมือนเดิมคือจะต้องมี Node ทำหน้าที่เป็นชุด Storage หากต้องการเพิ่มพื้นที่เก็บข้อมูลก็เพิ่ม Node ให้มากขึ้น และจะต้องมีส่วน Gluster Client เพื่อเป็นจุดเชื่อมต่อกับ Node ต่างๆ ที่มีอยู่ในระบบ ขอไม่เขียนแผนภาพนะครับ 😛 วิธีการติดตั้งก็ง่ายมาก เราต้องเริ่มต้นที่ 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 เจ้า Zenoss เป็นระบบ Network Monitoring และ System Management ที่ถึกมาก สมัยก่อน Zenoss มักโฆษณาว่าไม่ต้องติดตั้งโปรแกรม Agent ก็สามารถทำงานได้ สามารถใช้ข้อมูลจาก Ping, Traceroute, DNS Resolve ได้ ซึ่งดูไร้สาระดีแต่ผมก็ชอบครับ 😛 สำหรับการติดตั้งก็ง่ายมากครับ ดาวน์โหลด 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-stack_3.2.1_i386.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 ผมยังจำได้ว่าใช้ 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 กัน

ผมไม่ได้จับงานระบบเครือข่ายมานานมาก นานจนลืมไปเลยล่ะ วันนี้เลยได้มารือฟื้นความจำกันนิดหน่อย เริ่มจาก snmpd กันก่อน หากใครนึกไม่ออกให้ไปอ่านที่ Wikipedia นะครับ 😛 เมื่อก่อนใช้ 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 เดี๋ยวมาต่อตอนหน้าครับ 😛

ปัญหา Ainol Novo 7 Aurora

ผมสั่งซื้อ Ainol Novo 7? Aurora จากร้าน Gadget Door ผ่านทาง Tarad.com ซึ่งกว่าจะได้เครื่องก็เกิดปัญหาตั้งแต่การจัดส่งสินค้าจนถึงการรับของ ซึ่งเป็นประสบการณ์ที่แย่สำหรับผมพอสมควร แต่ที่แย่กว่านั้นผมไม่ทราบว่า Ainol Aurora มาปัญหาที่ผมไม่รู้มาก่อนซึ่งทาง forum ในต่างประเทศกล่าวถึงเรื่องนี้กันมาก และผมมารู้ทีหลังแล้วรู้สึกเสียใจ แต่ก็ไม่เป็นไรสั่งซื้อมาแล้วก็ต้องทำใจครับ ปัญหาที่พบใน Ainol Aurora ได้แก่
1. เครื่องหลวม เวลาจับมีเสียงกรอบแกรบทั้งด้านซ้ายและด้านขวาของตัวเครื่อง
2. มีช่องว่างระหว่างจอและตัวเครื่องทั้งด้านซ้าย ด้านขวา และด้านบน
3. จอมี dead pixel จะเห็นเป็นคราบด้านซ้ายและด้านบนของจอ
4. จอ ISP ของ Hitashi รวนบ่อย กดที่นึงไปทำงานอีกที่นึง
5. ทางร้านลงโปรแกรมให้เยอะมาก เปิดโปรแกรมเยอะ เครื่องรวนและแฮ็งค์ง่าย
6. ซอง folio case ที่ร้านแถมมาให้ ใส่แล้วดูแปลกๆ ช่องต่ออุปกรณ์ด้านซ้ายไม่ตรง
7. Android ICS ที่เป็น Stock?ROM ของ Ainol (Softwinner) แปลกมากๆ มีฟังก์ชั่นของ 2.3 มาปน เช่น USB Mass Storage เป็นต้น
8. เวลาชาร์ตแบตถ้าจับเครื่องไม่ดีจะไปโดน Port USB, HDMI ไฟดูดมือได้ง่ายๆ
9. ชาร์ตแบตหรือใช้งาน Wifi เครื่องจะร้อนมาก อาจเป็นเพราะตัวเครื่องเป็นพลาสติกสีดำทำให้อมความร้อนมากขึ้น
หลังจากที่เปิดเครื่องมาก็ทนไม่ได้จัดการ factory reset เพื่อดูว่า Stock?ROM มีอะไรมาให้บ้าง ซึ่งพบว่าไม่มีอะไรมาให้แม้กระทั่ง Market ก็เลยหา Stock?ROM เวอร์ชั่นใหม่มาอัพเกรด (ทำผ่านทาง LiveSuit) แต่ก็ยังไม่พอใจเพราะ Stock?ROM มีแต่โปรแกรมที่ใช้ไม่ได้ซึ่งส่วนใหญ่เป็นภาษาจีน ก็เลยจัดการ Flash Recovery เอา Clock Work Mod ลงแล้ว Flash ROM ชื่อ Essential Clean ROM v1.1a for Novo 7 ได้ ICS ที่ใกล้เคียงกับ AOSP มากขึ้นแต่ก็ไม่ได้ช่วยอะไรมากนัก เพราะอาการ Crash ของ App ยังมีเหมือนเดิม ทำได้แค่หาโปรแกรม Task Killer มาติดตั้งและปรับแต่ง Auto Kill เพิ่มเติมเท่านั้น
จากที่ศึกษาจากข่าวและ Forum ในต่างประเทศพบว่า Aurora มีการประชาสัมพันธ์ที่ดีมาก และด้วยการออกแบบรูปลักษณ์ของเครื่องทำให้ Aurora เป็นที่น่าสนใจ แต่เครื่องมีปัญหามากโดยเฉพาะการประกอบและเรื่องจอทำให้คนที่ซื้อไปผิดหวังพอสมควร แต่หลายคนก็ตั้งใจรอ Aurora รุ่นใหม่ที่ใช้จอ ISP ของ LG และ Aurora II Mars อย่างใจจดใจจ่อ หากเปรียบเทียบ spec ของ Aurora จะใกล้เคียงกับ Galaxy Tab 7.0 Plus ต่างกันแค่ CPU ที่เป็น Single Core ส่วน Internal Storage มีให้เลือกตั้งแต่ 8GB/16GB/32GB เลยทีเดียว และที่สำคัญขนาดของ Ainol Aurora บางเท่ากับ Galaxy Tab 7.0 Plus และมีขนาดความกว้างที่กว้างกว่าเพียง 4 มิลลิเมตร ทำให้ใส่ Case ของ Galaxy Tab 7.0 Plus ได้อย่างสบายๆ โดยเฉพาะ Folio Case แบบกรอบ ซึ่งจะล็อกตัวเครื่องให้แน่นมากขึ้น เสียงกรอบแกรบของตัวเครื่องลดลง และที่สำคัญสามารถซื้อ Case ของ Kindle Fire มาใช้ได้ด้วยเนื่องจากมีขนาดใกล้เคียงกัน

มาเขียน Mobile HTML5 App กัน ตอน ทำ Prototype แบบง่ายๆ

ค้างเขียนเรื่องนี้มาได้ 2 อาทิตย์ ไม่มีกำลังใจเขียนสักที วันนี้วันดีก็เลยเร่งเขียนเพราะเดี๋ยวจะไม่มีเวลามาเขียน Blog แบบนี้อีก ครั้งนี้จะมาแนะนำเครื่องมือที่ช่วยในการสร้าง Prototype อย่างง่ายๆ เรียกได้ว่าไม่ต้องเขียน HTML กันเลยทีเดียว อ้อ ลืมบอกไปว่าใช้ jQuery Mobile น่ะครับ ถ้าท่านที่ใช้ jQuery Mobile อยู่แล้ว ถ้าไม่เขียน HTML ก็จะหาเครื่องมือแบบ WYSIWYG มาใช้งาน แต่เครื่องมทอที่จะมาแนะนำวันนี้เป็นเครื่องมือ WYSIWYG เช่นกันแต่ทำงานบนเว็บครับ ลาก-วาง กำหนดคณะลักษณะของ widget ต่างๆ ได้เลย เครื่องมือตัวนี้เรียกว่า Codiqa

หากท่านเข้าเว็บ jQuery Mobile ให้เลื่อนลงมากลางๆ หน้าจอ จะพบ Codiqa แบบ mini คือสร้างได้หน้าเดียว preview ได้ เอาเป็นว่ากดๆ เล่นๆ ได้บ้าง ตามที่เขาจะมีมาให้ แต่ถ้าอยากใช้เต็มๆ ให้เข้าไปที่เว็บไซต์ http://codiqa.com สมัครสมาชิกให้เรียบร้อยแล้วเริ่มลงมือทำ App Prototype กันได้เลย สำหรับการ export เพื่อเป็น HTML5 App สำหรับอุปกรณ์ต่างๆ และการบันทึก prpject ต้องจ่ายเงินเพิ่มนะครับ 🙂