|
|||||||||||||||
SSLUG's grafer til system-overvågning er lavet med brug af MRTG værktøjet. Dette værktøj kan præsentere så godt som enhver form for numeriske data i en graf.
MRTG er oprindelig lavet til at hente data via SNMP. Derfor kører vi også en SNMP dæmon på SSLUG-maskinen, det er den UCD SNMP dæmon som standard følger med Red Hat 6.2. Og vi kan så drage fordel af, at denne SNMP dæmon dels indeholder nogle udvidelser, så man kan trække oplysninger om f.eks. disk- og memory-forbrug ud af systemet via SNMP, og dels har nogle muligheder for at man kan køre egne scripts eller programmer, der så rapporterer deres resultater via SNMP.
MRTG selv har også mulighed for at kalde scripts og hente data den vej. Vi bruger begge metoder på SSLUG.
Vores SNMP konfiguration er ret enkel - den skal blot levere de oplysninger, den er født med, og så lige CPU temperaturen. Den kan vi få med lm_sensors pakken, og så et script der kigger ned i filerne som lm_sensors laver i /proc:
# Definer at community public kan læse alt com2sec local localhost public group MyROGroup v1 local view all included .1 80 access MyROGroup "" any noauth 0 all none none # Pynt syslocation SSLUG Headquarters syscontact SSLUG admin# Vi har et eksternt script, der aflæser CPU temperatur via lm_sensors exec cputemp /etc/snmp/cputemp
cputemp scriptet er meget enkelt:
#!/bin/sh
PATH=/bin:/usr/bin
# Read the current CPU temperature and write it to stdout
head -1l /proc/sys/dev/sensors/gl518sm-i2c-0-2d/temp | awk '{print $3;}'
exit 0
MRTG konfigurationen til at vise CPU temperaturen bruger så blot den udvidelse til SNMP, som er vist ovenfor. Extension-scripts får et SNMP OID der starter med .1.3.6.1.4.1.2021.8.1.101. Hvis ikke man kan finde ud af det, så kan man finde ud af det med snmpwalk localhost public
Target[cputemp]: .1.3.6.1.4.1.2021.8.1.101.1&.1.3.6.1.4.1.2021.8.1.101.1:public@localhost Title[cputemp]: CPU temperature PageTop[cputemp]:CPU temperature for www.sslug.dk MaxBytes[cputemp]: 60 Options[cputemp]: gauge growright Unscaled[cputemp]: dwmy ylegend[cputemp]: Current CPU temperature ShortLegend[cputemp]: Temp (C) LegendI[cputemp]: Temperature: LegendO[cputemp]: Temperature: Legend1[cputemp]: CPU temperature Legend2[cputemp]: CPU temperature
Information om disk og memory forbrug findes standard i UCD SNMP, og det samme gør load average. Det er bare at hitte de rigtige SNMP OID'er - og det afhænger lidt af hvilke partitioner, man vil kigge på. Brug snmpwalk igen til at finde de rigtige tal. Men det skulle gerne være noget der starter med .1.3.6.1.2.1.25.2.3.1. Her er vores entry, der viser disk info for /dev/sda1:
Target[sda1]: .1.3.6.1.2.1.25.2.3.1.6.1&.1.3.6.1.2.1.25.2.3.1.5.1:public@localhost Title[sda1]: Disk usage for sda1 (root fs) PageTop[sda1]:Disk usage for root fs (sda1) MaxBytes[sda1]: 258915 Options[sda1]: gauge growright Unscaled[sda1]: dwmy ylegend[sda1]: 4kB blocks used ShortLegend[sda1]: 4K-blocks LegendI[sda1]: Used: LegendO[sda1]: Size: Legend1[sda1]: Disk usage Legend2[sda1]: Disk size
Hele MRTG config-filen kan findes her
|
||||||||||||||
|
||||||||||||||