

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.net-snmp.org/wiki/index.php?action=history&amp;feed=atom&amp;title=TUT%3AMRTG</id>
		<title>TUT:MRTG - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.net-snmp.org/wiki/index.php?action=history&amp;feed=atom&amp;title=TUT%3AMRTG"/>
		<link rel="alternate" type="text/html" href="http://www.net-snmp.org/wiki/index.php?title=TUT:MRTG&amp;action=history"/>
		<updated>2026-05-05T04:24:10Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://www.net-snmp.org/wiki/index.php?title=TUT:MRTG&amp;diff=4204&amp;oldid=prev</id>
		<title>C.chapman: /* Monitoring CPU load */</title>
		<link rel="alternate" type="text/html" href="http://www.net-snmp.org/wiki/index.php?title=TUT:MRTG&amp;diff=4204&amp;oldid=prev"/>
				<updated>2010-03-08T16:22:43Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Monitoring CPU load&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&#039;diff diff-contentalign-left&#039;&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;tr style=&#039;vertical-align: top;&#039; lang=&#039;en&#039;&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:22, 8 March 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Monitoring CPU load ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Monitoring CPU load ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are several ways to try to monitor CPU usage, because the system maintains several CPU counters: Idle, System, User, Nice. As MRTG does not allow you to graph more than two values at a time, it is possible to select any two values &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ang graoh aginst &lt;/del&gt;each other&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, but it it &lt;/del&gt;also possible to compute a combined value.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are several ways to try to monitor CPU usage, because the system maintains several CPU counters: Idle, System, User, Nice. As MRTG does not allow you to graph more than two values at a time, it is possible to select any two values &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and graph against &lt;/ins&gt;each other&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&amp;#160; It is &lt;/ins&gt;also possible to compute a combined value.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== User vs Idle CPU usage ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== User vs Idle CPU usage ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>C.chapman</name></author>	</entry>

	<entry>
		<id>http://www.net-snmp.org/wiki/index.php?title=TUT:MRTG&amp;diff=3169&amp;oldid=prev</id>
		<title>Dts12: Wikification of HTML Tutorial page</title>
		<link rel="alternate" type="text/html" href="http://www.net-snmp.org/wiki/index.php?title=TUT:MRTG&amp;diff=3169&amp;oldid=prev"/>
				<updated>2007-10-31T15:44:30Z</updated>
		
		<summary type="html">&lt;p&gt;Wikification of HTML Tutorial page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Broadly speaking, there are two basic techniques for monitoring a system using SNMP.&lt;br /&gt;
Either the agent can be configured to watch for certain values or events, and report&lt;br /&gt;
to a management station when something significant happens.&lt;br /&gt;
Alternatively, some external application can be set up that will poll the agent&lt;br /&gt;
regularly, and collect the information of interest.&lt;br /&gt;
&lt;br /&gt;
The [[TUT:DisMan Monitoring|DisMan Monitoring]] page describes the first approach -&lt;br /&gt;
this tutorial will concentrate on the second, using the [http://www.mrtg.org Multi Router Traffic Grapher]&lt;br /&gt;
tool.&lt;br /&gt;
&lt;br /&gt;
Note that this does not attempt to be a complete tutorial on the use of MRTG,&lt;br /&gt;
or even cover monitoring network traffic.  Such topics are comprehensively&lt;br /&gt;
covered on the MRTG site already.  This page is specifically concerned with&lt;br /&gt;
discussing other values that can be monitored using MRTG.&lt;br /&gt;
&lt;br /&gt;
== Monitoring CPU load ==&lt;br /&gt;
&lt;br /&gt;
There are several ways to try to monitor CPU usage, because the system maintains several CPU counters: Idle, System, User, Nice. As MRTG does not allow you to graph more than two values at a time, it is possible to select any two values ang graoh aginst each other, but it it also possible to compute a combined value.&lt;br /&gt;
&lt;br /&gt;
=== User vs Idle CPU usage ===&lt;br /&gt;
&lt;br /&gt;
The MRTG configuration would look something like&lt;br /&gt;
&lt;br /&gt;
    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt&lt;br /&gt;
    &lt;br /&gt;
    Target[kontor.cpu]:ssCpuRawUser.0&amp;amp;ssCpuRawIdle.0:public@10.10.11.2&lt;br /&gt;
    RouterUptime[kontor.cpu]: public@10.10.11.2&lt;br /&gt;
    MaxBytes[kontor.cpu]: 100&lt;br /&gt;
    Title[kontor.cpu]: CPU LOAD&lt;br /&gt;
    PageTop[kontor.cpu]: &amp;amp;lt;H1&amp;amp;gt;User CPU Load %&amp;amp;lt;/H1&amp;amp;gt;&lt;br /&gt;
    Unscaled[kontor.cpu]: ymwd&lt;br /&gt;
    ShortLegend[kontor.cpu]: %&lt;br /&gt;
    YLegend[kontor.cpu]: CPU Utilization&lt;br /&gt;
    Legend1[kontor.cpu]: User CPU in % (Load)&lt;br /&gt;
    Legend2[kontor.cpu]: Idle CPU in % (Load)&lt;br /&gt;
    Legend3[kontor.cpu]:&lt;br /&gt;
    Legend4[kontor.cpu]:&lt;br /&gt;
    LegendI[kontor.cpu]:  User&lt;br /&gt;
    LegendO[kontor.cpu]:  Idle&lt;br /&gt;
    Options[kontor.cpu]: growright,nopercent&lt;br /&gt;
&lt;br /&gt;
=== User vs System CPU usage ===&lt;br /&gt;
&lt;br /&gt;
The MRTG configuration would look something like&lt;br /&gt;
&lt;br /&gt;
    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt&lt;br /&gt;
&lt;br /&gt;
    Target[kontor.usrsys]:ssCpuRawUser.0&amp;amp;ssCpuRawSystem.0:public@10.10.11.2&lt;br /&gt;
    RouterUptime[kontor.usrsys]: public@10.10.11.2&lt;br /&gt;
    MaxBytes[kontor.usrsys]: 100&lt;br /&gt;
    Title[kontor.usrsys]: CPU LOAD&lt;br /&gt;
    PageTop[kontor.usrsys]: &amp;amp;lt;H1&amp;amp;gt;CPU (user and system) Load %&amp;amp;lt;/H1&amp;amp;gt;&lt;br /&gt;
    Unscaled[kontor.usrsys]: ymwd&lt;br /&gt;
    ShortLegend[kontor.usrsys]: %&lt;br /&gt;
    YLegend[kontor.usrsys]: CPU Utilization&lt;br /&gt;
    Legend1[kontor.usrsys]: User CPU in % (Load)&lt;br /&gt;
    Legend2[kontor.usrsys]: System CPU in % (Load)&lt;br /&gt;
    Legend3[kontor.usrsys]:&lt;br /&gt;
    Legend4[kontor.usrsys]:&lt;br /&gt;
    LegendI[kontor.usrsys]:  User&lt;br /&gt;
    LegendO[kontor.usrsys]:  System&lt;br /&gt;
    Options[kontor.usrsys]: growright,nopercent&lt;br /&gt;
&lt;br /&gt;
=== Active CPU usage ===&lt;br /&gt;
&lt;br /&gt;
This example sums User, System and Nice and plots it as a single value.&lt;br /&gt;
&lt;br /&gt;
The corresponding MRTG configuration is&lt;br /&gt;
&lt;br /&gt;
    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt&lt;br /&gt;
&lt;br /&gt;
    Target[kontor.cpusum]:ssCpuRawUser.0&amp;amp;ssCpuRawUser.0:public@10.10.11.2 + \&lt;br /&gt;
                          ssCpuRawSystem.0&amp;amp;ssCpuRawSystem.0:public@10.10.11.2 + \&lt;br /&gt;
                          ssCpuRawNice.0&amp;amp;ssCpuRawNice.0:public@10.10.11.2&lt;br /&gt;
    RouterUptime[kontor.cpusum]: public@10.10.11.2&lt;br /&gt;
    MaxBytes[kontor.cpusum]: 100&lt;br /&gt;
    Title[kontor.cpusum]: CPU LOAD&lt;br /&gt;
    PageTop[kontor.cpusum]: &amp;amp;lt;H1&amp;amp;gt;Active CPU Load %&amp;amp;lt;/H1&amp;amp;gt;&lt;br /&gt;
    Unscaled[kontor.cpusum]: ymwd&lt;br /&gt;
    ShortLegend[kontor.cpusum]: %&lt;br /&gt;
    YLegend[kontor.cpusum]: CPU Utilization&lt;br /&gt;
    Legend1[kontor.cpusum]: Active CPU in % (Load)&lt;br /&gt;
    Legend2[kontor.cpusum]:&lt;br /&gt;
    Legend3[kontor.cpusum]:&lt;br /&gt;
    Legend4[kontor.cpusum]:&lt;br /&gt;
    LegendI[kontor.cpusum]:  Active&lt;br /&gt;
    LegendO[kontor.cpusum]:&lt;br /&gt;
    Options[kontor.cpusum]: growright,nopercent&lt;br /&gt;
&lt;br /&gt;
== Monitoring Disk space ==&lt;br /&gt;
&lt;br /&gt;
There are two tables that can be used when monitoring disk space, UCD-SNMP-MIB:dskTable and HOST-RESOURCES-MIB:hrStorageTable. There are two noticeable differences bwtween these tables: UCD-SNMP-MIB:dskTable requires a configuration directive in snmpd.conf, but it also gives a direct measure of the percentage of free space&lt;br /&gt;
&lt;br /&gt;
On the system I used for these examples, I have the following disks: &lt;br /&gt;
&lt;br /&gt;
    $ df&lt;br /&gt;
    Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
    /dev/hda6             289M   56M  218M  21% /&lt;br /&gt;
    /dev/hda1             7.3G  3.2G  4.1G  44% /mnt/windows&lt;br /&gt;
    /dev/hda7             1.7G  1.2G  429M  74% /usr&lt;br /&gt;
    /dev/hdc1              19G  6.7G   11G  37% /space&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
and I have put the following lines into snmpd.conf:&lt;br /&gt;
&lt;br /&gt;
    disk	/	100000&lt;br /&gt;
    disk	/usr	100000&lt;br /&gt;
    disk	/space	100000&lt;br /&gt;
&lt;br /&gt;
=== Monitoring dskTable ===&lt;br /&gt;
&lt;br /&gt;
This plots the usage of the root and /usr partitions in one graph&lt;br /&gt;
&lt;br /&gt;
    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt&lt;br /&gt;
&lt;br /&gt;
    Target[kontor.root]:dskPercent.1&amp;amp;dskPercent.2:public@10.10.11.2&lt;br /&gt;
    RouterUptime[kontor.root]: public@10.10.11.2&lt;br /&gt;
    MaxBytes[kontor.root]: 100&lt;br /&gt;
    Title[kontor.root]: DISK USAGE&lt;br /&gt;
    PageTop[kontor.root]: &amp;amp;lt;H1&amp;amp;gt;DISK / and /usr Usage %&amp;amp;lt;/H1&amp;amp;gt;&lt;br /&gt;
    Unscaled[kontor.root]: ymwd&lt;br /&gt;
    ShortLegend[kontor.root]: %&lt;br /&gt;
    YLegend[kontor.root]: DISK Utilization&lt;br /&gt;
    Legend1[kontor.root]: Root disk&lt;br /&gt;
    Legend2[kontor.root]: /usr disk&lt;br /&gt;
    Legend3[kontor.root]:&lt;br /&gt;
    Legend4[kontor.root]:&lt;br /&gt;
    LegendI[kontor.root]:  Root disk&lt;br /&gt;
    LegendO[kontor.root]:  /usr disk&lt;br /&gt;
    Options[kontor.root]: growright,gauge,nopercent&lt;br /&gt;
&lt;br /&gt;
=== Monitoring hrStorageTable ===&lt;br /&gt;
&lt;br /&gt;
This plots the partition size as one value, and the used space as another.&lt;br /&gt;
&lt;br /&gt;
Note: the values returned here are in units of hrStorageUnits, which, dependent on the file system type, may or may not be 1K.&lt;br /&gt;
&lt;br /&gt;
    LoadMIBs: /usr/local/share/snmp/mibs/HOST-RESOURCES-MIB.txt&lt;br /&gt;
&lt;br /&gt;
    Target[kontor.hrroot]:hrStorageSize.1&amp;amp;hrStorageUsed.1:public@10.10.11.2&lt;br /&gt;
    RouterUptime[kontor.hrroot]: public@10.10.11.2&lt;br /&gt;
    MaxBytes[kontor.hrroot]: 300000&lt;br /&gt;
    Title[kontor.hrroot]: DISK / USAGE&lt;br /&gt;
    PageTop[kontor.hrroot]: &amp;amp;lt;H1&amp;amp;gt;DISK / Usage&amp;amp;lt;/H1&amp;amp;gt;&lt;br /&gt;
    ShortLegend[kontor.hrroot]: B&lt;br /&gt;
    kMG[kontor.hrroot]: k,M,G,T,P&lt;br /&gt;
    kilo[kontor.hrroot]: 1024&lt;br /&gt;
    YLegend[kontor.hrroot]: DISK / Utilization&lt;br /&gt;
    Legend1[kontor.hrroot]: Root disk size&lt;br /&gt;
    Legend2[kontor.hrroot]: Root disk usage&lt;br /&gt;
    Legend3[kontor.hrroot]:&lt;br /&gt;
    Legend4[kontor.hrroot]:&lt;br /&gt;
    LegendI[kontor.hrroot]:  Root disk size&lt;br /&gt;
    LegendO[kontor.hrroot]:  Root disk usage&lt;br /&gt;
    Options[kontor.hrroot]: growright,gauge,nopercent&lt;br /&gt;
    &lt;br /&gt;
== Other Monitoring Examples ==&lt;br /&gt;
&lt;br /&gt;
Two further examples that have been offered:&lt;br /&gt;
&lt;br /&gt;
=== Monitoring TCP connections ===&lt;br /&gt;
&lt;br /&gt;
    Target[tcpopen]: &lt;br /&gt;
    .1.3.6.1.2.1.6.9.0&amp;amp;.1.3.6.1.2.1.6.9.0:public@localhost &lt;br /&gt;
    Options[tcpopen]: nopercent,growright,gauge,noinfo &lt;br /&gt;
    Title[tcpopen]: Open TCP connections &lt;br /&gt;
    PageTop[tcpopen]: Open TCP connections&lt;br /&gt;
    MaxBytes[tcpopen]: 1000000 &lt;br /&gt;
    YLegend[tcpopen]: # conns &lt;br /&gt;
    ShortLegend[tcpopen]: connections &lt;br /&gt;
    LegendI[tcpopen]:  Connections: &lt;br /&gt;
    LegendO[tcpopen]: &lt;br /&gt;
    Legend1[tcpopen]: Open TCP connections &lt;br /&gt;
&lt;br /&gt;
=== Monitoring Free Memory ===&lt;br /&gt;
&lt;br /&gt;
    Target[freemem]: &lt;br /&gt;
    .1.3.6.1.4.1.2021.4.11.0&amp;amp;.1.3.6.1.4.1.2021.4.11.0:public@localhost &lt;br /&gt;
    Options[freemem]: nopercent,growright,gauge,noinfo &lt;br /&gt;
    Title[freemem]: Free Memory &lt;br /&gt;
    PageTop[freemem]: Free Memory&lt;br /&gt;
    MaxBytes[freemem]: 1000000 &lt;br /&gt;
    kMG[freemem]: k,M,G,T,P,X &lt;br /&gt;
    YLegend[freemem]: bytes &lt;br /&gt;
    ShortLegend[freemem]: bytes &lt;br /&gt;
    LegendI[freemem]:  Free Memory: &lt;br /&gt;
    LegendO[freemem]: &lt;br /&gt;
    Legend1[freemem]: Free memory, not including swap, in bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TUT:LIST}}&lt;/div&gt;</summary>
		<author><name>Dts12</name></author>	</entry>

	</feed>