Home > Administrator Skills > MRTG – System Monitoring Tools

MRTG – System Monitoring Tools

The Multi Router Traffic Grapher (MRTG) เป็นเครื่องมือตัวหนึ่งที่เหล่าผู้ดูแลระบบใช้ในการแสดงผลความหนาแน่นของข้อมูลที่วิ่งในช่วงระยะเวลาหนึ่งๆ ออกมาเป็นกราฟ ผ่านโปรโตคอล SNMP. นอกเหนือจากการแสดงผลข้อมูลเน็ตเวิร์คออกมาเป็นกราฟแล้ว MRTG ยังสร้างกราฟจากข้อมูลอื่นๆได้ด้วย เช่น ปริมาณการรับส่งอีเมล์ ความเร็วรอบพัดลม อุณหภูมิซีพียู ซึ่งในครั้งนี้ ผมจะเขียนถึงรายละเอียดค่า Configuration ต่างๆ เผื่อว่าจะได้นำไปใช้งานกัน จะเกริ่นนำให้นิดหน่อยสำหรับเรื่องของวิธีการติดตั้งเนื่องจากในบล็อกอื่นๆมีพูดถึงกันพอสมควรแล้ว

ระบบอ้างอิง

  • Mainboard: Intel Entry Server Motherboard S3000AH [PDF]
  • OS: Ubuntu 8.04 LTS
  • MRTG: 2.16.2

สำหรับ Ubuntu สามารถดาวโหลดโปรแกรมมาได้เลยโดยใช้คำสั่งข้างล่างนี้

sudo apt-get install snmpd, mrtg

สิ่งที่ MRTG จะต้องใช้ในการทำงานคือ SNMP Daemon (snmpd), GD Library บางครั้ง GD Library อาจจะหาไม่พบในระบบ แต่จริงๆ อาจจะมีอยู่แล้วก็ได้ ถ้าไม่แน่ใจ ใช้คำสั่งข้างนี้ เพื่อตรวจสอบดูว่ามีไฟล์ gd อยู่ที่ใดบ้าง

Results

/usr/local/include/php/ext/gd/libgd/gd.h
/usr/local/include/php/ext/gd/php_gd.h
/usr/local/gd/include/gd.h
/usr/local/src/gd-2.0.35/gd.h
/usr/local/php5/include/php/ext/gd/libgd/gd.h
/usr/local/php5/include/php/ext/gd/php_gd.h
/usr/libexec/dovecot/gdbhelper

/lib/modules/2.6.24-24-server/kernel/drivers/scsi/gdth.ko
/lib/modules/2.6.22-14-server/kernel/drivers/scsi/gdth.ko

จากผลลัพธ์ ผมเข้าไปดูที่ /usr/local/gd/ เพราะเป้นที่ที่ไม่ผูกกับ PHP และชื่อไฟล์ถูกต้อง หลังจากนั้น ใช้คำสั่งเพื่อคอมไฟล์ MRTG ดังนี้

./configure --with-gd-inc=/usr/local/gd/inc --with-gd-lib=/usr/local/gd/lib
make
make install

ตอนนี้คอมไพล์และติดตั้งโปรแกรมเสร็จเรียบร้อยแล้ว ขั้นตอนต่อจากนี้ เป็นส่วนของการติดตั้งเซ็นเซอร์อุณหภูมิ ซึ่งจะนำมาแสดงผลด้วยใน MRTG Index.

# ขั้นตอนแรก ตรวจสอบหาเช็คหาชิบซึ่งใช้ในการตรวจสอบอุณหภูมิ
sensors-detect
# ลองทดสอบเรียกขึ้นมาทำงาน ว่ามีข้อมูลโผล่มาหรือยัง
sensors

หมายเหตุสักนิดว่าในขั้นตอนของ `sensors-detect` ขั้นตอนสุดท้ายคือจะต้องเอาค่า IC ที่หาได้นี้ไปใส่ลงใน modules file หลังจากนั้น ก็ถึงกระบวนการเรียกใช้งาน IC ที่มีอยู่ในเครื่องผูกเข้ากับระบบ

 modprobe i2c-i801
 modprobe dme1737
 modprobe coretemp
# ทดสอบสั่งทำงานอีกครั้ง
 
sensors

ถ้าผลจาก `sensors` ออกมาเป็นพวกข้อมูลอุณหภูมิ ความเร็วรอบพัดลม กำลังไฟ ก็เป็นอันที่เรียบร้อยแล้ว

MRTG Configuration Example

ตัวอย่าง Configuration ที่น่าสนใจ

Example 1 : [Website]

#
# File: /etc/mrtg/server-info.cfg
#
# Configuration file for non bandwidth server statistics
#

#
# Define global options
#

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt,/usr/st
workdir: /var/sipxdata/mrtg/

#
# CPU Monitoring
# (Scaled so that the sum of all three values doesn't exceed 100)
#

Target[server.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:sipxtest@localhost + ssCpuRawSystem.0&ssCpuRawSystem.0:sipxtest@localhost + ssCpuRawNice.0&ssCpuRawNice.0:sipxtest@localhost
Title[server.cpu]: Server CPU Load
PageTop[server.cpu]: <H1>CPU Load - System, User and Nice Processes</H1>
MaxBytes[server.cpu]: 100
ShortLegend[server.cpu]: %
YLegend[server.cpu]: CPU Utilization
Legend1[server.cpu]: Current CPU percentage load
LegendI[server.cpu]: Used
LegendO[server.cpu]:
Options[server.cpu]: growright,nopercent
Unscaled[server.cpu]: ymwd

#
# Load Average
#

Target[server.loadavg]: laLoadInt.2&laLoadInt.3:sipxtest@localhost
MaxBytes[server.loadavg]: 5000
Title[server.loadavg]: Load Average * 100
PageTop[server.loadavg]:<h1>Load Average * 100</h1>
YLegend[server.loadavg]: Load Average
ShortLegend[server.loadavg]:  
Legend1[server.loadavg]: Load average 5 min
Legend2[server.loadavg]: Load average 15 min
LegendI[server.loadavg]:  5min load avg
LegendO[server.loadavg]:  15min load avg
Options[server.loadavg]: nopercent,growright,noinfo,gauge

#
# Memory Monitoring (Total Versus Available Memory)
#

Target[server.memory]: memAvailReal.0&memTotalReal.0:sipxtest@localhost
Title[server.memory]: Free Memory
PageTop[server.memory]: <H1>Free Memory</H1>
MaxBytes[server.memory]: 100000000000
ShortLegend[server.memory]: B
YLegend[server.memory]: Bytes
LegendI[server.memory]: Free
LegendO[server.memory]: Total
Legend1[server.memory]: Free memory, not including swap, in bytes
Legend2[server.memory]: Total memory
Options[server.memory]: gauge,growright,nopercent
kMG[server.memory]: k,M,G,T,P,X

#
# Memory Monitoring (Percentage usage)
#

Target[server.mempercent]: (memTotalReal.0&memTotalReal.0:sipxtest@localhost ) * 100 / (memTotalReal.0&memTotalReal.0:sipxtest@localhost)
Title[server.mempercent]: Percentage Free Memory
PageTop[server.mempercent]: <h1>Percentage Free Memory</h1>
options[server.mempercent]: growright,gauge,transparent,nopercent
Unscaled[server.mempercent]: ymwd
MaxBytes[server.mempercent]: 100
YLegend[server.mempercent]: Memory %
ShortLegend[server.mempercent]: Percent
LegendI[server.mempercent]: Used
LegendO[server.mempercent]: Used
Legend1[server.mempercent]: Percentage Free Memory
Legend2[server.mempercent]: Percentage Free Memory

#
# New TCP Connection Monitoring (per minute)
#

Target[server.newconns]:tcpPassiveOpens.0&tcpActiveOpens.0:sipxtest@localhost
Title[server.newconns]: Newly Created TCP Connections
PageTop[server.newconns]: <H1>New TCP Connections</H1>
MaxBytes[server.newconns]: 10000000000
ShortLegend[server.newconns]: c/s
YLegend[server.newconns]: Conns / Min
LegendI[server.newconns]: In
LegendO[server.newconns]: Out
Legend1[server.newconns]: New inbound connections
Legend2[server.newconns]: New outbound connections
Options[server.newconns]: growright,nopercent,perminute

#
# Established TCP Connections
#

Target[server.estabcons]: tcpCurrEstab.0&tcpCurrEstab.0:sipxtest@localhost
Title[server.estabcons]: Currently Established TCP Connections
PageTop[server.estabcons]: <H1>Established TCP Connections</H1>
MaxBytes[server.estabcons]: 10000000000
ShortLegend[server.estabcons]:
YLegend[server.estabcons]: Connections
LegendI[server.estabcons]: In
LegendO[server.estabcons]:
Legend1[server.estabcons]: Established connections
Legend2[server.estabcons]:
Options[server.estabcons]: growright,nopercent,gauge

#
# Bandwidt TCP
#

Target[backb]: 2:sipxtest@localhost
Title[backb]: Bandwidth
PageTop[backb]: <H1>TCP Bandwidth</H1>
MaxBytes[backb]: 12500000
YLegend[backb]: Bytes / Sec
LegendI[backb]: In
LegendO[backb]: Out
Legend1[backb]: Bandwidth in
Legend2[backb]: Bandwidth out
Options[backb]: growright

#
# Disk Usage Monitoring
#

Target[server.disk]: dskPercent.1&dskPercent.1:sipxtest@localhost
Title[server.disk]: Disk Partition Usage
PageTop[server.disk]: <H1>Disk Partition Usage /</H1>
MaxBytes[server.disk]: 100
ShortLegend[server.disk]: %
YLegend[server.disk]: Utilization
LegendI[server.disk]: /
LegendO[server.disk]: /var
Options[server.disk]: gauge,growright,nopercent
Unscaled[server.disk]: ymwd

#
# SWAP Usage
#

Target[server.SWAP_USAGE]:.1.3.6.1.4.1.2021.4.3.0&.1.3.6.1.4.1.2021.4.4.0:sipxtest@localhost
RouterUptime[server.SWAP_USAGE]: sipxtest@localhost
Title[server.SWAP_USAGE]: Swap Space
MaxBytes[server.SWAP_USAGE]: 10000000000
Options[server.SWAP_USAGE]: growright, gauge, nopercent
ShortLegend[server.SWAP_USAGE]:KB
YLegend[server.SWAP_USAGE]: Available Swap
Legend1[server.SWAP_USAGE]: Used Swap
LegendI[server.SWAP_USAGE]: Available Swap
LegendO[server.SWAP_USAGE]: Used Swap
PageTop[server.SWAP_USAGE]: <H1>Swap Usage</H1>

#
# DNS Monitoring
#

Target[mydomain_DNS]: `/etc/mrtg/dnsstats.pl`
Options[mydomain_DNS]: gauge,growright,nopercent,integer,unknaszero
Title[mydomain_DNS]: DNS Server
RouterUptime[mydomain_DNS]: sipxtest@localhost
MaxBytes[mydomain_DNS]: 32000
AbsMax[mydomain_DNS]: 64000
WithPeak[mydomain_DNS]: wmy
Colours[mydomain_DNS]: YELLOW #F9C000,RED #F90000,LIGHT YELLOW #FFFFBB,LIGTH RED #FF8080
ShortLegend[mydomain_DNS]:queries/m
YLegend[mydomain_DNS]: Qs per Minute
Legend1[mydomain_DNS]: Queries received over 1 minute
Legend2[mydomain_DNS]: Failed Queries received over 1 minute
Legend3[mydomain_DNS]: Maximal Queries over 5 minutes
Legend4[mydomain_DNS]: Maximal Failed Queries over 5 minutes
LegendI[mydomain_DNS]:  Queries:
LegendO[mydomain_DNS]:  Failures:
PageTop[mydomain_DNS]: <H1>DNS Info</H1>

Web Resource ที่น่าสนใจที่อื่นๆ

จบ.

บอกต่อ....
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Socialogs
  • Technorati
  • Twitter
  • email
Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.

Secured for spam by MLW and Associates, LLP's Super CAPTCHASecured by Super-CAPTCHA © 2009-2010 MLW & Associates, LLP. All rights reserved.