LevelUp! Studio » monitoring https://blog.levelup.in.th Experience the new world. Fri, 26 May 2017 10:06:07 +0000 th hourly 1 http://wordpress.org/?v=3.8.1 หาว่า Code PHP ส่วนไหนทำงานช้าด้วย Xdebug PHP Extension https://blog.levelup.in.th/2016/10/31/%e0%b8%ab%e0%b8%b2%e0%b8%a7%e0%b9%88%e0%b8%b2-code-php-%e0%b8%aa%e0%b9%88%e0%b8%a7%e0%b8%99%e0%b9%84%e0%b8%ab%e0%b8%99%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%94/ https://blog.levelup.in.th/2016/10/31/%e0%b8%ab%e0%b8%b2%e0%b8%a7%e0%b9%88%e0%b8%b2-code-php-%e0%b8%aa%e0%b9%88%e0%b8%a7%e0%b8%99%e0%b9%84%e0%b8%ab%e0%b8%99%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%94/#comments Mon, 31 Oct 2016 15:59:42 +0000 http://blog.levelup.in.th/?p=5929 เคยเจอปัญหา Code PHP ทำงานช้าโดนไม่ทราบสาเหตุไหม? แถมเราไม่รู้อีกตะหากว่าไฟล์ไหน บรรทัดที่เท่าไหร่ทำงานช้า จะให้ไปไล่ Code ด้วยมือก็ Code มีเป็นหมื่นเป็นแสนบรรทัด ไม่รู้จะเริ่มยังไงกว่าจะหาเจอ แถมดันช้าเฉพาะบน Server Production อีกตะหาก แต่ชีวิต PHP Developer ก็ไม่ได้ยากขนาดนั้นหากเรารู้จัก Tools ตัวนี้ มันชื่อว่า Xdebug ครับ เป็น PHP Extension นั่นเอง วิธีลงก็แสนง่ายดาย

sudo apt-get install php-xdebug

แค่นี้จบ (Debian/Ubuntu นะ) แต่ถ้าคุณใช้ Linux OS เก่าๆ หน่อย สั่งแล้วหา package ไม่เจอ ก็อาจจะต้อง Download มา compile ด้วย phpize เองดังนี้

  1. Download version ล่าสุดที่เว็บ Xdebug (เขียนว่า source)
  2. tar -xvzf xdebug-x.x.x.tgz (เปลี่ยนชื่อไฟล์ตามเวอร์ชั่นที่โหลดมา)
  3. cd เข้า dir ที่แกะ zip ออกมาตะกี้
  4. phpize
  5. ./configure
  6. make
  7. cp modules/xdebug.so

หลังจากลงเรียบร้อย (ไม่ว่าจะวิธีใดก็ตาม) แก้ไข php.ini โดยเพิ่มคำสั่งตามด้านล่าง (ถ้าลงผ่าน apt-get install อาจจะมีไฟล์ 20-xdebug.ini อยู่แล้ว ให้แก้ไขที่ไฟล์นั้นแทน php.ini)

zend_extension=xdebug.so // อันนี้สั่ง enable extension
xdebug.profiler_output_dir=<save_path> // อันนี้แก้ <save_path> เป็น path ที่เราจะเก็บไฟล์ profiler เอาไว้ write permission ต้อง write โดย user ที่รัน Process php ได้ ส่วนใหญ่จะเป็น www-data ถ้าขี้เกียจคิดมากก็ chmod 0777 <save_path> ไปเลย
xdebug.profiler_enable=0 // สั่ง enable ให้เซพไฟล์ profiler ตรงนี้ถ้ายังไม่ใช้ให้ใส่เป็น 0 ไปก่อน จะใช้เมื่อไหร่ค่อยปรับเป็น 1

** xdebug.profiler_enable นี้สำคัญมาก ไม่ควรใส่ 1 ตลอดเวลา ไม่อย่างนั้นพื้นที่ Harddisk คุณจะเต็มเร็วมาก!!

ก่อนจะใช้งานกับ Production Server ตัวจริงแนะนำให้ทดลองกับ Development Server ที่มีคนเข้าแค่คนภายในก่อน แล้วแก้ php.ini บรรทัด xdebug.profiler_enable=1 ครับ พร้อมเมื่อไหร่ก็สั่ง restart apache หรือ php-fpm (แล้วแต่ว่า server ใช้ตัวไหนอยู่) เพื่อให้ Xdebug เริ่มทำงาน แล้วให้ลองเข้าหน้าเว็บผ่าน browser สักหน้าหนึ่ง แล้วแวะไปดูที่ <save_path> ที่กำหนดเอาไว้แต่แรก หากทุกอย่างถูกต้องจะมีไฟล์ cachegrind.out.xxxx ปรากฏออกมาหลายๆ ไฟล์ ก็ให้ Download file พวกนี้แหละลงมาที่เครื่องเราให้หมด (แนะนำให้สั่ง tar -zcvf <save_zip_file_name> <save_dir> ก่อน)

ขั้นตอนสุดท้าย Download โปรแกรมดูผล Profiler ครับ มีสองตัว ใครใช้ Windows โหลด WinCacheGrind ใครใช้ Linux โหลด KCacheGrind โหลดเสร็จก็เปิดมาสั่ง File -> Open cachegrind.out.xxxx ที่พึ่ง Download มาตะกี้ก็จะดูได้แล้วดังรูปครับ

xdebug

ดูที่ช่อง Self กับ Cum. ก็จะรู้เวลาที่ใช้เรียบร้อย โดย Self ตัวเฉพาะ function นี้ที่ตัวมันเองเรียกเนี่ยใช้เวลาเท่าไหร่ และ Cum. คือรวมเวลา function ลูกที่ function นี้ไป call ต่ออีกทีทั้งหมดใช้เวลาเท่าไหร่ (- แสดงว่าน้อยมากจนแทบไม่มีผล) และจะบอกว่าไฟล์ไหน บรรทัดอะไรให้เสร็จสรรพ ดับเบิ้ลคลิกเข้าไปทีละชั้นๆ ได้เลย

ก็เท่านี้แหละครับสำหรับวิธีใช้งาน หากต้องการใช้บน Production Server หลังจากแก้ไข xdebug.profiler_enable=1 แล้ว restart php-fpm หรือ apache แล้วถ้าคนเล่น active เยอะหน่อยก็ไม่ต้องเปิดนานครับ สัก 5-10 วิพอ แล้วแก้ xdebug.profiler_enable=0 กลับ แล้วรีบ restart php-fpm หรือ apache ทันที มิฉะนั้นมันจะกินที่ไปมหาศาลครับ Download ลงเครื่องเราก็เสียเวลาเยอะอีก

ขอให้โชคดีครับ :)

]]>
https://blog.levelup.in.th/2016/10/31/%e0%b8%ab%e0%b8%b2%e0%b8%a7%e0%b9%88%e0%b8%b2-code-php-%e0%b8%aa%e0%b9%88%e0%b8%a7%e0%b8%99%e0%b9%84%e0%b8%ab%e0%b8%99%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%94/feed/ 0
การแก้ปัญหาขณะติดตั้ง PHP Agent ของ Newrelic https://blog.levelup.in.th/2016/09/05/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%81%e0%b8%81%e0%b9%89%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%82%e0%b8%93%e0%b8%b0%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-php-agent/ https://blog.levelup.in.th/2016/09/05/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%81%e0%b8%81%e0%b9%89%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%82%e0%b8%93%e0%b8%b0%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-php-agent/#comments Mon, 05 Sep 2016 09:43:20 +0000 http://blog.levelup.in.th/?p=5816 วันก่อนผมเจอปัญหา process newrelic ส่วนของ PHP Monitoring ไม่ทำงาน ไม่มี Process สร้างขึ้นมาเลย และพอไปดู log ก็พบ error ดังนี้

errno=ECONNREFUSED. Failed to connect to the newrelic-daemon

ตอนสั่ง start newrelic PHP Agent แล้วปรากฏว่ารันไม่ขึ้น ซึ่งไม่เคยเจอปัญหานี้มาก่อน เลยไปค้นหาวิธีแก้ พบว่ามีทางแก้สองแบบ

แบบแรก

แก้ไขไฟล์ 20-newrelic.ini จาก

newrelic.daemon.port = "/tmp/.newrelic.sock"

เป็น

newrelic.daemon.port = "@newrelic-daemon"

แล้วสั่ง


service php5-fpm restart
service newrelic-daemon restart

แต่ผมลองแล้วไม่ได้ผล เลยต้องหาวิธีใหม่ได้แบบที่สองคือ

แบบที่สอง

1. พิมพ์ 

getent group newrelic

จะได้ผลลัพธ์ประมาณ newrelic:x:GroupID: ออกมา ให้จำค่า GroupID ไว้สำหรับใช้ต่อไป

2. แก้ไขไฟล์ /etc/sysctl.conf โดยเพิ่ม ข้อมูลดังนี้เข้าไป

fs.proc_can_see_other_uid = 0
fs.proc_super_gid = GroupID

ข้อควรระวังคือ fs.proc_super_gid สามารถใส่ GroupID ได้เพียงอันเดียว ถ้ามี fs.proc_super_gid อยู่ก่อนแล้วให้คุณสร้าง group ใหม่ขึ้นมาแล้วใส่ users ที่ต้องการใช้งานเข้าไปใน group ให้ครบทุก user แล้วใช้ group ใหม่นั้นแทนไปเลย แต่ถ้าไม่เคยสั่ง fs.proc_super_gid มาก่อนก็ไม่ต้องสนใจส่วนนี้

3. 

sysctl -p

4. 

service php5-fpm restart
service newrelic-daemon restart

5. เสร็จเรียบร้อย

]]>
https://blog.levelup.in.th/2016/09/05/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%81%e0%b8%81%e0%b9%89%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%82%e0%b8%93%e0%b8%b0%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-php-agent/feed/ 0
Newrelic – Cloud Server Monitoring https://blog.levelup.in.th/2013/08/31/newrelic-server-monitoringnewrelic-cloud-server-monitoring/ https://blog.levelup.in.th/2013/08/31/newrelic-server-monitoringnewrelic-cloud-server-monitoring/#comments Sat, 31 Aug 2013 10:00:00 +0000 http://blog.levelup.in.th/?p=2889 ผมได้เคยเขียนบทความเกี่ยวกับตัว Newrelic เครื่องมือสำหรับ monitor server บน Cloud ขั้นเทพ ไปเมื่อ 2 ปีที่แล้ว ซึ่งส่วนนั้นจะเน้นการ monitor ที่ตัว application level แต่ครั้งนี้เราจะมาดูที่ส่วนของ server ด้านหลังกันบ้างเช่น CPU, RAM, Disk I/O ต่างๆ ซึ่งเดี๋ยวนี้ Newrelic ก็ได้พัฒนาขึ้นไปมากกว่าเก่ามากแล้ว และผมเองก็ยังคงใช้งานมาอย่างต่อเนื่อง มาลองดู Feature ด้าน server กันบ้างซึ่งส่วนนี้เหมาะสำหรับ System Engineer ที่ปกตินั่งดูแต่ shell ดำๆ ซึ่งดูได้แค่ข้อมูลปัจจุบัน หากเกิดอะไรขึ้นขณะที่นอนอยู่ จะมาดูย้อนหลัง บางคนอาจเลือกที่จะติดตั้ง Cacti, MRTG, Zabbix แต่ก็จะยุ่งยากเพราะต้องมี server เอาไว้เก็บข้อมูล stat ย้อนหลังต่างๆ เอง ขั้นตอนการติดตั้งก็ต่างๆ กันไป วันนี้ลองมาดู Newrelic บ้าง อาจจะเปลี่ยนใจทำให้คุณชอบขึ้นมาบ้างก็ได้ :)

Newrelic ตอนนี้ขยายบริการใหญ่โตมาก แบ่งการ Monitor หลักๆ ได้ออกเป็น

  1. Web App Monitoring – ซึ่งมันคือบริการแรกเริ่มของ New Relic ที่ผม Review ไปเมื่อ 2 ปีที่แล้ว
  2. Mobile App Monitoring – ตรงนี้ผมยังไม่เคยใช้บริการ แต่เข้าใจว่าเน้นการ monitor ด้านข้อมูล Network ที่ส่งเข้าออกจากตัวมือถือ
  3. Server Monitoring – ตัวนี้คือที่ผมจะพูดถึงวันนี้

lvp1

สิ่งแรกที่ต้องมี แน่นอนคือ CPU และ Memory ที่ใช้งานไปของเครื่อง (ในรูปปรับให้แสดง 24 ชม. ซึ่งจริงๆ สามารถปรับเป็น 30 นาทีแล้วดูผลได้เกือบ Real time)

lvp2

อันนี้ Disk I/O และ Network I/O ซึ่งจะแยก disk เป็นลูกๆ ให้เห็นอย่างชัดเจน

lvp3

เกิด Event อะไรอันตรายไหมในช่วงเวลาที่ผ่านมา เช่น Mem เต็ม CPU ทะลัก disk ระเบิด บลาๆ

lvp4

รูปนี้แสดงให้เห็นว่า process อะไรกิน Memory กิน CPU มากที่สุด ในช่วงเวลาต่างๆ เห็นกันชัดๆ ไปเลยว่าใครเป็นตัวปัญหาของ server เช่นในรูปผมสั่ง backup database ช่วงตี 4 จะเห็นว่า process lbzip2 (บีบอัดไฟล์ backup) ทำงานหนักที่สุด (นอกนั้น node กินเรียบ 55+)

lvp5

ตัวนี้แสดงกราฟเป็นราย process อย่างในรูปคือ php-fpm process ที่ใช้รับ Frontend หน้าเว็บ ซึ่งมี Running instance count หรือก็คือมีจำนวน process นี้กี่ตัวให้ดูด้วย ตรงนี้เอาไว้ Monitor การ spawn children ของ php-fpm ได้เป็นอย่างดี

lvp6

รูปนี้เป็น Disk I/O ที่ละเอียดขั้นว่าในช่วงเวลาต่างๆ มีอัตราการอ่านเขียนที่กี่ MB/S และยังดูค่า IOPS ได้อีกด้วย!! (ใครใช้ AWS จะเอามาคำนวณดูสถิติย้อนหลังเพื่อช่วยสร้างเครื่องที่เหมาะสมได้ดีมาก!)

lvp7

รายชื่อ server หลายๆ เครื่องเท่าที่มีทั้งหมด ดูภาพรวมอาณาจักรของเราได้ตรงนี้ :P

lvp8

และนี่เป็นหนึ่งใน Feature ที่ผมชอบมากที่สุดครับ อีเมล์แจ้งเตือนเราเมื่อ CPU, Mem, Disk I/O เกินกี่ % ซึ่งเราตั้งค่าที่ต้องการให้เตือนได้เองอย่างอิสระ :D เมื่อเราได้รับการแจ้งเตือนถึงปัญหาที่กำลังจะเกิดแต่เนิ่นๆ เราก็จะสามารถเตรียมรับมือและรีบตรวจหาสิ่งผิดปกติในเวลานั้นได้ทันท่วงทีก่อนที่เครื่องจะระเบิดได้ :P

lvp9

เอ๋? ยังไม่พอใจอีกเหรอ? เค้ามี Plugin ให้ install ใช้ฟรีตามแต่ application ที่ใช้เลยนะเออ! พวกนี้จะเป็นบริษัทอื่น Third Party ที่มาร่วมแจมพัฒนาตัวส่งข้อมูลมายิงเข้า Newrelic แล้วทาง Newrelic จะช่วยเก็บข้อมูลสถิติกราฟย้อนหลังให้ นั่นหมายความว่าอนาคต เราอาจจะ Monitor ได้ทุกโปรแกรมบนโลกใบนี้ด้วยพลังของ Third Party Plugin! และน่าจะฟรีทั้งหมดด้วย!

lvp10

ตัวอย่างในรูปผม Install Plugin Monitor Memcached ครับ ทำให้ผมทราบสถิติการใช้งานคำสั่งภายใน Memcached ดังรูปเลย (set, get,delete มากี่รอบต่อนาที)

lvp11

และสุดท้ายก็คือการดูข้อมูลย้อนหลังครับ ตรงนี้จะเป็นจุดแตกต่างที่สำคัญที่สุดระหว่างการใช้ฟรีและจ่ายเงิน เพราะใช้ฟรีจะดูย้อนหลังได้แค่ 1 วัน หากเสียเงินจะดูได้ 7 วัน หรือ 3 เดือนตามแต่ package ซึ่ง Feature ที่ว่ามาตั้งแต่ต้นทั้งหมดสามารถใช้ได้ฟรี! แค่จะดูได้แค่ 1 วัน ซึ่งเอาเข้าจริงก็เพียงพอต่อการแก้ปัญหาเฉพาะหน้าได้มากแล้ว

hero_phones

แถมอีกนิด เค้ามี app มือถือให้โหลดมาใช้ฟรีด้วยเช่นกัน หากอยู่นอกสถานที่ก็ยังดูข้อมูล Server ได้ตลอดเวลา :D ที่สำคัญเวลามีอะไรพังขึ้นมาก็มี Push Notification แจ้งเตือนอีกต่างหาก พระเจ้าจอร์จ มันยอดมาก!

ใครน้ำลายไหล อยากจะได้ก็จิ้มเลยครับ http://www.newrelic.com สมัครวันนี้แม้จะ package ฟรีจะแถมเสื้อฟรีและคอปเตอร์วิทยุบังคับฟรี! ส่งไปรษณีข้ามโลกมาเลยทีเดียว (ทำไมต้องคอปเตอร์ฟะ) เอ๊ะ! ผมเป็น Sale ให้ Newrelic ตั้งแต่เมื่อไหร่ 55+

]]>
https://blog.levelup.in.th/2013/08/31/newrelic-server-monitoringnewrelic-cloud-server-monitoring/feed/ 1
9 เครื่องมือตรวจสอบสถานะ server https://blog.levelup.in.th/2011/02/26/server-moniter-tools%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a1%e0%b8%b7%e0%b8%ad%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%aa%e0%b8%96%e0%b8%b2/ https://blog.levelup.in.th/2011/02/26/server-moniter-tools%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a1%e0%b8%b7%e0%b8%ad%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%aa%e0%b8%96%e0%b8%b2/#comments Sat, 26 Feb 2011 10:52:38 +0000 http://blog.levelup.in.th/?p=857 จากบทความที่แล้ว Newrelic เครื่องมือสำหรับ monitor server บน Cloud ขั้นเทพ เรามาดูกันต่อด้วย tools ที่เจาะลึกมากขึ้นผ่านทาง shell ดังนี้ครับ

  1. top เครื่องมือหากินที่มีติดมากับ server ทุกตัว ใช้ดู CPU, Memory ของแต่ละ process ได้ เพื่อสังเกตถึงความผิดปกติของ process และยังสั่ง kill process ได้อีกด้วย
  2. prstat -Z ตัวนี้คล้าย top แต่เอาไว้ใช้บน Solaris ครับ จะให้ข้อมูลที่เที่ยงตรงกว่า top แต่ถ้าเป็น linux ตระกูลอื่นก็ใช้ top นั่นแหละ
  3. ps -elf มี process อะไรรันอยู่บ้างด้วย command อะไร
  4. uptime ตรวจสอบว่าเครื่องนี้รันมาโดยไม่ล่มเป็นเวลากี่วันแล้ว
  5. df -h ใช้เช็คพื้นที่ harddisk ที่เหลือ เอาไว้ดูว่าเครื่อง server หรือเครื่อง database ของเราพื้นที่ใกล้เต็มหรือยัง
  6. apachetop -f <access_log_path> ใช้เช็คว่ามี URL ไหนที่ถูกรันถี่เป็นพิเศษ หรือมีการส่งข้อมูลมากเป็นพิเศษในขณะนั้น อันนี้รวมไปถึงถ้าโดนใครยิงถล่ม server ก็สามารถ monitor ได้เช่นกันว่ายิงมาจาก IP ไหน
  7. mysql -u<username> -p แม้แต่ตัวคำสั่ง mysql เองก็สามารถใช้ตรวจสอบสถานะของ Database ได้เช่นกัน หลังจากเราพิมพ์ mysql -uroot -p เข้ามาแล้ว สามารถรันคำสั่งต่างๆ ได้ เช่น
    1. SHOW PROCESSLIST; ใช้ดูสถานะ Query ของ mysql ในขณะนั้น ถ้า table โดน Lock บ่อยมากๆ เราจะเห็นสถานะ LOCK ค้างตอนรันคำสั่งนี้เป็นจำนวนมาก
    2. SHOW STATUS; ใช้ดูสถานะค่าต่างๆ ของ mysql ซึ่งมีอยู่มากมายมหาศาล อ่านรายละเอียดของค่าแต่ละตัวได้ที่นี่
  8. mytop -u <username> -p <password> -d <database_name> เมื่อเรามี top ใน server ก็ต้องมี mytop ใน mysql ตัวนี้เอาไว้ monitor สถานะปัจจุบันของ mysql ได้ทั้ง Query per sec, mysql รันมากี่วัน กี่ชั่วโมงโดยที่ไม่ล่มแล้ว, มีปริมาณ Select/Insert/Update/Delete ในขณะนั้นมากน้อยเพียงใด, มี slow query ไหม, Bytes per sec ฯลฯ มีประโยชน์มากครับ
  9. dtrace อันนี้มีเฉพาะใน Solaris แต่ขอบอกว่าเป็น Tools ที่เทพมากๆ ครับ โดยหากจะใช้เราควรไป Download Dtracetoolkit มา ถ้าใครเคยใช้ Firefox ก็คิอซะว่า Dtrace คือ greasemonkey และ Dtracetoolkit คือชุดของ script สำหรับรันจำนวนมากนั่นเอง ซึ่งภายใน toolkit จะมีหลากหลายภาษาการเขียนโปรแกรมมาให้เป็นจำนวนมาก วิธีใช้จะต้องลง extension ของภาษานั้นๆ เช่นจะใช้งาน dtrace สำหรับ php ต้องลง pecl install dtrace เสียก่อน จึงจะสามารถรัน script ที่ download มาได้ เมื่อรันแล้วจะมีข้อมูลหลายอย่างที่น่าสนใจเช่น function อะไรที่ class ไหนใช้เวลารันไปกี่วินาที รันไปกี่รอบ หรือแม้แต่กิน memory ไปเท่าไร ช่วยให้การหา bottleneck ของโปรแกรมว่าส่วนไหนของโปรแกรมทำงานช้าทำได้ง่ายมากๆ เพราะลงไปถึงระดับ function กันเลยทีเดียว อ่านรายละเอียดเพิ่มเติมได้ที่นี่

ก็ตามนี้ครับ list tools ช่วยตรวจสอบสถานะ server ใครมีปัญหาอะไรก็ลองรันดูเผื่อจะเจออะไรนะครับ tool ทุกตัวที่ผมแนะนำคิดว่าน่าจะมีอยู่ใน server อยู่แล้ว ไม่ต้องติดตั้งอะไรเพิ่มครับ ขอให้โชคดีครับ :)

]]>
https://blog.levelup.in.th/2011/02/26/server-moniter-tools%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a1%e0%b8%b7%e0%b8%ad%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%aa%e0%b8%96%e0%b8%b2/feed/ 2