Juju #03 – วิธีสร้าง Load Balance MySQL

จาก Juju #02 – วิธีติดตั้ง WordPress ทำให้ได้ WordPress ซึ่งเป็น Web Application 2 เครื่องทำหน้าที่ Load Balance กัน ด้วย haproxy แล้ว จากนั้น ทำการเพิ่ม MySQL เข้าไปใหม่ แล้วตั้ง Application Name เป็น mysql-slave แล้ว Commit Chages จากนั้น สร้าง Relation เป็น mysql:master –> mysql-slave:slave เมื่อเสร็จแล้ว จะได้ผลอย่างนี้ ทดสอบเพิ่ม Post ใหม่ แล้วเข้าไปใน mysql-slave (juju-xxx-xx เป็นชื่อเครื่องที่ Juju สร้างขึ้น) lxc exec juju-xxxx-xx  bash แล้วใช้คำสั่งต่อไปนี้ mysql -u root -p$(cat /var/lib/mysql/mysql.passwd) -e ‘use wordpress; select post_title from wp_posts;’ ก็จะพบว่า mysql-slave ได้รับการ Update ตามไปด้วย บทความต่อไป จะกล่าวถึงวิธีการทำให้ WordPress สามารถใช้ mysql-slave ในการ Read ได้ เพื่อกระจายโหลดครับ  

Read More »

Juju #02 – วิธีติดตั้ง WordPress

ในบทความนี้ จะแสดงวิธีการใช้ Juju เพื่อติดตั้ง WordPress พร้อมแสดงวิธีการเฝ้าระวังด้วย Nagios และ การ Scale Out เริ่มต้นจากคลิกที่ รูปเครื่องหมายบวก (+) สีเขียว ในช่องค้นหา พิมพ์คำว่า “wordpress” แล้วคลิก Enter จะปรากฏผลการค้นหา สิ่งนี้เรียกว่า Charm ซึ่งเป็น Image ของระบบปฏิบัติการ พร้อมทั้งการ Setup สิ่งที่เราต้องการมาให้เลย ในภาพให้คลิกที่คำว่า WordPress ด้านซ้ายมือ จากนั้น คลิก Add to canvas ต่อไป ทำซ้ำ โดยการค้นหาสิ่งต่อไปนี้ haproxy, mysql, nagios แล้วจัดระเบียบให้สวยงามตามต้องการ จากนั้น ลากเส้นเชื่อมโยงความสัมพันธ์กัน Juju จะสร้างการเชื่อมต่อต่างๆให้เองอัตโนมัติ ในภาพ จะเป็นการตั้งค่าให้ haproxy ทำหน้าที่เป็น Load Balance ให้ WordPress ซึ่งจะเกิดขึ้นอีกหลายเครื่องในอนาคต และ WordPress ก็จะเชื่อมต่อกับ MySQL นอกจากนั้น ก็มี Nagios ที่จะเฝ้าระวัง WordPress และ MySQL เมื่อลากเส้นเชื่อมโยงเสร็จแล้ว คลิก Commit Changes ด้านขวามือล่าง จากนั้นคลิกปุ่ม Deploy หลังจากนั้น Juju จะไปเรียก Image มาติดตั้ง และสร้างความสัมพันธ์ของระบบที่เราออกแบบไว้ เมื่อเสร็จแล้วจะได้ผลดังภาพ ต่อไปคลิกที่ haproxy แล้วคลิกคำว่า Expose เพื่อบอกให้ระบบนี้สามารถเข้าถึงจากภายนอกได้ ใน Expose ให้เลือก On ระบบจะแสดง IP Address ให้ ในที่นี้คือ 10.107.107.215 ซึ่งจะเข้าถึงโดยใช้ TCP Port 80 ที่ Nagios ก็เช่นกัน ให้ Expose เป็น On แล้วจะเข้าถึงได้จาก IP 10.107.107.95 จากนั้น คลิก Commit Changes ที่ IP Address 10.107.107.215 ก็จะพบการเริ่มต้นใช้งาน wordpress ทันที เริ่มจาก เลือกภาษา แล้วคลิก Continue จากนั้น ตั้ง Site Title, Username ที่จะเข้าใช้, Password, email address แล้วคลิก Install WordPress แค่นี้ก็ใช้ wordpress ได้แล้ว ที่ Nagios ก็จะสามารถใช้งานได้ที่ IP 10.107.107.95 (วิธีการเข้าใช้งาน มี Username/Password ที่กำหนดไว้แล้ว) ใน Nagios คลิก Service เพื่อเฝ้ารายละเอียดของ Service ต่างๆ   ใน Nagios คลิกที่ Map เพื่อดูผังการเชื่อมต่อ เมื่อมีการใช้งานมากขึ้น ก็สามารถเพิ่มเครื่อง WordPress เพื่อให้รองรับการเชื่อมต่อจำนวนมากขึ้นได้ โดยใน Juju คลิกที่ WordPress แล้วคลิก Scale จากนั้นให้เพิ่มเครื่องไปอีก 1 เครื่อง แล้วคลิก Confirm จากนั้นคลิก Commit Changes รอสักครู่ ก็จะพบว่า ใน Nagios ก็จะเพิ่มเครื่องใหม่ในการเฝ้าระวังให้เองอัตโนมัติด้วย จะง่ายไปไหน?  

Read More »

Juju #01 – เริ่มต้นใช้งาน Juju

Juju [1] เป็นเครื่องมือในการการออกแบบ Service Oriented Architecture และ Application Oriented Deployment [2] ทำให้การออกแบบระบบที่ซับซ้อนและการ Scale Out ทำได้ง่ายขึ้น สามารถทำงานได้ตั้งแต่ในเครื่องคอมพิวเตอร์เครื่องเดียว ไปจนถึงการทำงานบน Private Cloud และ Public Cloud ตัวอย่างเช่น หากต้องการระบบจัดการ Big Data ด้วย Hadoop ซึ่งประกอบด้วย Server หลายเครื่อง (Link: การติดตั้ง Hadoop อย่างง่าย) เดิมจะต้องใช้เวลาอ่านคู่มือ ทำลองติดตั้ง เมื่อได้ระบบขึ้นมาแล้ว ก็จะยังไม่สามารถใช้งานได้จริงทันที อย่างเช่น ต้องการใช้ Hadoop ในการทำเรื่อง Realtime Syslog Analytics [3] ประกอบด้วย Server จำนวนมาก ดังภาพ วิธีการที่ทำให้ได้ระบบนี้มา ก็เพียงแค่ บอก Juju ว่าต้องการระบบอะไร แล้วสั่ง Deploy แล้วก็รอ หลังจากนั้นก็ทำ Port Forward ด้วยคำสั่ง [4] sudo iptables -A PREROUTING -t nat -i ens160 -p tcp –dport 9000 -j DNAT –to 10.107.107.xxx:9000 ก็จะสามารถใช้งานได้แล้ว     Reference [1] https://jujucharms.com/ [2] https://jujucharms.com/docs/stable/about-juju [3] https://jujucharms.com/realtime-syslog-analytics/ [4] http://opensource.cc.psu.ac.th/Note_on_port_forwarding_to_LXD_container

Read More »

วิธีใช้ Google Sites เพื่อแสดงรายงานผลการลงทะเบียนจาก Google Form

ปัจจุบันการสร้างแบบฟอร์มการรับลงทะเบียนออนไลน์สามารถทำได้ง่ายๆโดยใช้ Google Form โดยวันนี้มีโจทย์ว่า ต้องการรับลงทะเบียนผู้ที่จะร่วมเดินทาง กำหนดว่า ต้องการเดินทางกับรถบัสหมายเลขใด (มี 3 คัน) และต้องการแสดงผลทันทีว่า แต่ละคันมีจำนวนคนเท่าไหร่แล้ว และ ใครบ้างที่เดินทางไปในรถบัสคันนั้น วิธีการคือ สร้าง Google Form เพื่อทำระบบรับลงทะเบียนตามปรกติ ในส่วนของการสร้างแบบฟอร์ม ให้คลิกที่ RESPONSES แล้วคลิกที่รูป สี่เหลี่ยมสีเขียว (Google Sheets)  แล้วจัดรูปแบบให้เรียบร้อย เช่นต้องการจะซ่อน Column ใดบ้าง (จะใส่สี ก็ได้นะ) เสร็จแล้ว คลิกที่ปุ่ม Share กำหนดให้ Anyone with Link “Can View” แล้วคลิก Done สร้าง Google Sites และสร้างโครงสร้าง Page ต่างๆตามต้องการ ในตัวอย่างนี้ จะสร้าง Page “รายชื่อ” เพื่อไว้ใช้แสดงผลการลงทะเบียน ว่า รถหมายเลขใด มีจำนวนกี่คนแล้ว และใครบ้าง ให้เลือก Insert > More gadgets แล้วคลิกที่ Public > Include gadget (Iframe) จากนั้น มาใส่ URL กัน ใส่ URL ตามนี้https://spreadsheets.google.com/tq?tqx=out:html&tq=select  L,count(B) group by L  label count(B) ‘จำนวน’&key=XXXXXXXXXXXXXXXXXX เพื่อให้แสดงผลว่า รถบัสหมายเลขใด มีจำนวนคนเท่าไหร่ โดยที่ tq เป็น Query เขียนว่า select L, count(B) group by L label count(B) ‘จำนวน’ คือการแสดงคอลัมน์ L และ นับจำนวนโดยการ count โดยจัดกลุ่มตามคอลัมน์ L นอกจากนั้นยัง label คอลัมน์ count(B) เป็นคำว่า “จำนวน” ผลที่ได้คือ และ key=XXXXXXXXXXX นั้น ให้เอาค่าจาก ต่อไปให้แสดงผลรายชื่อทั้งหมด โดยสามารถแยกรายชื่อแต่ละคัน โดย Insert > Drive > Spreadsheet แล้วเลือก Google Sheet ที่ต้องการ เมื่อดำเนินการเสร็จแล้ว ระบบก็จะสามารถแสดงผลการลงทะเบียนได้อัตโนมัติ  

Read More »

ขั้นตอนการติดตั้ง HBase บน Hadoop อย่างง่าย

HBase เป็น Database บน Hadoop [1] จากบทความ ขั้นตอนการติดตั้ง Hadoop Cluster อย่างง่าย จะได้ HDFS อยู่ที่ hdfs://192.168.1.101:9000 แล้ว ก็จะสามารถใช้ HBase บน Hadoop HDFS ได้ ขั้นตอนการติดตั้ง โคลนเครื่องต้นฉบับ แล้วตั้ง ip address ให้เรียบร้อย เช่น 192.168.1.121 ติดตั้ง HBase (mama shell) (mama shell) cd ~ wget http://www-us.apache.org/dist/hbase/stable/hbase-1.2.3-bin.tar.gz tar -zxvf hbase-1.2.3-bin.tar.gz sudo mv hbase-1.2.3 /usr/local/hbase sudo chown -R hduser.hadoop /usr/local/hbase sudo mkdir /usr/local/zookeeper sudo chown -R hduser.hadoop /usr/local/zookeeper แก้ไขไฟล์ /usr/local/hbase/conf/hbase-site.xml (hduser shell) <configuration> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://192.168.1.101:9000/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/zookeeper</value> </property> </configuration> ขั้นตอนการ Start HBase (hduser shell) /usr/local/hbase/bin/start-hbase.sh ดูผลการทำงาน จาก Hadoop HDFS ว่าสร้าง /hbase แล้ว http://192.168.1.101:50070/explorer.html#/hbase ใช้งานผ่าน Shell ได้จากคำสั่ง (hduser shell) /usr/local/hbase/bin/hbase shell ขั้นตอนการ Stop HBase (hduser shell) /usr/local/hbase/bin/stop-hbase.sh   References: [1] https://hbase.apache.org/

Read More »