วันอาทิตย์ที่ 24 สิงหาคม พ.ศ. 2557

เริ่ม Google Chart ยังไงดี?

สวัสดีครับ เมื่อมีเหตุจำเป็นต้องใช้ Google Chart  เราก็มาเรียนรู้เพื่อนำมาใช้งานก็เลยดีกว่า

      Google Charts เป็นเครื่องมือที่ใช้ในการสร้างแผนภูมิรูปภาพ หรือที่เราเรียกว่ากราฟ (Graphs) หรือชาร์ต (Charts) ที่เราเอาไว้นำเสนอรายงานต่างๆ  ซึ่งบริการของ Google Charts นี้สามารถเรียกใช้ในรูปแบบของ Visualization API หรือส่วนต่อประสานโปรแกรมของ Google ที่จะแปลงข้อมูลจากฐานข้อมูลสถิติต่างๆ จากเว็บไซต์ของคุณให้แสดงผลออกมาเป็นรูปแบบแผนภูมิที่ เรียบง่าย ไปจนถึงรูปแบบที่มีลำดับขั้นของข้อมูลที่ซับซ้อน หรือมีขนาดใหญ่  โดยมีรูปแบบ Chart ที่ให้บริการมีมากมาย สามารถเลือกใช้ให้เหมาะสมกับการนำเสนอข้อมูลของเรา


เริ่มต้นแบบเร็วที่สุด โดย Copy โค๊ตแล้วทดสอบเลย ทำให้สามารถเรียนรู้ได้เร็วยิ่งขึ้น
ตัวอย่างที่ใช้ เป็น Pie Chart

<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

      // Load the Visualization API and the piechart package.
      google.load('visualization', '1.0', {'packages':['corechart']});

      // Set a callback to run when the Google Visualization API is loaded.
      google.setOnLoadCallback(drawChart);

      // Callback that creates and populates a data table,
      // instantiates the pie chart, passes in the data and
      // draws it.
      function drawChart() {

        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
        data.addRows([
        ['Mushrooms', 3],
        ['Onions', 4],
        ['Olives', 2],
        ['Zucchini', 6],
        ['Pepperoni', 8]
        ]);

        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':300};

        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>

  <body>
    <!--Div that will hold the pie chart-->
    <div id="chart_div"></div>
  </body>
</html>

ขั้นตอนการสร้าง Chart จะต้องโหลด Library ที่จำเป็น ได้แก่
  1. The Google JSAPI API
  2. The Google Visualization library
  3. The library for the chart itself.
     <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
 
      // Load the Visualization API and the piechart package.
      google.load('visualization', '1.0', {'packages':['corechart']});
   
      // Set a callback to run when the Google Visualization API is loaded.
      google.setOnLoadCallback(drawChart);

ใน Script ส่วนแรกจะเป็นการโหลด JSAP library.  Script ต่อมาจะเป็นการโหลด Google Visualization และ Chart Library  เมื่อทำการโค๊ดข้อมูลเสร็จเรียบร้อยแล้วก็มาถึงขั้นตอนการเตรียม data input เข้ามาแสดงผล

การเตรียม Data สำหรับสร้าง Chart
Google Chart Tools charts  ต้องใช้ Data ที่หุ้มด้วย JavaScript Class โดยจะเรียกใช้ผ่าน  google.visualization.DataTable

จากตัวอย่าง DataTable เป็น ตาราง 2 มิติ ประกอบด้วย rows และ column โดยแต่ละ rows และ colunm ก็จะประกอบไปด้วย datatype ที่แตกต่างกัน จากตัวอย่างประกอบด้วย
type : string
label : Toping
และ
type : number
label : Slices

เราสามารถที่จะปรับแต่ง data ได้ตลอดเวลา หรือแม้แต่เปลี่ยนจาก PieChart เป็น BarChart ก็ได้เพราะChart ทั้ง2 ที่กล่าวมาเป็น Chart 2 มิติเหมือนกัน
**ปล ตามความเข้าใจ มิติ คือ มิติของ ข้อมูลนะครับ ถ้ามี data input ที่เหมือนกันมักจะสามารถเปลี่ยนเป็น Chart รูปแบบอะไรก็ได้**

เรามาลองปรับเปลี่ยนให้เป็น Chart รูปแบบอื่นดีกว่า
ถ้าเราเปลี่ยนจาก PieChart เป็น BarChart

        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, options);
มาเป็น
        var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
        chart.draw(data, options);
จะได้ผลลัพธ์เป็น

หรือเป็น ColumnChart
        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
        chart.draw(data, options);

rows หรือ column แรก จะแสดง ตัวอักษร(Label)
rows หรือ column ต่อมา จะแสดง ค่า(Value)

ซึ่งรูปแบบ Chart จะซับซ้อนตามรูปแบบของข้อมูล (data format)
และที่เป็นที่นิยม คือการคิวรี่ข้อมูลบนเว็บไซต์ได้เลย เช่น การคิวรี่ข้อมูลของ GoogleSpreadsheet โดยใช้ google.visualization.Query เมื่อเราได้ผลลัพธ์เป็น DataTable กลับมาก็สามารถนำมาสร้าง Chart ที่ต้องการได้ทันที

วันนี้พอแค่ก่อนขอให้เรียนรู้ว่า Chart มีกี่แบบ แต่ละแบบใช้ DataTable แบบไหน กี่มิติ
บทหน้าจะกล่าวถึงการ จัดการ DataTable ว่าถ้ามีข้อมูลมากกว่า 2 มิติ ทำอย่างไร


อ้างอิง
https://google-developers.appspot.com/chart/
http://www.daydev.com/2011/api-google-charts.html

วันพุธที่ 30 กรกฎาคม พ.ศ. 2557

สร้าง Multiple VirtualHost แบบเข้าจัยง่าย ๆ Ubuntu 13.10

   วันนี้ทำ Authentication เสร็จก็ยังสับสนการทำ VirtualHost อยู่ดี วันนี้เลยจะทำ VirtualHost แบบง่าย ๆ เข้าจัย ๆ ดีกว่า
ก่อนอื่นเราจะใช้ Ubuntu 13.10 + LAMP ได้เลย
เปิด Terminal
$sudo su
[sudo] password for admin-e:
# mkdir /var/www/azimuthotg.com
# pico /var/www/azimuthotg.com/index.html

พิมพ์เพิ่ม
   <html>
   <body>
         Hello World. azimuth.com works.
   </body
   </html>
แล้วก็ Save

ทำการเปิดเบราเซอร์ขึ้นมาเพื่อทดสอบการเรียกแบบปกติ URL: localhost/azimuthotg.com
ปรากฎผลดังรูปแสดงว่า work

ทำการแก้ไขไฟล์ hosts
# pico /etc/hosts
พิมพ์เพิ่ม
127.0.0.1  azimuthotg.com

มาสร้าง Virtual Host กันต่อเลย
# cd /etc/apache2/sites-available/
# cp 000-default.conf azimuthotg.com.conf
# pico /etc/apache2/sites-available/azimuthotg.com.conf

ปรับแต่งค่าตามนี้
<VirtualHost *:80>
     ServerName azimuthotg.com
     ServerAdmin webmaster@localhost 
     ServerAlias azimuthotg.com
     DocumentRoot /var/www/azimuthotg.com
</VirtualHost>
แล้วก็ Save

# a2ensite azimuthotg.com.conf
# service apache2 reload
# service apache2 restart

เปิดเบราเซอร์ พิมพ์ URL : azimuthotg.com
จะปรากฎข้อความตามที่เราเขียนไว้ก็แสดงว่า OK


วันเสาร์ที่ 12 กรกฎาคม พ.ศ. 2557

รวมโปรแกรมคำนวณ IP Address และ Subnet Mask Online

IP Subnet Calculator     <<-----โปรแกรมนี้ยอดนิยม
http://www.subnet-calculator.com/


IP Calculator    <<-----ส่วนตัวชอบตัวนี้ครับ ยืดหยุ่นดี
http://jodies.de/ipcalc


Online IP Subnet Calculator  <<----ยืดหยุ่น ละเอียด ต้องใช้ความชำนาญนิสหน่อย
http://subnet-calculator.samuraj-cz.com/index.php


โปรแกรม คำนวณ IP Address และ subnet mask

IP Subnet Calculator
http://www.subnet-calculator.com/

วันนี้เอาโปรแกรมคำนวณ IP และ Subnet มาฝาก เหมาะสำหรับผู้ดูแลระบบที่ต้องการแบ่งเน็ตเวิร์คเป็นเน็ตเวิร์คย่อย ตามจำนวน Host ซึ่งสาามารถใช้งานง่าย 


สมมุติว่า เราต้องการจำนวน Host หรือ เครื่องแค่ไม่เกิน 254 เครื่อง
เราก็เลือกใช้ Class C Subnet Mask 255.255.255.0  เราจะได้จำนวน Host 254 เครื่อง แต่ถ้าต้องการแบ่งให้ย่อยลงไปอีก ก็ลองเลือก Subnet อื่น ๆ ดู โปรแกรมจะคำนวน จำนวน Host ให้เอง อัติโนมัติ


สมมุติถ้าเราต้องการมากกว่า 254 หล่ะทำไง

วันอาทิตย์ที่ 6 กรกฎาคม พ.ศ. 2557

ทำไม Cacti ไม่สร้างกราฟ

วันนี้จะทดสอบว่าทำไม Cacti ไม่สร้างกราฟ
โจทย์คือ
1. ทำการติดตั้ง Cacti บน Ubuntu 13.10 Desktop
2. ให้สร้างกราฟปริมาณการใช้งานของ Wireless  1 ตัว

ก่อนอื่นเลยให้ทำการติดตั้ง Ubuntu 13.10 Desktop (ที่เลือก Desktop เพราะจะนำไปสอนด้วยครับ)
สำหรับผู้ที่ไม่เคยติดตั้งให้ทำตามลิงค์ข้างล่างได้เลย

ติดตั้ง Ubuntu 13.10 Desktop บน Vmware เพื่อลง CactiและWeather Map (ตอนที่1)

เมื่อทำการติดตั้งเสร็จแล้วให้พิมพ์คำสั่งต่อไปนี้ เพื่อ Update และ Upgrade แพ็คเกจให้ใหม่ล่าสุด
$sudo su
[sudo] password for testadmin: ใส่รหัสผ่าน
root@ubuntu:/home/testadmin#
#apt-get update
#apt-get upgrade

เสร็จกระบวนการ upgrade แล้ว ก็ติดตั้ง Cacti กันเลย โดยในตัวอย่างนี้ จะให้ระบบทำการติดตั้งแพ็คเกจที่จำเป็นทั้งหมดเลย (แบบง่ายที่สุด แต่ผู้ติดตั้งต้องมีพื้นฐานระบบพอสมควร)

ขั้นตอนติดตั้ง Cacti และ Cacti-spine
โดยพิมพ์คำสั่ง
#apt-get install cacti cacti-spine

ระบบให้กำหนดรหัส root 
  ให้ใส่รหัส MySQL
  ยืนยันรหัส MySQL

ระบแจ้งเตือนเปลี่ยนค่า php

ระบบให้เลือก web server  ก็ให้เลือก apache2

ระบบแจ้งเตือนการตั้งค่า cacti
  ให้ใส่รหัส database's administrative user:
  ให้ใส่รหัส Mysql สำหรับ Cacti :
  ยืนยันรหัส :

แค่นี้ก็เสร็จสิ้นการติดตั้งแพ็คเกจทั้งหมดที่เกี่ยวข้องกับ Cacti

ขั้นตอนติดตั้ง Cacti ผ่านเบราเซอร์
ให้เปิดเบราเซอร์ http://localhost/cacti
next
next
ตรวจสอบว่าแพ็คเกจครับหรือไม่ ถ้าครบ
finish

ระบบจะเข้าให้ User Login
ใส่ admin / admin
เปลี่ยนรหัสผ่าน
password / password

เสร็จสิ้นขั้นตอนติดตั้ง cacti
เราก็จะได้หน้าจอดังภาพ ถือว่า สมูบรณ์ ดังรูป


เทคนิควิธีสร้าง Weathermap บน Cacti

เทคนิคต่าง ๆ
การใช้ Relative Position 
คืออ้างตำแหน่งของอุปกรณ์โดยใช้ตำแหน่งของอุปกรณ์อื่นเป็นหลัก
สร้าง Node Core_Switch และ Switch01

จากนั้นคลิกที่ Switch01 แล้วคลิกที่ Edit เพื่อเข้าสู่โหมด Edit Map Object  ให้เอาชื่อ Internal Name ของ Core_Switch มาใส่เพื่ออ้างอิงตำแหน่งต่อไป
จากตัวอย่างคือ POSITION core_switch 0 150

จากรูปจะแสดงให้เห็นว่า Switch01 มีการอ้างตำแหน่ง x = 0 นับจากตำแหน่งของ core_switch คือในแกน x จะอยู่ตำแหน่งเดียวกัน และ y = 150  คือให้ core_switch อยู่ตำแหน่งในแกน y คือ สูงขึ้นไป 150 หน่วย แล้ว Submit ก็จะได้ตำแหน่ง Switch01 ดังรูป

วันเสาร์ที่ 5 กรกฎาคม พ.ศ. 2557

ติดตั้ง Ubuntu 13.10 Desktop บน Vmware เพื่อลง CactiและWeather Map (ตอนที่4 จบ)

การติดตั้ง Weathermap Plug-in
เข้าไปี่หน้าเว็บไซต์ของ Weathermap Plug-in
url : http://www.network-weathermap.com/
ไปที่หน้า Download  แล้วดาวน์โหลด weathermap Plug-in มาที่เครื่อง
เอาเวอร์ชั่นล่าสุด (ในการทดลองนี้ใช้ php-weathermap-0.97c.zip )
ทำการคลายซิบ
ทำการอัพโหลดโฟลเดอร์ Weathermap ขึ้น Server Cacti  โดยใช้โปรแกรม Secure Shell
กดไอคอน Open new file transfer window

โฟลเดอร์  Weathermap จะอยู่ที่โฟลเดอร์ของผู้ใช้นั้นเอง
#cd /home/testadmin/
#ls -la
ก็จะเห็นโฟลเดอร์ weathermap 
ให้ทำการย้ายโฟลเดอร์ weathermap ไปยังโฟลเดอร์ของ Plug-in
#mv weathermap/ /usr/share/cacti/site/plugins/

ทำการเช็คว่า ความต้องการของระบบมีอะไรบ้าง แล้วยังขาดอะไรบ้าง ให้ไปที่เบราเซอร์แล้วพิมพ์ http://localhost/cacti/plugins/weathermap/check.php
จากรูปแสดงว่ายังขาด php5-gd

ให้ทำการติดตั้ง php5-gd เพิ่ม
 #apt-get install php5-gd
#/etc/init.d/apache2 restart
เช็คความต้องการอีกรอบเมื่อผ่านแล้ว ให้ดำเนินการต่อไป

ทำการเปลี่ยน Permission โฟลเดอร์เพื่อให้ apache2 สามารถทำงานได้ (เขียนไฟล์ สร้างไฟล์ รันไฟล์)

กำหนดสิทธิ์ให้กับโฟลเดอร์ output ให้เหมือนกับ โฟลเดอร์ rra 
#cd /user/share/cacti/site/plugins/weathermap
#ls –la

วันพฤหัสบดีที่ 3 กรกฎาคม พ.ศ. 2557

ติดตั้ง Ubuntu 13.10 Desktop บน Vmware เพื่อลง CactiและWeather Map (ตอนที่3)

หลังจากเตรียม LAMP Server เรียบร้อแล้ว มาต่อกันเลย

ทำการติดตั้งโปรโตคอล snmp และ snmpd
ซึ่งมีโปรแกรม snmpwalk เอาไว้ติดต่อสื่อสารกับ SNMP Manager
#apt-get install snmp snmpd

ตรวจสอบการทำงานของโปรโตคอล snmp
#snmpwalk –c public –v1 localhost
#snmpwalk -c public -v1 172.21.51.254   <<----สามารถทดสอบกับเครื่องคอมพิวเตอร์ที่เราต้องการทดสอบว่าสนับสนุนโปรโตคอล snmp หรือไหม่  ถ้ามีผลลัพธ์คล้ายกับรูปแสดงว่าสามารถ walk เอาข้อมูลได้


ตั้งค่าให้ snmp ให้เครื่องคอมพิวเตอร์อื่น ๆ สามารถเข้ามา walk ข้อมูลได้
#pico /etc/snmp/snmpd.conf
ให้เพิ่ม # เป็น  #agentAddress udp:127.0.0.1:161
ให้ลบ # เป็น  agentAddress udp:161,udp6:[::1] ดังรูป

สำหรับค่า rocommunity [community string] คล้ายๆกับรหัส เพื่อป้องกันการเข้ามา walk เอาข้อมูลอุปกรณ์จากบุคคลภายนอกที่ไม่ได้รับอนุญาต  โดย default คือ public



ทำการติดตั้ง snmp-mibs-downloader
#apt-get install snmp-mibs-downloader
นำเข้า mibs โดยใช้คำสั่ง
#pico /etc/snmp/snmp.conf
ให้เพิ่ม # เป็น #mibs

ในที่สุดก็พร้อมติดตั้ง Cacti

ทำการการติดตั้ง Cacti และ Cacti Spine
#apt-get install cacti cacti-spine
แจ้งเตือนมีการเปลี่ยนแปลงค่า


แจ้งเตือนการตั้งค่า MySQL

แจ้งเตือนกำหนดรหัสผ่านของ Mysql server : testmysql!!


แจ้งเตือน กำหนดรหัสผ่านสำหรับฐานข้อมูล Cacti : testmysql!!

แจ้งเตือน ยืนยันรหัสผ่าน

แจ้งเตือน เลือกเว็บเซริฟเวอร์ เป็น apache2


ขั้นตอนการติดตั้ง Cacti ผ่านเว็บเบราเซอร์ พิมพ์ที่ช่อง URL : http://localhost/cacti


เลือก New Install และ Next ตามลำดับ

ตรวจสอบแพ็คเกจที่จำเป็นติดตั้งให้ครบ เมื่อตรวจสอบว่าครบถ้วนเลือก Finish

















เมื่อทำการติดตั้งเสร็จสิ้น ระบบจะเข้าสู่หน้าจอ Login ให้กรอกชื่อผู้ใช้
ชื่อผู้ใช้ เริ่มต้นคือ user: admin / pass: admin

เมื่อ Login เข้าระบบแล้ว ระบบจะบังคับให้เปลี่ยนรหัสผ่านใหม่

ให้กำหนด เป็น testadmin!! / testadmin!!
เมื่อทำการกำหนดรหัสผ่านใหม่เรียบร้อยแล้ว จะได้หน้าจอ ดังรูป


ขั้นตอนการเพิ่มอุปกรณ์สำหรับตรวจสอบการทำงานของอุุปกรณ์เครือ่าย
ให้เลือกเมนู  Device > Add

กรอกข้อมูลอุปกรณ์ Description , Hostname , Host Template ส่วนอื่นๆ ให้ใช้ค่าเริ่มต้น
เมื่อกรอกข้อมูลครบแล้วให้กดปุ่ม Create

ถ้า Cacti สามารถเรียกข้อมูลพื้นฐานจากโปรโตคอล SNMP ได้แสดงว่าสามารถใช้งานได้



การเลือกพอร์ตเน็ตเวิร์คสำหรับการตรวจสอบอุปกรณ์เครือข่าย
คลิ๊กที่ Create Graphs for this Host





เมื่อเลือก Create Graphs for this Host  หน้าจอจะแสดงรายละเอียดอุปกรณ์เครือข่ายว่ามีพอร์ตสำหรับที่จะตรวจสอบอะไรบ้าง  จากภาพให้เลือกพอร์ตที่มีสถานะ Up เพื่อทำการตรวจสอบปริมาณการวิ่งของข้อมูล  เมื่อทำการเลือกพอร์ตที่ต้องการแล้วให้กด Create

เมื่อ Create เสร็จแล้วจะแสดงผลลัพธ์ดังภาพ


ทำการสร้างกราฟ
ให้เลือก เมนู  Graph Trees > Default Trees > Add


เลือก Tree Item Type เป็น Host
เลือก Host เป็น ชื่ออุปกรณ์เครือข่ายที่เราเพิ่มเข้ามา


ให้เลือกแท็บ Graphs > Default Trees > Host nGate ARC

รอ 5 นาที Cacti จะสร้างกราฟเองอัตโนมัติ



เสร็จแล้ว ให้ทำการเพิ่มคำสั่งใน crontab ให้พิมพ์ crontab –e แล้วพิมพ์คำสั่งต่อไปนี้ลงไป

*/5 * * * * www-data php /usr/share/cacti/site/poller.php > /dev/null 2>&1

บันทึกแล้วทำการรีสตาร์ต crontab ด้วยคำสั่ง
#/etc/init.d/cron restart

ทำการตรวจสอบคำสั่งใน crontab ว่าสามารถทำงานได้หรือไม่
#php /usr/share/cacti/site/poller.php
ถ้าไม่พบ Error ก็แสดงว่าสำเร็จ

เย้เรียบร้อยแล้ว มาได้ ครึ่งทางแล้วครับ