A problema megoldasaban jelenleg en csak erintolegesen veszek reszt, tobbek kozott azert, mert lathatoan nem ertek hozza.
Adott egy tomcat cluster. Azt meg az 5.5 verzional a psi-prope [1] nevu stuffal monitoztak.
Kb. arra van szukseg, hogy a a cluster status-at lehessen nezni (a session-ok replikalodnak) jmx-en.
Viszont a psi-probe funkcioi kozul ezt kivettek, kitudja miert.
Mi az altalanosan bevett, hivatalos v. bejaratott megoldas jelenleg?
Eleg, sot talan a legjobb lenne egy nagios check. De azt sem vagom, milyen attributomot kellene figyelni.
- 2599 megtekintés
Hozzászólások
Mi ezt hasznaljuk a cegnel, sajat szerzemeny:
https://github.com/bdeak/nagioschecks/blob/master/check_jmx
Jolokiat hasznal es jmx4perlt, eleg generikus, szabadon atkonfiguralhato/modosithato/forkolhato.
Ha valami nem vilagos, szolj.
Nagiosexchange-et is megturhatod, biztos van ott is millio talalat.
- A hozzászóláshoz be kell jelentkezni
Igen, megtalaltam en is, h egy check jmx kene, de nem vilagos, milyen attributomot kell figyelni, ha a cluster status-ara vagyok kivancsi? Szoval nem erdekel a gc, a heap meg a hasonlo dolgok, lenyegeben csak az, h megvannak-e mindehol a session-ok.
Bocs a bena kerdesert:)
10x
t
- A hozzászóláshoz be kell jelentkezni
A problema a feladat specifikalasaval van, onmagaban az, hogy 'a cluster statusa' nem jelent semmit.
Kulonbozo parametereket figyelhetsz a tomcatjeiden, ezek kozul egy a sessionok szama, de onmagaban ez nem nyujt eleg informaciot semmirol.
Szerintem amiket erdemes figyelni, azok amik a scriptben is szerepelnek, szabad heap space, garbage collectionban toltott ido, szabad permgen space, foglalt threadek szama, szabad threadek szama szazalekban, etc
A scripttel minden metricre kulon alert triggert is lehet tenni, tehat pl beallithatod, hogyha a JVM tobb idot tolt GC-ben mint 300ms, akkor legyen warning/critical.
Ugyancsak onmagaban az, hogy a heap tele van, meg nem jelenti azt, hogy a JVM rosszul mukodik.
Szerintem minnel tobb parametert figyeltess, es lehetoseg szerint rajzoltass fel trend monitorozo alkalmazassal, es egy ido utan latni fogod, hogy mi az, amire erdemes riasztast beallitani.
Ezen kivul en meg csinalnek egy HTTP/HTTPS checket, ami az alkalmazas egy monitor endpointjat hivogatja, es valami stringet keres benne, pl 'ALL OK', amit maga a webapp irat ki, es csak akkor, ha minden alrendszer mukodik.
Azt hiszem a scriptet ennek alapjan raktam ossze:
http://archive.apachecon.com/na2013/presentations/27-Wednesday/A_Patchy…
- A hozzászóláshoz be kell jelentkezni
> A scripttel minden metricre kulon alert triggert is lehet tenni, tehat pl beallithatod, hogyha a JVM tobb idot tolt GC-ben mint 300ms, akkor legyen warning/critical.
Ugyancsak onmagaban az, hogy a heap tele van, meg nem jelenti azt, hogy a JVM rosszul mukodik.
Persze, de ezek engem nem erdekelnek, ahogy irtam fent.
> 'ALL OK'
Lenyegeben nekem az ALL OK most a sessionok replikacio-ja, ami a lenyege a cluster-nek. A tobbi csak korites, semmi clusterspecifikus nincs benne.
Szoval a replikaciot hogyan monitorozod?
10x
tompos
- A hozzászóláshoz be kell jelentkezni
Ja ertem. Szoval amikor Tomcat Clusterrol beszelsz akkor a session replikaciora gondolsz.
En igy csinaltam:
Megkeresed, hogy melyik MBean kell neked:
jmx4perl -user jolokiauser -password jolokiapassword http://fqdn:jolokiaport/jolokiacontext list|grep type=Manager
A listabol ki tudod valasztani azt, amelyik kell, a context alapjan.
Aztan
jmx4perl -user jolokiauser -password jolokiapassword http://fqdn:jolokiaport/jolokiacontext read Catalina:context=/appcontext,host=localhost,type=Manager activeSessions
Ha a fent emlitett scripttel akarod, akkor
./check_jmx -j http://fqdn:jolokiaport/jolokiacontext/ -u jolokia_user -p jolokia_password -s tomcat_sessions --param /appcontext --param localhost
A localhost lehet mas is, attol fuggoen hogy a tomcat virtualhostja hogy van bekonfiguralva.
Mondjuk mi nem hasznalunk session replikaciot, szoval lehet, hogy ez valahol bekavar, mindenesetre szerintem megeri megnezni.
A jmx4perl-t pedig a JMX::Jmx4Perl nevu perl modul felrakasaval tudod beszerezni.
- A hozzászóláshoz be kell jelentkezni
Megnezem, kosz.
De tartok tole, h ez nem azt fogja eredmenykent adni, mint amire szuksegem lenne (nem azt mondja, h healthy v. nem, hanem, h milyen vagy mennyi session van ott epp (~ egy szamszeru erteket adn).
- A hozzászóláshoz be kell jelentkezni
Nem vagyok benne biztos, hogy letezik egy magikus bean, ami azt mutatja, hogy a session replikacio 'egeszseges', vagy 'beteg'.
Amire van eselyed, hogy talalsz valami beant ami mutatja, hogy mennyi latency van, mennyi session lett eldobalva, ilyenek.
Meg itt nezhetsz korul:
http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html#Monitoring_y…
- A hozzászóláshoz be kell jelentkezni
OFF ON
Nekem is ki kellett talalnom, hogy mi a legjobb modja ezeknek (heap, gc) a monitorozasara (fokent statisztika gyujtes celjabol) ami nem hasznal java-t.
En is a Jolokia-nal kotottem ki. En egy collectd-jolokia plugint irtam hozza a collectd python modul-t hasznalva. A collectd python module configjaban lehet beconfigolni hogy milyen JMX valuekat kerdezze le.
En is megprobaltam open source-olni, de a ceg akinek dolgozom nem engedte meg (valojaban senkit sem talaltam, aki ilyen ugyben donteskepes volt) ezert nem tudtam. A szerzodesem szerint meg minden az oveke, amit irok es ezt ha megszegem sujos buntetest kell fizetnem ezert ugy dontottem nem lesz open source :(
OFF OFF
Ezzel is tudsz browse-olni JMX-en es ehhez nem kell agent servlet:
https://code.google.com/p/jmxsh/wiki/Summary
- A hozzászóláshoz be kell jelentkezni
Nem nektek volt egy hirdetesetek, hogy munkatarsat kerestek melled?:)
- A hozzászóláshoz be kell jelentkezni
Jelenleg freelancer vok es nem tudok rola, hogy bovulne a vallalkozasom szoval nemhiszem ;)
- A hozzászóláshoz be kell jelentkezni
/off
maganemberkent - pl otthon - megirod a barmilyen cuccot, kirakod opensourceba, majd masnap felhasznalod azt a kodot, amit egy Cajga nevu ember irt valahol a neten :)
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Eloszor is, ugye alairtam egy szerzodest es ebbol elek (csaladostul). Egyszeruen nem eri meg trukkozni, ezen felul, igy tiszta a lelkiismeretem. :)
Masodszor, amikor elkezdtem utanajarni, hogy hogyan is kellene ezt elegansan, jol megoldani, akkor ugye tudtak, hogy ezen dolgozom. Miutan eszrevettem, hogy nincs normalis megoldas elkezdtem megirni a sajatot. De ugye ekkor mar beleoltem par orat/napot ( hasonloan a post nyitojahoz, nekem is eleg hianyos volt a tudasom eteren akkoriban ;) ) es tudtak, hogy ezen dolgozom. Miutan megirtam, megprobaltam a hivatalos utat es elkezdtem keresni azt az embert, aki engedelyezi, hogy "megnyissam". Kiderult, hogy egy magas pozicioban levo emberke egyszer mar probalta elerni, hogy megnyithassanak egy kulsos ceg altal fejlesztett projectet de zatonyra futott vele, mivel senki nem adta a nevet ehhez. Ezert en is feladtam.
Ezek utan eloallni, hogy: "je, nezzetek mar, ez a software mindent tud, ami nekunk kell... Eddig hogy nem vettem eszre..." kicsit erdekes lett volna.
- A hozzászóláshoz be kell jelentkezni
Ha fontosnak tartod, egy lehetseges megoldas szabadidoben a kod from scratch ujrairasa. Szivas, viszont modot ad ra, hogy az esetleges tervezesi hibakat kijavitsd, es ha nem hasznalsz fel kodot az eredeti megvalositasbol, akkor senki sem szolhat egy szot sem.
- A hozzászóláshoz be kell jelentkezni
Ezt a lehetoseget is atgondoltam mar.
Mondjuk ugy, hogy ejlenleg nem annyira fontos, hogy elvegye az idomet a csaladomtol, egyeb hobbiktol. ( azert mindig bennem lesz a tuske es egyszer unalmamban lehet, hogy megcsinalom :) )
- A hozzászóláshoz be kell jelentkezni
jovobeni tipp volt, a kovetkezo megnyitni kivant cucchoz :)
en megertem h uzletileg kritikus kodot/toolt/akarmi megnyitni nemjo (en is igy jarok el), de egy ilyen es hasonlo faek egyszeru scripteket azert jolesik megosztani, foleg azert mert en is szoktam talalni jo dolgokat a netet, es szerencse hogy azokat keszitok nem hagytak zartan
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Zabbixot ajanlanam. Mar elegge regota van jmx monitoring.
Ha leszeded a java gateway reszenek az ujabb verziojat. A https://bitbucket.org/ryanrupp/zabbix-java-gateway/wiki/Home -rol.
Akkor lesz discovery, amivel automatikusan elkezdi monitorozni az ujonnan deplojololt appokat.
Default template erre nem alkalmas, de nem nehez atirni.
- A hozzászóláshoz be kell jelentkezni
Zabbix-ot igen jol ismerem, a kedvenc monitoring eszkozom. De mint mondtam, nalunk a meglevo infrastructuraba kellett integralni kizarolag statisztika miatt. Ez a collectd jelenleg. (mi nagios-t hasznalunk monitorozasra)
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
Ha esetleg sikerult megoldani, documentalhatnad, hogy milyen modon, miket kell monitorozni.
- A hozzászóláshoz be kell jelentkezni
Ha/Amikor lesz idom vele foglalkozni, akkor persze. Ill. ha egyaltalan en fogok vele foglalkozni:)
- A hozzászóláshoz be kell jelentkezni