Multi Router Traffic Grapher

From ArchWiki
Revision as of 18:44, 13 January 2012 by Two oes (Talk | contribs) (number of processes)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tango-document-new.pngThis article is a stub.Tango-document-new.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Multi Router Traffic Grapher#)

Server Setup

this document assumes that you already have a Apache and net-snmp working and configured properly

The following should all be performed as root.

  • Install the necessary programs
# pacman -S mrtg perl-net-snmp
  • create an mrtg user
# useradd -d /srv/http/mrtg mrtg
  • create the user home directory and change the owner ship to the user
# mkdir /srv/http/mrtg/
# chown mrtg:mrtg /srv/http/mrtg

MRTG Setup

there are meny ways to configure the mrtg for your local server. this document will describe the must easest way to expend the application for other server and network appliances when and if needed.

The following should all be performed as the mrtg user we created.

  • create an HTML directory to hold the png files and the index.html file
# mkdir /srv/http/mrtg/html

now we will begin dealing with the application scripts first we will create a basic mrtg.cfg file

  • the next script will scan our localhost for it's interfaces and create for us the relevent configuration for each interface
# cfgmaker --output=/srv/http/mrtg/mrtg2.cfg --ifref=name --ifref=descr --global "WorkDir: /srv/http/mrtg" public@localhost
  • the mrtg.cfg files contains all the server interfaces. we do not need the "lo" interface so we are going to delete it and edit the global configuration

mrtg.cfg Global configuration

remove the lines that are irrelevant to the interface and add the fallowing lines at the top:

### Global configuration  ###

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
EnableIPv6: no
HtmlDir: /srv/http/mrtg/html
ImageDir: /srv/http/mrtg/html
LogDir: /srv/http/mrtg
ThreshDir: /srv/http/mrtg
RunAsDaemon: Yes
Interval: 5
Refresh: 600

the global configuration lines are :

1) to load the Linux MIB to the mrtg Applicaiton
2) to enable/disable IPv6
3) HTML home directory
4) the png files home directory
5) the log dir files locations
6) the Thres Directory
7) wether or not we want to run the application as a daemon , in this case : yes
8) the daemon interval (minimum 5 min)
9) the interval to refresh the html files

resource monitoring

now that we have the global configuration set we need to add the resources and devices we want to monitor.

in this tutorial we are going to monitor:

2)memory Usage
4)Load Average
5)Total TCP Established Connections
6)the server interfaces
7)users count
8)the server mount points

CPU Monitoring

for monitoring the CPU we need to add the next lines :

Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@ + ssCpuRawSystem.0&ssCpuRawSystem.0:public@ +\ 
RouterUptime[localhost.cpu]: public@
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: Active CPU Load %
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
LegendI[localhost.cpu]:  Active
Options[localhost.cpu]: growright,nopercent

Memory usage

to monitor the memory usage we need to add the next lines :

# get memory Usage
Target[localhost.memtotal]: ( . ) - \
( . )
PageTop[localhost.memtotal]: Memory Usage
Options[localhost.memtotal]: nopercent,growright,gauge
Title[localhost.memtotal]: Memory Usage
MaxBytes[localhost.memtotal]: 100000000
kMG[localhost.memtotal]: k,M,G,T,P,X
YLegend[localhost.memtotal]: bytes
ShortLegend[localhost.memtotal]: bytes
LegendI[localhost.memtotal]: Memory Usage: 
Legend1[localhost.memtotal]: Memory Usage, not including swap, in bytes
Colours[localhost.memtotal]: Blue#1000ff, Black#000000, Gray#CCCCCC, Yellow#FFFF00

Swap Usage

for swap usage add the fallowing lines :

# get swap memory
Target[localhost.swap]:( . ) - \
( .
PageTop[localhost.swap]: Swap Usage
Options[localhost.swap]: nopercent,growright,gauge,noinfo
Title[localhost.swap]: Swap Usage
MaxBytes[localhost.swap]: 100000000 
kMG[localhost.swap]: k,M,G,T,P,X
YLegend[localhost.swap]: bytes
ShortLegend[localhost.swap]: bytes
LegendI[localhost.swap]: Swap Usage:
Legend1[localhost.swap]: Swap memory avail, in bytes
Colours[localhost.swap]: Blue#1000ff,Violet#ff00ff,Black#000000, Gray#CCCCCC

in the title section some calculation are made. MRTG knows to calculate the values given OID

number of processes

for getting the number of processes running we are doing some unique here

# get number of processes running
Target[localhost.procs]: `/usr/local/mrtg/`
Title[localhost.procs]: Process Statistics
PageTop[localhost.procs]: Process Statistics
MaxBytes[localhost.procs]: 10000
YLegend[localhost.procs]: Processes  
LegendI[localhost.procs]:   Blocked Processes:
LegendO[localhost.procs]:   Run Queue:
Legend1[localhost.procs]: Number of Blocked Processes 
Legend2[localhost.procs]: Number of Processes in Run Queue
Legend3[localhost.procs]: Maximal Blocked Processes
Legend4[localhost.procs]: Maximal Processes in Run Queue
Options[localhost.procs]: growright, integer, nopercent, gauge