• 15 odgovora
  • 5.467 pregleda
Remote jstatd access 24.06.2011. u 16:11 · pre 186 meseci #1
Pokusavam da se nakacin na javinu virtuelnu masinu na serveru preko visualVm-a da bih mogao da nadgledam procese. ali nikako ne mogu da uspostavim remore konekciju.
Guglo sam i nasao da bih na serveru trebao da pokrenem jstatd i to na sledeci nacin:

Code:

                                     rmiregistry&        
                                     jstatd  -J-Djava.security.policy=all.policy

Sadrzaj all.policy fajla izgleda ovako

Code:
grant codebase "file:${java.home}/../lib/tools.jar" {
               permission java.security.AllPermission;
            };


Pokusavao sam i uvjek mi baci gresku

Code:
Could not bind /JStatRemoteHost to RMI Registry
            java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
                java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
                java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost
                at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:413)
                at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
                at sun.rmi.transport.Transport$1.run(Transport.java:177)
                at java.security.AccessController.doPrivileged(Native Method)
                at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
                at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
                at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
                at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
                at java.lang.Thread.run(Thread.java:679)
                at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
                at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
                at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
                at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
                at java.rmi.Naming.rebind(Naming.java:177)
                at sun.tools.jstatd.Jstatd.bind(Jstatd.java:57)
                at sun.tools.jstatd.Jstatd.main(Jstatd.java:143)
            Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
                java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost
                at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)


Sta ovde moze da pravi problem?

[Ovu poruku je menjao glamoc dana 25.06.2011. u 01:30 GMT+1]
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 25.06.2011. u 20:29 · pre 186 meseci #3
Probao sam i nije pokrenut...
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 25.06.2011. u 20:51 · pre 186 meseci #5
Izlaz komande je

Code:
:~$ netstat -natp | grep 1099
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1099                 :::*                    LISTEN      2550/rmiregistry

Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 25.06.2011. u 20:57 · pre 186 meseci #6
Kako si pokretao ove komande (rmiregistry, jstatd) kao root (#) ili kao obican korisnik ($) ?

p.s. netstat bi takodje trebalo da pokreces kao root kako bih dobio sto vise informacija.
Re: Remote jstatd access 25.06.2011. u 21:01 · pre 186 meseci #7
Nisam pokretao kao sudo, ali sad sam probao i sa sudo i ista prica.

A evo i izlaza netstat-a kao sudo

Code:
:~$ sudo netstat -natp | grep 1099
tcp6       0      0 :::1099                 :::*                    LISTEN      2636/rmiregistry



[Ovu poruku je menjao glamoc dana 26.06.2011. u 11:51 GMT+1]
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 25.06.2011. u 21:04 · pre 186 meseci #8
Ja bih probao sledece,

ubio bih rmiregistry
pkill -9 rmiregistry

Onda bih kao root pokrenuo ponovo rmiregistry i jstatd.
Re: Remote jstatd access 25.06.2011. u 21:12 · pre 186 meseci #9
Pokusao sam i ista stvar se desava.
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 25.06.2011. u 21:14 · pre 186 meseci #10
Ja se ovom tematikom nisam bavio. Pokusavam da ti pomognem na osnovu nekog iskustva iz Linux-a. Bilo bi lepo da ponovo napises sta si radio, koji linux je u pitanju, i da ovde postavis izlaz svake komande. Ovako ne znam nista :)

Tipa:
netstat -natp | grep rmiregistry
ako se ne pojavi NISTA vezano za rmiregistry onda pokreces ponovo rmiregistry
Onda proveris ponovo da li je rmiregistry pokrenut kako treba.
onda proveris jstatd da li je pokrenut ako nije onda pokreces jstatd itd itd...

p.s. Veliko je pitanje da li na server-u imas Sun Javu ili gcj...
Re: Remote jstatd access 25.06.2011. u 21:25 · pre 186 meseci #11
Sve sto mogu da izvucem od racunara ja sam vec ostavio na forumu.
Pokusacu jos da guglam, a u tebi hvala puno na trudu.
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 25.06.2011. u 23:56 · pre 186 meseci #13
Jos nesto mi ja palo na pamet. Koliko znam Ubuntu po defaultu ukljucuje security modul koji se zove AppArmor. Ja bih ga izgasio i onda probao sve ponovo.

sudo /etc/init.d/apparmor kill
sudo update-rc.d -f apparmor remove


Takodje obavezno proveri koju javu imas instaliranu. Ako je openjdk onda najbolje da je obrises i instaliras sun jdk. Pozz
Re: Remote jstatd access 26.06.2011. u 12:41 · pre 186 meseci #14
Na serveru imam instaliran i OPenJdk i SUN jdk i jrockit.Trenuno je primaran SUN jdk.
Sta ce za bezbednost znaciti kad isklucim apparmor?
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Remote jstatd access 26.06.2011. u 17:43 · pre 186 meseci #15
Ja sve nesto sumnjam da AppArmor blokira sun jdk posto ne postoje fabricka pravila za AppArmor i sun jdk.

Mozda bi mogao za pocetak da proveris sledeci log fajl kako bi bio siguran da je AppArmor problem.

grep jstatd /var/log/kern.log
grep rmiregistry /var/log/kern.log


Ako ga izgasis definitivno neces biti secured kao pre.
Re: Remote jstatd access 28.06.2011. u 19:41 · pre 186 meseci #16
Posle mukotrpnog guglanja uspeo sam da resim problem.
Na serveru sam pokrekuo jmx umesto jstatd-a i sve radi kako treba.
Ukoliko nekom zatreba neka u sefiniciju start metode u okviru catalina.sh ubaci kod

Code:

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote \
   -Dcom.sun.management.jmxremote.port=9004 \
   -Dcom.sun.management.jmxremote.ssl=false \
   -Dcom.sun.management.jmxremote.authenticate=false
   -Djava.rmi.server.hostname=`/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`"


i moze se nakaciti i preko jconsole-a i preko visualvm-a.
U svakom slucaju hvala Miroslav Strugarevic-u na nesebicnoj pomoci oko resavanja ovog problema
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme