Forord Dette dokumentet er ment for brukere og administratorer som vil overvåke ressursene som brukes av JVM. Det gir en rask og generisk introduksjon til installasjonen av de forskjellige verktøyene som kreves for at overvåkingen skal skje ordentlig. Instruksjonene er ment for operativ systemet Linux, uansett så kan de kanskje ikke virke for alle Linux distribusjonene for de har forskjellige path til filene som er brukt. Brukeren kan få pluginene til å fungere med andre utgaver ved å modifisere absoluttstien til den riktige. Det er antatt at brukeren som implementerer pluginene har erfaring med Unix administreringen i et generelt nivå og har tillatelsen for å installere ekstra applikasjoner. I tilfellet hvor JVM er i en annen server, arbeidsstasjon, bærbar enn Munin noden, er det nødvendig å ha en rute til ip adressen av denne maskinen hvor det kjøres. Det er også gitt at den ønskede porten hvor data er sendt ikke er blokkert med en brannmur eller annet. 2
Innhold Forord... 2 Munin... 4 Java SDK 1.5... 5 Nettverk... 5 Tomcat... 6 Feilsøking... 7 Problemer med kompileringen av pluginene.... 7 Problemer med tilkoblingen til Mbeans server.... 7 3
Munin Pluginene er utviklet for å bli brukt av Munin applikasjoner. Munin applikasjoner er delt i to deler, Munin-main og Munin-node. Main er server delen av applikasjonen og node er klient delen. Siden Munin er mye brukt er den en del av mange pakke behandlere. Den kan lett bli installert i Debian med kommandoen: apt-get install munin munin-node. Dette vil installere både munin-main og munin-node. I freebsd kan den installeres med porter. Hvis pakken ikke er en del av din pakke behandler, kan du laste ned tar ball og installere den manuelt ved å laste den ned fra: http://sourceforge.net/project/showfiles.php?group_id=98117 Konfigurasjonen av munin er enkel. Filen som du trenger å editere er /etc/munin/munin.conf. Merk at pathen av denne filen og dets eksakte navn kan varier på Unix utgaver. Les munin manual i din utgave hvis filen ikke er der. Det første som må settes er: dbdir /var/lib/munin htmldir /var/www/munin logdir /var/log/munin rundir /var/run/munin Disse pathene kan kanskje ikke virke med din installasjon. For eks. Htmldir vil reflektere root mappen av din nettleser. Det neste du må editere er navngivning av din host som skal overvåkes. I vårt tilfellet var setupen: [hoved34.vlab.iu.hio.no] address 127.0.0.1 use_node_name yes Du må spesifisere ip adressen og porten som din mbean server hører på i maskinen som vil bli 4
overvåket. Dette gjøres i /etc/munin/plugin-conf.d/munin-node filen. Var obs på at filen kan være i en forskjellig path og med et forskjellig filnavn fra din utgave. For eks. I FreeBSD er pathen og filen: /usr/local/etc/munin/plugin-conf.d/plugins.conf. Du trenger å adere en linje i denne filen for at pluginen skal kunne lese ip og porten via variabler. I vårt tilfelle er konfigurasjonen: [Tomcat*] env.ip 127.0.0.1 env.port 5400 Dette er tolket av munin-node under kjøringen. Variablene $ip og $port er sendt til alle pluginene som sitt navn starter med «Tomcat». Hvis du vil overvåke en applikasjon foo, må du endre Tomcat til foo, deretter forandre navnet av alle JMX pluginene til å starte med foo. For eks. FooAvailableProcessors. Var obs på at i vårt tilfellet er applikasjonen som er overvåket, ligger i samme maskin hvor pluginen er utviklet.(127.0.0.1) Java SDK 1.5 Pluginene er skrevet i Java. Derfor må du ha Java Runtime Environment installert i tillegg til java compiler. Installasjonen av java kan kanskje være banal i din spesifikk unix utgave siden du skal være nødt til å besøke sun websiden for å få tak i filene manuelt og registrere deg samtidig og godta alle vilkårene. Derfor vil vi ikke gå inn i detaljer av denne installasjonen men referere deg til manualen av din utgave. Nettverk For at pluginene skal fungere ordentlig må det være en rute til ip-adressen av mbeans server som skal være overvåket. Og portnummeret i munin må matche portnummeret som Mbeans server hører på. Det er en rask og lett måte å sjekke hvis nettverking er satt opp ordentlig. 5
hoved34@server:~$ telnet 127.0.0.1 5400 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. Connection closed by foreign host. hoved34@server:~$ telnet 127.0.0.1 5401 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused Som du ser, Den første telnet kommando gir connected til 127.0.0.1. Som betyr at nettverking virker som den skal. I den andre telnet kommandoen, får vi telnet: Unable to connect to remote host: Connection refused. Som betyr at enten ip eller port er feil. Tomcat For å overvåke Tomcat som er en kjent java applikasjon må man starte Tomcat på en spesifikk måte. Dette er pga at Tomcat har en Mbean server implementert, uansett så er den ikke startet default. For å starte Tomcat med mbean server må en legge til suffix til CATALINA_OPTS variable. Denne variabelen finnes i /etc/init.d/tomcat 5.5. Dette er startup filen for Tomcat 5.5. Merk at denne pathen og filnavnet er utstrakt til modifisering siden unix utgaver forandres eller Tomcat fornyes. CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=5400 \ -Dcom.sun.management.jmxremote.ssl=false \ - Dcom.sun.management.jmxremote.authenticate=false" Diagram 1.1 Dette vil starte Mbean server av Tomcat og sette den til å høre på port 5400. Dette kan forandres til den ønskede porten. Hvis denne porten forandres må også følgende port forandres til den aktuelle porten: /usr/local/etc/munin/plugin-conf.d/plugins.conf. 6
Ved å bruke suffixen i diagram 1.1, starter Mbean serveren uten sikkerehets problemer. Denne manualen er ment for kun å få brukeren til å starte med Mbeans. Det er mulig og anbefalt å starte Mbeans med SSL, brukernavn og passord. Uansett så skal vi ikke gå dypt i detaljene i dette dokumentet. Vi anbeffaller deg å lese sikkerhets manualen for sikkerhets muligheter og enable de. Feilsøking Problemer med kompileringen av pluginene. Vær sikker på at du har Sun compiler installert og ikke en merkesbeskyttet en som eclipse compiler. Problemet dukker opp når de nødvendie bibliotekene er ikke inkludert i kompilatoren. Du kan bruke merkesbeskyttet kompilatorer, uansett må du finne ut hvilke biblioteker som mangler og legg dem til manuelt ved å bruke en suffix i kompilatoren. Vi anbefaller bruk av Sun compiler for den skal lette jobben. Problemer med tilkoblingen til Mbeans server. Merk at du kan ikke kjøre pluginen manuelt med denne oppsettingen. Det vil gi en sånn feil melding: error message: java.lang.arrayindexoutofboundsexception: 0. Grunnen til det er at variabelen $ip og $port ikke er sendt til pluginen med mindre pluginen er kjørt av munin-node. Når java pluginen prøver å lese args[0] og args[1], er de tomme. Så sjekk at pluginens navn stemmer med /usr/local/etc/munin/plugin-conf.d/plugins.conf. 7