14.9. Monitoring Physical Memory

You need to keep an eye on physical memory usage, and you want to track how much is free. How do you do this with MRTG?

Try this in mrtg.cfg:

	# Monitoring Free Physical Memory
	#
	Target[xena.mem]: memAvailReal.0&memAvailReal.0:password@localhost
	Title[xena.mem]: Free Memory In Bytes- Xena
	PageTop[xena.mem]: <H1>Free Memory In Bytes- Xena</H1>
	MaxBytes[xena.mem]: 512000
	YLegend[xena.mem]: Free Memory in Bytes
	ShortLegend[xena.mem]: bytes
	LegendI[xena.mem]: Free Memory
	LegendO[xena.mem]:
	Legend1[xena.mem]: Free memory, not including swap, in bytes
	options[xena.mem]: growright,gauge,nopercent
	Unscaled[xena.mem]: ymwd

Don't forget to enter your total amount of system memory for the MaxBytes option.

Make sure that LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt is in the Global Config Options section. Run these commands to load the changes:

	# env LANG=C mrtg /etc/mrtg.cfg
	# indexmaker --output=/var/www/mrtg/index.html /etc/mrtg.cfg

Mind your filepaths, because they vary on different Linux distributions, and remember to run the first command until it quits emitting error messages, which should take no more than three tries.

Use the free command to see how much RAM you have installed. This doesn't have be a precise number for the MaxBytes option because all it does is set the upper limit of what the graph will display, so you can round it up a bit.

Perhaps you would rather see a percentage than bytes. Do this by changing the target line, and then adjusting your legends:

	Target[xena2.mem]: ( memAvailReal.0&memAvailReal.0:password@localhost ) * 100 / (
	memTotalReal.0&memTotalReal.0:password@localhost )
	RouterUptime[xena2.mem]: password@localhost
	Title[xena2.mem]: Free Memory By Percentage- Xena
	PageTop[xena2.mem]: <H1>Free Memory By Percentage- Xena</H1>
	MaxBytes[xena2.mem]: 512000
	YLegend[xena2.mem]: Memory %
	ShortLegend[xena2.mem]: Percent
	LegendI[xena2.mem]: Free
	LegendO[xena2.mem]:
	Legend1[xena2.mem]: % Free Memory
	options[xena2.mem]: growright,gauge,nopercent

Remember that whitespace must surround each target definition.

This example does not use the Unscaled option because the amount of free memory was so small on my test system that it was barely visible. The MRTG default is scaled graphs, which adjusts the size of the graph to make the data more visible, so when you want this, all you do is leave off the unscaled option.