Freifunk-Gateway aufsetzen/Statistik/mrtg: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 58: Zeile 58:
LegendO[dhcpleasecount]:
LegendO[dhcpleasecount]:
</pre>
</pre>
<b>Tipp:</b> Damit die DHCP Anzeige dynamisch skaliert, <code>Unscaled[dhcpleasecount]: ymwd</code> auskommentieren.


Hier muss der MaxBytes Parameter auf die maximale Zahl der DHCP Leases eingestellt werden.
Hier muss der MaxBytes Parameter auf die maximale Zahl der DHCP Leases eingestellt werden.


Anschließend noch das Script anlegen:
Anschließend noch das Script anlegen: </br>
<code>
<pre>
vi /etc/mrtg/dhcp.sh<br>
vi /etc/mrtg/dhcp.sh
chmod +x /etc/mrtg/dhcp.sh
</pre>
</code>
<pre>
<pre>
#!/bin/bash
#!/bin/bash
leasecount=$(/usr/sbin/dhcp-lease-list --parsable --lease /var/lib/dhcp/dhcpd.leases 2>&1  |wc -l)
 
# -> zutreffendes auskommentieren
# isc-dhcp-server
#leasecount=$(/usr/sbin/dhcp-lease-list --parsable --lease /var/lib/dhcp/dhcpd.leases 2>&1  |wc -l)
# dnsmasq
#leasecount=$(cat /var/lib/misc/bat0.leases | wc -l)
 
echo "$leasecount"
echo "$leasecount"
echo "$leasecount"
echo "$leasecount"
echo 0
echo 0
echo 0
echo 0
</pre>
<pre>
chmod +x /etc/mrtg/dhcp.sh
</pre>
</pre>


Die mrtg traffic Config neu anlegen:
Die mrtg traffic Config neu anlegen:
<pre>
<pre>
/usr/bin/cfgmaker --output=/etc/mrtg/traffic.cfg -zero-speed=100000000 --global "WorkDir: /var/www/mrtg" --ifdesc=name,ip,desc,type --ifref=name,desc --global "Options[_]: bits,growright" public@localhost sed -i -e 's/^\(MaxBytes.*\)$/\10/g' /etc/mrtg/traffic.cfg
/usr/bin/cfgmaker --output=/etc/mrtg/traffic.cfg -zero-speed=100000000 --global "WorkDir: /var/www/mrtg" --ifdesc=name,ip,desc,type --ifref=name,desc --global "Options[_]: bits,growright" public@localhost  
 
sed -i -e 's/^\(MaxBytes.*\)$/\10/g' /etc/mrtg/traffic.cfg
</pre>
</pre>


Zeile 87: Zeile 99:
Den eigenen Index neu machen:
Den eigenen Index neu machen:
<pre>
<pre>
cat /var/www/mrtg/index.html | sed -e 's/SRC="/SRC="mrtg\//g' -e 's/HREF="/HREF="mrtg\//g' -e 's/<\/H1>/<\/H1><img src="topology.png">/g' > /var/www/index.html  
cat /var/www/mrtg/index.html | sed -e 's/SRC="/SRC="mrtg\//g' -e 's/HREF="/HREF="mrtg\//g' > /var/www/index.html  
</pre>
 
/etc/olsrd/dotDraw.pl:
<pre>
#!/usr/bin/perl
 
use IO::Socket;
 
$TOPPATH = "/var/www";
$NAME = "topology";
$FILENAME = "$TOPPATH/$NAME.dot";
$EXT = "png";
 
`touch $TOPPATH/$NAME.$EXT`;
 
$remote = IO::Socket::INET->new(
                        Proto    => "tcp",
                        PeerAddr => "localhost",
                        PeerPort => "2004",
                    )
                  or die "cannot connect to daytime port at localhost";
 
$f;
 
while ( <$remote> ) {
 
        $line = $_;
        if ( m/^[\{\\}]$|digraph|topology|^"10\.50\..*" -> "10\.50.*"|^"10\.50\.[0-9]+\.[0-9\/]+"\[/) {
                $f = $f . $line;
        }
 
        if ( $line =~ /}/i ) {
                print "* ";
                open DOTFILE, ">$FILENAME";
                print DOTFILE $f;
                close DOTFILE;
                $f = "";
 
                `neato -Tpng -Gsize=9,6 -Gbgcolor=white -Gsplines=true -Nstyle=filled -Nfontsize=15 -Ncolor=black -Nfillcolor=white -Nfontname=verdana -Ecolor=black -Elen=4 -Earrowsize=2 $FILENAME -o $TOPPATH/$NAME.new`;
 
                `mv $TOPPATH/$NAME.new $TOPPATH/$NAME.$EXT`;
                `cp $TOPPATH/$NAME.dot $TOPPATH/$NAME-\$(date +'%Y-%m-%d-%H-%M-%S').dot`;
                exit;
        }
}
</pre>
 
/etc/olsrd/olsrd.conf:
<pre>
LoadPlugin "olsrd_dot_draw.so.0.3"
{
}
</pre>
 
eventuell wird noch "graphviz" benötigt um die png zu zeichnen:
 
<pre>
apt-get install graphviz
</pre>
</pre>


Crontab:
Crontab:
<pre>
<pre>
*/5 *  *  *  *    perl /etc/olsrd/dotDraw.pl > /dev/null 2>&1
*/1 *  *  *  *    env LANG=C /usr/bin/mrtg /etc/mrtg/cpu.cfg > /dev/null 2>&1
*/1 *  *  *  *    env LANG=C /usr/bin/mrtg /etc/mrtg/cpu.cfg > /dev/null 2>&1
*/1 *  *  *  *    env LANG=C /usr/bin/mrtg /etc/mrtg/traffic.cfg > /dev/null 2>&1
*/1 *  *  *  *    env LANG=C /usr/bin/mrtg /etc/mrtg/traffic.cfg > /dev/null 2>&1
*/1 *  *  *  *    env LANG=C /usr/bin/mrtg /etc/mrtg/dhcp.cfg > /dev/null 2>&1
*/1 *  *  *  *    env LANG=C /usr/bin/mrtg /etc/mrtg/dhcp.cfg > /dev/null 2>&1
</pre>
</pre>

Version vom 15. Januar 2020, 16:50 Uhr

snmpd und mrtg installieren.

/etc/snmp/snmpd.conf: systemonly auskommentiert

 rocommunity public  default    #-V systemonly
 rocommunity6 public  default   #-V systemonly

snmpd restarten.

Ordner anlegen:

mkdir /etc/mrtg
mkdir /var/www/mrtg

Die mrtg CPU Config neu anlegen: vi /etc/mrtg/cpu.cfg und folgendes einfügen:

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
WorkDir: /var/www/mrtg
Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1 + ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1 + ssCpuRawSoftIRQ.0&ssCpuRawSoftIRQ.0:public@127.0.0.1 + ssCpuRawInterrupt.0&ssCpuRawInterrupt.0:public@127.0.0.1 + ssCpuRawKernel.0&ssCpuRawKernel.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: <h1>Active CPU Load %</h1>
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]:  Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent

Die mrtg dhcp config neu anlegen: vi /etc/mrtg/dhcp.cfg und folgendes einfügen:

WorkDir: /var/www/mrtg
Title[dhcpleasecount]: DHCP-Leases
PageTop[dhcpleasecount]: <H1>DHCP-Leases</H1>
Options[dhcpleasecount]: gauge,nopercent,growright,noinfo
Target[dhcpleasecount]: `/etc/mrtg/dhcp.sh`
MaxBytes[dhcpleasecount]: 255
YLegend[dhcpleasecount]: Lease Count
ShortLegend[dhcpleasecount]: x
Unscaled[dhcpleasecount]: ymwd
LegendI[dhcpleasecount]: Count
LegendO[dhcpleasecount]:

Tipp: Damit die DHCP Anzeige dynamisch skaliert, Unscaled[dhcpleasecount]: ymwd auskommentieren.


Hier muss der MaxBytes Parameter auf die maximale Zahl der DHCP Leases eingestellt werden.

Anschließend noch das Script anlegen:

vi /etc/mrtg/dhcp.sh
#!/bin/bash

# -> zutreffendes auskommentieren
# isc-dhcp-server
#leasecount=$(/usr/sbin/dhcp-lease-list --parsable --lease /var/lib/dhcp/dhcpd.leases 2>&1  |wc -l)
# dnsmasq
#leasecount=$(cat /var/lib/misc/bat0.leases | wc -l)

echo "$leasecount"
echo "$leasecount"
echo 0
echo 0
chmod +x /etc/mrtg/dhcp.sh

Die mrtg traffic Config neu anlegen:

/usr/bin/cfgmaker --output=/etc/mrtg/traffic.cfg -zero-speed=100000000 --global "WorkDir: /var/www/mrtg" --ifdesc=name,ip,desc,type --ifref=name,desc --global "Options[_]: bits,growright" public@localhost 

sed -i -e 's/^\(MaxBytes.*\)$/\10/g' /etc/mrtg/traffic.cfg

Den mrtg Index neu machen:

/usr/bin/indexmaker --output=/var/www/mrtg/index.html --title="$(hostname)" --sort=name --enumerat /etc/mrtg/traffic.cfg /etc/mrtg/cpu.cfg /etc/mrtg/dhcp.cfg

Den eigenen Index neu machen:

cat /var/www/mrtg/index.html | sed -e 's/SRC="/SRC="mrtg\//g' -e 's/HREF="/HREF="mrtg\//g' > /var/www/index.html 

Crontab:

*/1 *  *   *   *     env LANG=C /usr/bin/mrtg /etc/mrtg/cpu.cfg > /dev/null 2>&1
*/1 *  *   *   *     env LANG=C /usr/bin/mrtg /etc/mrtg/traffic.cfg > /dev/null 2>&1
*/1 *  *   *   *     env LANG=C /usr/bin/mrtg /etc/mrtg/dhcp.cfg > /dev/null 2>&1