Serveri jälgimine MRTG abiga Linuxis
Sisukord
Mis on MRTG?
MRTG on vaba tarkvara serverite ja ka igasuguse muu info jälgimiseks. Tarkvara eesmärgiks on joonistada graafikuid kindla kasutaja poolt määratud ajavahemiku järel. Võimalik on jälgida nii serveri protsessori koormust kui ka vajadusel välise temperatuuri muutumist (selleks siis vaja muidugi vastavaid vahendeid). MRTG kasutab peamiselt oma graafikute joonistamisel tarkvara SNMP poolt kogutud infot. MRTG on kirjutatud perlis ning välja lastud Gnu GPL litsentsi all.
Näide MRTG poolt joonistatud graafikust:
Paigaldame vajaliku
MRTG edukaks jooksutamiseks on peamiselt vaja kahte asja MRTGd ennast ning snmp-d, millelt MRTG oma peamise info saab. Eelduseks on loomulikult, et masinas jookseb juba veebiserver (Apache või mõni muu samalaadne), on olemas gd, libpng ning zlib.
Kõige lihtsam moodus mrtg ning snmp paigaldamiseks on nende installimine distributsiooni pakihalduriga, olgu selleks siis yum, yast, apt-get või mõni muu samalaadne.
Järgneva õpetuse koostamisel kasutan näidetena Mandriva Linuxi pakihaldurit urpmi.
Esimese asjana tuleb paigaldada MRTG ise, mis üldjuhul ka snmp-d nõuab, kui kasutusel on mõni pakihaldur.
[root@localhost root]# urpmi mrtg
Järgnevalt tuleb käivitada snmp service.
[root@localhost root]# service snmpd start
Sellega on algus tehtud. Kelle distributsioon taolisi pakihaldureid ei võimalda, siis MRTG installimisest täpsemalt võib leida aadressilt http://oss.oetiker.ch/mrtg/doc/mrtg-unix-guide.en.html.
Esimene proov
Kui MRTG on kenasti peal, siis on aeg teha algust ja vaadata, kas ka mingi tulemuse saab. Selleks tuleb kindlaks teha, kuhu MRTG installimisel on paigutatud fail mrtg.cfg.
[root@localhost root]# locate mrtg.cfg
kui tulemus saabub kohe, on hästi, kui mitte, siis tuleb uuendada andmebaasi:
[root@localhost root]# updatedb
Üldjuhul paigutatakse see fail asukohta /var/www/html/mrtg/, kuid võib ka esineda erinevusi, olenevalt distributsioonist ja paigaldamisest.
Ka faili sisu erineb erinevate distributsioonide ja MRTG versioonide tõttu üsna palju. Osad versioonid koostavad installides esimese konfiguratsiooni ise ära ja sellega antakse algus võrgu jälgimiseks ära, teised aga koostavad täielikult konfimata faili. Selles õpetuses tulebki algust teha tühjalt lehelt.
Ehk siis algne faili sisu näeb välja järgnev:
###################################################################### # Multi Router Traffic Grapher -- Example Configuration File ###################################################################### # This file is for use with mrtg-2.0 # # Note: # # * Keywords must start at the begin of a line. # # * Lines which follow a keyword line which do start # with a blank are appended to the keyword line # # * Empty Lines are ignored # # * Lines starting with a # sign are comments. # Where should the logfiles, and webpages be created? # Minimal mrtg.cfg #-------------------- WorkDir: /var/www/html/mrtg #Target[r1]: 2:public@myrouter.somplace.edu #MaxBytes[r1]: 1250000 #Title[r1]: Traffic Analysis #PageTop[r1]: <H1>Stats for our Ethernet</H1>
Kuna selle konfiga ei ole suurt midagi peale hakata, siis koostame uue faili käsklusega cfgmaker.
Eelnevalt aga kontrollime, kas snmp kaudu on võimalik mingisugust infot saada. Selleks kasutame järgnevat käsklust:
[root@localhost root]# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
kui vastav käsklus tööle ei hakka, tuleb järelikult paigaldada ka net-snmp-utils.
Kui tulemuseks on midagi taolist:
[root@localhost root]# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.0.3 = 2
siis võib asuda cfgmaker'i kasutamise juurde, muul juhul tuleb seadistada snmp. (Tavaliselt just Red Hat'i baasil töötavad süsteemid on turvalisuse mõttes eelkonfigureerimata.)
Sellisel juhul tuleks snmpd.conf faili viia sisse järgmised muudatused: rida:
com2sec notConfigUser default public
tuleb asendada ridadega (asenda 192.168.0.0/24 oma võrgu IPdega):
com2sec local localhost public com2sec mynetwork 192.168.0.0/24 public
read:
group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser
tuleb asendada ridadega:
group MyRWGroup v1 local group MyRWGroup v2c local group MyRWGroup usm local group MyROGroup v1 mynetwork group MyROGroup v2c mynetwork group MyROGroup usm mynetwork
seejärel tuleb kerida alla reani:
view systemview included system
ning asendada see reaga:
view all included .1 80
kerida veel alla ning vahetada rida:
access notConfigGroup "" any noauth exact systemview none none
ridadega:
access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all none
Peale seda tuleb snmp uuesti käivitada
service snmp restart
ning proovida uuesti käsklust
[root@localhost root]# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
tulemuseks peaks tulema midagi taolist nagu ülalpool näidatud ning nüüd võib jätkata mrtg.cfg faili loomisega.
Käskluses esinevad kaldkriipsud peavad sinna ka jääma, sest need tähistavad seda, et murtud rida sisestataks kui üks pikk rida käsklust.
[root@localhost root]# cfgmaker --global 'WorkDir: /var/www/html/mrtg' \ --global 'Options[_]: bits,growright' \ --output /var/www/html/mrtg/mrtg.cfg \ public@localhost
Käsu kergem lahtiseletus oleks järgmine: WorkDir: on juba eelmainitud asukoht, kuhu hakkab süsteem uusi faile looma, Options[_]: tähendab seda, et järgnevad valikud kehtivad kõigi sisestatud graafikute kohta, seda märgib [_], output on juba kõigile iseenesest mõistetavalt koht, kuhu käskluse poolt toodetud fail välja kirjutatakse ning public@localhost on vajalik selleks, et ära määrata, millise masina infot kuulatakse.
Käskluse tulemuseks on pikk cfg fail, mis sisaldab meile palju ebavajalikku. Seega puhastan ma selle igasugustest ebavajalikest kommentaariridadest, nii et jääks vaid need võrguseadmed, mida ma ka tegelikult tahan jälgida:
WorkDir: /var/www/html/mrtg Options[_]: bits, growright ### Interface 3 >> Descr: 'eth0' | Name: '' | Ip: '192.168.11.4' | Eth: '00-80-1e-15-8f-38' ### Target[localhost_3]: 3:public@localhost: SetEnv[localhost_3]: MRTG_INT_IP="192.168.11.4" MRTG_INT_DESCR="eth0" MaxBytes[localhost_3]: 12500000 Title[localhost_3]: Traffic Analysis for 3 -- Not defined (edit /etc/snmp/snmpd.conf or use snmpconf) PageTop[localhost_3]: <H1>Traffic Analysis for 3 -- Not defined (edit /etc/snmp/snmpd.conf or use snmpconf)</H1> <TABLE> <TR><TD>System:</TD> <TD>Not defined (edit /etc/snmp/snmpd.conf or use snmpconf) in Not defined (edit /etc/snmp/snmpd.conf or use snmpconf)</TD></TR> <TR><TD>Maintainer:</TD> <TD>root <root@localhost> (configure /etc/snmp/snmp.local.conf or use snmpconf)</TD></TR> <TR><TD>Description:</TD><TD>eth0 </TD></TR> <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR> <TR><TD>ifName:</TD> <TD></TD></TR> <TR><TD>Max Speed:</TD> <TD>100.0 Mbits/s</TD></TR> <TR><TD>Ip:</TD> <TD>192.168.11.4 ()</TD></TR> </TABLE>
Nagu märgata võib, siis teatatakse meile, et midagi on jäänud konfigureerimata failis snmpd.conf, taolised vead võime hetkel antud cfg failist ise mõne redaktoriga eemaldada, aga et neid edaspidi ei tekiks, siis korrastame ka tolle snmpd.conf faili. Selleks tuleb teil leida failist /etc/snmp/snmpd.conf järgmised read ning need vastavalt vajadusele ümber muuta:
sysdescr "Linux 2.6.x" syscontact sander85 <sander85 ÄT uno PUNKT ee> sysname Kodune töölaud syslocation Misiganes :)
Et muutused rakenduks, siis tuleb vastav service taaskäivitada
[root@localhost root]# service snmpd restart
Järgmine kord enam nende muutujatega nüüd probleeme ei tule. Ja kellel soovi, võib ka kohe uue cfg faili genereerida :)
Järgmisena tuleb koostada leht, mis hakkab kogu seda infot meile kuvama, selleks kasutame käsklust indexmaker. Selles näites kirjutan üle juba eelnevalt mainitud asukohas olevad failid (/var/www/html/mrtg), sest sinna on määratud ka WorkDir. Kui on soov aga WorkDir-i muuta, siis peab vastavalt ümber liigutama ka kõik selles kaustas olevad pildifailid (mrtg-l.png jne).
[root@localhost root]# indexmaker /var/www/html/mrtg/mrtg.cfg --output /var/www/html/mrtg/index.html
See käsklus tekitab index.html faili, mida võib vaadata aadressilt http://sinuserver/mrtg/
Kui kõik õnnestus, siis on näha üsna tühi lehekülg, kust puuduvad igasugused graafikud.
Nüüd jääb üle vaid tekitada ka esimene graafik. Selleks peame kasutama käsklust mrtg. NB! paar esimest korda tekivad selle käsu jooksutamisel errorid, mida ei ole vaja väga tõsiselt võtta, need tekivad iga kord kui on lisatud mõni uus kuulatav objekt (kui näete, siis saate aru).
[root@localhost root]# mrtg /var/www/html/mrtg/mrtg.cfg
Sellega peakski olema loodud ka esimene graafik (millel klikates avaneb pikem ülevaade kuulatavast objektist), mis joonistub vastavalt konfiguratsioonile paremalt ja mille edasiseks arenguks peate veel jätkuvalt jooksutama käsklust mrtg. Siiski on ületatud kõige keerulisem peatükk, kui siiani on kõik õnnestund, siis edasine on üldiselt lihtne.
MRTG kasutamine edasijõudnutele
Seda peatükki soovitaks lugeda alles siis kui eelnevad peatükid on läbitud ning võrgu liikluse jälgimine toimib juba automaatselt iga 5 minuti tagant.
Esimese asjana võtame siis ette protsessori koormuse jälgimise. Selleks on vaja kindlaks teha, et süsteemis jookseb korralikult snmp, sest just selle jaox vajalikke .txt faile on vaja edaspidi kasutada. Järgnevalt teemegi kindlaks, kas vastavad mib failid, mida me vajame, on süsteemis olemas
[root@localhost root]# locate mib | grep snmp /usr/share/doc/net-snmp-5.2.1/README.mib2c /usr/share/snmp/mibs /usr/share/snmp/mibs/DISMAN-EVENT-MIB.txt ... ...
Võib järeldada, et kõik vajalik on olemas.
Et protsessori koormust jälgida vajame me faili /usr/share/snmp/mibs/UCD-SNMP-MIB.txt ning see tuleb kasutusele võtta cfg failis, kus peame ta sisse laadima. Selleks tuleb cfg faili lisada järgmine rida:
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Ning nüüd ei ole muud kui võib ka ülejäänud info koormuse jälgimiseks cfg faili kopida. Info on järgmine:
### CPU Monitoring Target[cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@localhost + ssCpuRawSystem.0&ssCpuRawSystem.0:public@localhost + ssCpuRawNice.0&ssCpuRawNice.0:public@localhost Title[cpu]: Server CPU Load PageTop[cpu]: <H1>CPU Load</H1> MaxBytes[cpu]: 100 ShortLegend[cpu]: % YLegend[cpu]: CPU Utilization Legend1[cpu]: Current CPU percentage load LegendI[cpu]: Used LegendO[cpu]: Options[cpu]: growright,nopercent #Unscaled[cpu]: ymwd
Kui mõnel tekib küsimus, et miks viimane rida välja on kommenteeritud, siis vastus on lihtne, see on lihtsalt maitse asi ja jätsin selle rea alles, et ta oleks näitena olemas kui kellegil on soovi pidevalt maksimaalses skaalas jooksvaid graafikuid jälgida :)
Kogu cfg faili sisu peale protsessori lisamist näeb minul välja järgnev:
###################################################################### # System: Kodune töölaud # Description: "Linux 2.6.x" # Contact: sander85 <sander85 ÄT uno PUNKT ee> # Location: Misiganes :) ###################################################################### WorkDir: /var/www/html/mrtg Options[_]: bits, growright LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt ### Interface 3 >> Descr: 'eth0' | Name: '' | Ip: '192.168.11.4' | Eth: '00-80-1e-15-8f-38' ### Target[localhost_3]: 3:public@localhost: SetEnv[localhost_3]: MRTG_INT_IP="192.168.11.4" MRTG_INT_DESCR="eth0" MaxBytes[localhost_3]: 12500000 Title[localhost_3]: Traffic Analysis for 3 -- Kodune töölaud PageTop[localhost_3]: <H1>Traffic Analysis for 3 -- Kodune töölaud</H1> <TABLE> <TR><TD>System:</TD> <TD>Kodune töölaud in Misiganes :)</TD></TR> <TR><TD>Maintainer:</TD> <TD>sander85 <sander85 ÄT uno PUNKT ee></TD></TR> <TR><TD>Description:</TD><TD>eth0 </TD></TR> <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR> <TR><TD>ifName:</TD> <TD></TD></TR> <TR><TD>Max Speed:</TD> <TD>100.0 Mbits/s</TD></TR> <TR><TD>Ip:</TD> <TD>192.168.11.4 ()</TD></TR> </TABLE> ### CPU Monitoring Target[cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@localhost + ssCpuRawSystem.0&ssCpuRawSystem.0:public@localhost + ssCpuRawNice.0&ssCpuRawNice.0:public@localhost Title[cpu]: Server CPU Load PageTop[cpu]: <H1>CPU Load</H1> MaxBytes[cpu]: 100 ShortLegend[cpu]: % YLegend[cpu]: CPU Utilization Legend1[cpu]: Current CPU percentage load LegendI[cpu]: Used LegendO[cpu]: Options[cpu]: growright, nopercent #Unscaled[cpu]: ymwd
Silmas tuleb pidada seda, et target real olev info peab cfg faili olema sisestatud ühe reana.
Et muutused ka rakenduks, siis tuleb läbi käia tavapärased sammud
[root@localhost root]# indexmaker /var/www/html/mrtg/mrtg.cfg --output /var/www/html/index.html
[root@localhost root]# mrtg /var/www/html/mrtg/mrtg.cfg
Edaspidised cfg faili täiendused annan vaid jupi kaupa, et mitte peatükki liiga pikaks venitada. Kogu cfg faili võib leida viimasest peatükist.
Mälu kasutatavuse jälgimiseks on mitmeid viise, esile toon neist kaks.
Esimene neist kuvab kogu olemasoleva mälu ja sellest vaba oleva mälu mahu.
### Memory Monitoring (Total Versus Available Memory) Target[memory]: memAvailReal.0&memTotalReal.0:public@localhost Title[memory]: Free Memory PageTop[memory]: <H1>Free Memory</H1> MaxBytes[memory]: 100000000000 ShortLegend[memory]: B YLegend[memory]: Bytes LegendI[memory]: Free LegendO[memory]: Total Legend1[memory]: Free memory, not including swap, in bytes Legend2[memory]: Total memory Options[memory]: gauge,growright,nopercent kMG[memory]: k,M,G,T,P,X
cfg fail salvestada ja nagu tavaliselt ning ka tavapärased käsklused uue konfiguratsiooni jõustumiseks
[root@localhost root]# indexmaker /var/www/html/mrtg/mrtg.cfg --output /var/www/html/index.html
[root@localhost root]# mrtg /var/www/html/mrtg/mrtg.cfg
Teine graafik mälu kasutusest kujutab aga protsendilist vaba mälu
### Memory Monitoring (Percentage usage) Title[mempercent]: Percentage Free Memory PageTop[mempercent]: <H1>Percentage Free Memory</H1> Target[mempercent]: ( memAvailReal.0&memAvailReal.0:public@localhost ) * 100 / ( memTotalReal.0&memTotalReal.0:public@localhost ) options[mempercent]: growright,gauge,transparent,nopercent Unscaled[mempercent]: ymwd MaxBytes[mempercent]: 100 YLegend[mempercent]: Memory % ShortLegend[mempercent]: Percent LegendI[mempercent]: Free LegendO[mempercent]: Free Legend1[mempercent]: Percentage Free Memory Legend2[mempercent]: Percentage Free Memory
Silmas tuleb pidada seda, kuidas kõik matemaatilised operandid on muudest märkidest tühikuga eraldatud.
Ning loomulikult
[root@localhost root]# indexmaker /var/www/html/mrtg/mrtg.cfg --output /var/www/html/index.html
[root@localhost root]# mrtg /var/www/html/mrtg/mrtg.cfg
Edasi tutvustaks veel kahte võrgu jälgimise võimalust. Esimene neist jälgib minuti jooksul loodud uusi ühendusi ning teine püsivamaid ühendusi (nagu ssh või suuremat faili ülekandev ftp).
### New TCP Connection Monitoring (per minute) Target[newconns]: tcpPassiveOpens.0&tcpActiveOpens.0:public@localhost Title[newconns]: Newly Created TCP Connections PageTop[newconns]: <H1>New TCP Connections</H1> MaxBytes[newconns]: 10000000000 ShortLegend[newconns]: c/s YLegend[newconns]: Conns / Min LegendI[newconns]: In LegendO[newconns]: Out Legend1[newconns]: New inbound connections Legend2[newconns]: New outbound connections Options[newconns]: growright,nopercent,perminute
### Established TCP Connections Target[estabcons]: tcpCurrEstab.0&tcpCurrEstab.0:public@localhost Title[estabcons]: Currently Established TCP Connections PageTop[estabcons]: <H1>Established TCP Connections</H1> MaxBytes[estabcons]: 10000000000 ShortLegend[estabcons]: YLegend[estabcons]: Connections LegendI[estabcons]: In LegendO[estabcons]: Legend1[estabcons]: Established connections Legend2[estabcons]: Options[estabcons]: growright,nopercent,gauge
Ning lõpuks seaded rakendada
[root@localhost root]# indexmaker /var/www/html/mrtg/mrtg.cfg --output /var/www/html/index.html
[root@localhost root]# mrtg /var/www/html/mrtg/mrtg.cfg
Selle peatüki lõpetan kõvaketta partitsioonide protsendilise täituvuse jälgimisega. Oma näites kasutan partitsioone / ning /mnt/win_d. Et teada saada, milliseid partitsioone on võimalik oma masinas jälgida, võib kasutada käsklust df
[root@localhost root]# df Failisüsteem Maht Kasut Vaba Kas% Haagitud /dev/hdc7 8,6G 1,9G 6,4G 23% / /dev/hda1 15G 12G 3,0G 80% /mnt/win_e /dev/hdc1 29G 21G 7,4G 74% /mnt/win_g /dev/hda5 98G 34G 65G 35% /mnt/win_d
Erinevate distributsioonide puhul võib käskluse df poolt väljastatud info kuju erineda, kuid üldiselt on võimalik välja lugeda, millised partitsioonid on süsteemile külge haagitud.
Järgmisena tuleb soovitud partitsioonid kanda ka snmpd.conf faili, selleks leiame conf failist vastava lõigu ning täiendame seda kahe järgmise reaga (kui eelnevalt on olemas näiteks disk / 10000, siis võib selle vabalt endale sobivaks partitsiooniks ümber muuta, muul juhul tuleb ta kustutada, et ei tuleks edaspidiseid tõrkeid.
disk /
disk /mnt/win_d
Peale nende ridade lisamist tuleb snmpd service muutuste rakendumiseks taaskäivitada
[root@localhost mrtg]# service snmpd restart
Et kontrollida, kas sisestatud muutused ka toimivad, siis proovime saada nende partitsioonide kohta mingit tagasisidet. Selleks kasutame käsklust snmpwalk. Kui kõik õnnestub, siis peaks tulemus olema midagi järgnevat
[root@localhost mrtg]# snmpwalk -v 1 -c public localhost dskPercent.1 UCD-SNMP-MIB::dskPercent.1 22 [root@localhost mrtg]# snmpwalk -v 1 -c public localhost dskPercent.2 UCD-SNMP-MIB::dskPercent.2 34
Jääb üle vaid vastavad seaded ka cfg faili kanda
### Disk Usage Monitoring Target[disk]: dskPercent.1&dskPercent.2:public@localhost Title[disk]: Disk Partition Usage PageTop[disk]: <H1>Disk Partition Usage / and /mnt/win_d</H1> MaxBytes[disk]: 100 ShortLegend[disk]: % YLegend[disk]: Utilization LegendI[disk]: / LegendO[disk]: /mnt/win_d Options[disk]: gauge,growright,nopercent Unscaled[disk]: ymwd
Lõpetuseks veelkord kaks vana tuttavat käsklust
[root@localhost root]# indexmaker /var/www/html/mrtg/mrtg.cfg --output /var/www/html/index.html
[root@localhost root]# mrtg /var/www/html/mrtg/mrtg.cfg
ning võime selle peatüki lõppenuks lugeda. Kes siiani on hakkama saanud, võib järgmisest peatükist leida õpetuse, kuidas kasutada MRTG-d omaloodud scriptidega.
MRTG ja omaloodud scriptid
Selles peatükis teen väikse ülevaate, kuidas on võimalik MRTG ühendada omaloodud scriptidega.
Kuna erinevad distributsioonid ja arvutid erinevad suuresti, siis selles näites kasutatav info ei pruugi kõigil arvutitel kattuda. Aga kui asja töökäik selge, siis peaks olema võimalik vajalikud andmed oma arvutist ise kätte saada.
Oma näites kasutan infot, mida edastavad sensorid, seega on vajalik installeerida pakk nimega lm_sensors
[root@localhost sander]# urpmi lm_sensors
Peale installi on vaja lm_sensors konfigureerida, selleks tuleb root kasutajana käivitada järgmine käsk:
[root@localhost sander]# sensors-detect
Et sensorite jälgimine edukalt tööle hakkaks, on soovitatav süsteemile taaskäivitus teha
[root@localhost sander]# reboot
Peale taaskäivitust peaks olema võimalik käsklusega sensors näha, millised andmed on arvutist jälgitavad.
[root@localhost sander]# sensors it87-isa-0290 Adapter: ISA adapter VCore 1: +1.70 V (min = +1.42 V, max = +1.57 V) ALARM VCore 2: +2.42 V (min = +2.40 V, max = +2.61 V) +3.3V: +6.40 V (min = +3.14 V, max = +3.46 V) ALARM +5V: +5.13 V (min = +4.76 V, max = +5.24 V) +12V: +11.78 V (min = +11.39 V, max = +12.61 V) -12V: -19.38 V (min = -12.63 V, max = -11.41 V) ALARM -5V: -8.58 V (min = -5.26 V, max = -4.77 V) ALARM Stdby: +5.13 V (min = +4.76 V, max = +5.24 V) VBat: +1.73 V fan1: 0 RPM (min = 0 RPM, div = 2) fan2: 4141 RPM (min = 2657 RPM, div = 2) fan3: 0 RPM (min = 2657 RPM, div = 2) M/B Temp: +73°C (low = +15°C, high = +40°C) sensor = thermistor CPU Temp: +39°C (low = +15°C, high = +45°C) sensor = thermistor Temp3: +41°C (low = +15°C, high = +45°C) sensor = thermistor eeprom-i2c-2-51 Adapter: SMBus Via Pro adapter at 0500 Memory type: SDR SDRAM DIMM Memory size (MB): 256 eeprom-i2c-2-50 Adapter: SMBus Via Pro adapter at 0500 Memory type: SDR SDRAM DIMM Memory size (MB): 256 eeprom-i2c-1-50 Adapter: NVIDIA display adapter bus 0 Either use the ddcmon driver instead of the eeprom driver, or run the decode-edid.pl script.
Info, mida mina tahan hetkel kasutada on järgmine:
CPU Temp: +39°C (low = +15°C, high = +45°C) sensor = thermistor Temp3: +41°C (low = +15°C, high = +45°C) sensor = thermistor
Esimene neist on protsessori temperatuur ning teine toiteploki oma.
Et neid kasutada on vaja kirjutada script, mida MRTG saaks kasutada. Et skripte võib ajapikku juurde tekkida ja alati võib tulla vajadus neid ümber teha, siis teen selleks eraldi kausta, et kergem hiljem leida oleks.
[root@localhost sander]# mkdir /var/www/html/mrtg/scriptid
Järgmisena loome sellesse kausta faili temperatuurid.sh, mille sisu on järgmine:
#!/bin/sh cpu=`sensors |grep CPU | awk '{print $3}' | sed -e 's/+//' -e 's/°C//'` echo $cpu psu=`sensors |grep Temp3 | awk '{print $2}' | sed -e 's/+//' -e 's/°C//'` echo $psu echo "a long time" echo "Kodune töölaud"
Et natuke selgust majja tuua, siis on see lühike skript, mis käivitab järjestikku mõningad käslused. Kui vaadata, mis järgneb cpu= real, siis esimesena käivitatakse käsk sensors, toruga eraldatuna leitakse sealt rida, mis sisaldab stringi CPU. Järgmine käslus prindib sellelt realt välja kolmanda stringi, ehk siis algkujul +39°C ning viimane käsklus eemaldab selle stringi küljest meile ebavajlikud märgid. Tulemuseks jääb vaid 39. Käsklused echo "a long time" ning echo "Kodune töölaud" on vajalikud selleks, et saaks täidetud see info kui kaua on masin üleval olnud ja mis masinaga on tegu (silmas tuleb pidada seda, et MRTG võrdleb alati kahte tulemust, seega kui on soov jälgida vaid ühte sensorit või mõnda muud tulemust, siis tuleb ta välja printida kaks korda järjest). Kellel tahtmist/viitsimist, võib ka uptime'i kontrollimiseks if lausetega scripti valmis kribada :)
Et kontrollida, kas script ka töötab, on vaja talle anda käivitamiseks vajalikud õigused
[root@localhost root]# chmod +x /var/www/html/mrtg/scriptid/temperatuurid.sh
Ning siis script käivitada
[root@localhost sander]# /var/www/html/mrtg/scriptid/temperatuurid.sh 39 41 a long time Kodune töölaud
Nagu näha on tulemus käes ja üle jääb see vaid MRTGga ühendada.
### Temperatures Target[temperatures]: `/var/www/html/mrtg/scriptid/temperatuurid.sh` Title[temperatures]: Temperatures PageTop[temperatures]: <H1>Temperatures</H1> MaxBytes[temperatures]: 100 YLegend[temperatures]: °C ShortLegend[temperatures]: °C LegendI[temperatures]: CPU LegendO[temperatures]: PSU Legend1[temperatures]: Temperature of CPU Legend2[temperatures]: Temperature of PSU Options[temperatures]: gauge, growright, nopercent
Sellega teen ka siinkohal õpetusele lõpu, kellel ideid mõne muu info jälgimiseks, siis oleks teretulnud näha neid kommentaarides :)
Terviklik mrtg.cfg fail
###################################################################### # System: Kodune töölaud # Description: "Linux 2.6.x" # Contact: sander85 <sander85 ÄT uno PUNKT ee> # Location: Misiganes :) ###################################################################### WorkDir: /var/www/html/mrtg Options[_]: bits, growright LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt ### Interface 3 >> Descr: 'eth0' | Name: '' | Ip: '192.168.11.4' | Eth: '00-80-1e-15-8f-38' ### Target[localhost_3]: 3:public@localhost: SetEnv[localhost_3]: MRTG_INT_IP="192.168.11.4" MRTG_INT_DESCR="eth0" MaxBytes[localhost_3]: 12500000 Title[localhost_3]: Traffic Analysis for 3 -- Kodune töölaud PageTop[localhost_3]: <H1>Traffic Analysis for 3 -- Kodune töölaud</H1> <TABLE> <TR><TD>System:</TD> <TD>Kodune töölaud in Misiganes :)</TD></TR> <TR><TD>Maintainer:</TD> <TD>sander85 <sander85 ÄT uno PUNKT ee></TD></TR> <TR><TD>Description:</TD><TD>eth0 </TD></TR> <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR> <TR><TD>ifName:</TD> <TD></TD></TR> <TR><TD>Max Speed:</TD> <TD>100.0 Mbits/s</TD></TR> <TR><TD>Ip:</TD> <TD>192.168.11.4 ()</TD></TR> </TABLE> ### CPU Monitoring Target[cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@localhost + ssCpuRawSystem.0&ssCpuRawSystem.0:public@localhost + ssCpuRawNice.0&ssCpuRawNice.0:public@localhost Title[cpu]: Server CPU Load PageTop[cpu]: <H1>CPU Load</H1> MaxBytes[cpu]: 100 ShortLegend[cpu]: % YLegend[cpu]: CPU Utilization Legend1[cpu]: Current CPU percentage load LegendI[cpu]: Used LegendO[cpu]: Options[cpu]: growright, nopercent #Unscaled[cpu]: ymwd ### Memory Monitoring (Total Versus Available Memory) Target[memory]: memAvailReal.0&memTotalReal.0:public@localhost Title[memory]: Free Memory PageTop[memory]: <H1>Free Memory</H1> MaxBytes[memory]: 100000000000 ShortLegend[memory]: B YLegend[memory]: Bytes LegendI[memory]: Free LegendO[memory]: Total Legend1[memory]: Free memory, not including swap, in bytes Legend2[memory]: Total memory Options[memory]: gauge,growright,nopercent kMG[memory]: k,M,G,T,P,X ### Memory Monitoring (Percentage usage) Title[mempercent]: Percentage Free Memory PageTop[mempercent]: <H1>Percentage Free Memory</H1> Target[mempercent]: ( memAvailReal.0&memAvailReal.0:public@localhost ) * 100 / ( memTotalReal.0&memTotalReal.0:public@localhost ) options[mempercent]: growright,gauge,transparent,nopercent Unscaled[mempercent]: ymwd MaxBytes[mempercent]: 100 YLegend[mempercent]: Memory % ShortLegend[mempercent]: Percent LegendI[mempercent]: Free LegendO[mempercent]: Free Legend1[mempercent]: Percentage Free Memory Legend2[mempercent]: Percentage Free Memory ### New TCP Connection Monitoring (per minute) Target[newconns]: tcpPassiveOpens.0&tcpActiveOpens.0:public@localhost Title[newconns]: Newly Created TCP Connections PageTop[newconns]: <H1>New TCP Connections</H1> MaxBytes[newconns]: 10000000000 ShortLegend[newconns]: c/s YLegend[newconns]: Conns / Min LegendI[newconns]: In LegendO[newconns]: Out Legend1[newconns]: New inbound connections Legend2[newconns]: New outbound connections Options[newconns]: growright,nopercent,perminute ### Established TCP Connections Target[estabcons]: tcpCurrEstab.0&tcpCurrEstab.0:public@localhost Title[estabcons]: Currently Established TCP Connections PageTop[estabcons]: <H1>Established TCP Connections</H1> MaxBytes[estabcons]: 10000000000 ShortLegend[estabcons]: YLegend[estabcons]: Connections LegendI[estabcons]: In LegendO[estabcons]: Legend1[estabcons]: Established connections Legend2[estabcons]: Options[estabcons]: growright,nopercent,gauge ### Disk Usage Monitoring Target[disk]: dskPercent.1&dskPercent.2:public@localhost Title[disk]: Disk Partition Usage PageTop[disk]: <H1>Disk Partition Usage / and /mnt/win_d</H1> MaxBytes[disk]: 100 ShortLegend[disk]: % YLegend[disk]: Utilization LegendI[disk]: / LegendO[disk]: /mnt/win_d Options[disk]: gauge,growright,nopercent Unscaled[disk]: ymwd ### Temperatures Target[temperatures]: `/var/www/html/mrtg/scriptid/temperatuurid.sh` Title[temperatures]: Temperatures PageTop[temperatures]: <H1>Temperatures</H1> MaxBytes[temperatures]: 100 YLegend[temperatures]: °C ShortLegend[temperatures]: °C LegendI[temperatures]: CPU LegendO[temperatures]: PSU Legend1[temperatures]: Temperature of CPU Legend2[temperatures]: Temperature of PSU Options[temperatures]: gauge, growright, nopercent
Autor: Sander85