Piszki Lab

Analiza przypadku w języku przodków…

vCenter Hyperic 5.8.2: Monitorowanie stanu serwera Tomcat i tcServer (na przykładzie vCenter 5.5).

| 0 comments

W środowisku vSphere używane są przez firmę VMware dwa serwery aplikacyjne, jednym jest Apache Tomcat (przeważnie w wersji 6) i jego odpowiednik z pod znaku Spring Source, czyli Pivotal tcServer (przeważnie w wersji 7). Wszystkie ważne rozwiązania takie jak np. vCenter działają na tcServer, rozwiązania mniej ważne są powoli migrowane z Tomcata na tcServer. W domyślnej konfiguracji obydwa rozwiązania wspierają zdalny monitoring, ale nie mają go włączonego. Monitorowanie serwerów aplikacyjnych napisanych w języku Java, odbywa się za pomocą konsoli JMX Remote Access. Lokalnie zainstalowany agent vCenter Hyperic na serwerze vCenter 5.5 wykryje prawidłowo serwer SpringSource tc Runtime 7.0 ale nie będzie potrafił się do niego podłączyć.

tc1

W przypadku tcServer (na przykładzie vCenter 5.5 zainstalowanego w Windows Server 2012R2), musimy otworzyć plik C:\Program Files\VMware\Infrastructure\tomcat\conf\server.xml w którym znajdziemy następującą linię:

<Listener port=”${base.jmx.port}” className=”com.springsource.tcserver.serviceability.rmi.JmxSocketListener” useSSL=”false” passwordFile=”${catalina.base}/conf/jmxremote.password” bind=”127.0.0.1″ authenticate=”true” accessFile=”${catalina.base}/conf/jmxremote.access”/>

Base.jmx.port jest określany w pliku catalina.properties, domyślna wartość to –1. Możemy poprawić tę wartość bezpośrednio w catalina.properties lub server.xml (najlepiej wprowadźmy standardową wartość 6969). Dalej mamy dwie opcje do wyboru, przestawiamy parametr “authenticate” na “false”, zrobimy restart i agent podłączy się bez problemu. Możemy też pozostawić autentykację włączoną i przygotować plik jmxremote.password. Biorąc pod uwagę, że konsola JMX jest wystawiana lokalnie, agent Hyperica też jest instalowany lokalnie a użytkownik admin ma prawo tylko do odczytu (jmxremote.access), możemy spokojnie wyłączyć autentykację. Po restarcie vCenter zaglądamy do Hyperica:

vc2

Wszystkie metryki vCenter są zbierane prawidłowo przez Agenta. Do czego to może się przydać? Alert mailowy powiadamiający o wyłączeniu się vCenter to raz, a dwa to możliwość użycia vSphere App HA do restartu usługi vCenter. To jak najbardziej możliwe, vSphere App HA działa niezależnie od vCenter, komunikuje się bezpośrednio z vCenter Hyperic który zarządza akcjami wykonywanymi przez agenta.

W przypadku dowolnego Apache Tomcat, musimy odszukać plik startup.sh (bat) lub setenv.sh (bat) i dodać na jego początku linię:

CATALINA_OPTS=”-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

Jeżeli mamy do czynienia z systemem Windows Server, i powyższych plików nie znajdujemy, to musimy odszukać właściwy plik wrapper.conf do którego dodajemy kolejną linię wrapper.java.additional.n z zawartością jak wyżej (bez CATALINA_OPTS=). Właściwą lokalizację wszystkich plików konfiguracyjnych możemy wyciągnąć bezpośrednio z vCenter Hyperic z konfiguracji danego serwera, pole “catalina.base”. Pamiętajmy też, że każda kolejna konsola JMX powinna być wystawiana na kolejnych portach (np. 6969, 6968, 6967), tak jak to ma miejsce w przypadku naszego vCenter (Hyperic wykrył trzy usługi Tomcat i jedną tcServer). Jeżeli w naszym klastrze DRS mamy włączony monitoring aplikacji, to dodatkowo możemy z poziomu vSphere Web Clienta sprawdzić stan naszych serwerów aplikacyjnych (i oczywiście przypisać im stosowną politykę App HA).

vc1

Monitorowanie zasobów za pomocą vCenter Hyperic jest dość kosztowne w środowisku wirtualnym, każdy agent zużywa ok 135mb ram (plus cykle procesora). Mimo to warto go używać, szczególnie w przypadku krytycznych aplikacji. Tylko vCenter Hyperic da wgląd w tak szczegółowe statystyki i tylko on pozwoli wykonać automatyczne akcje na aplikacji takie jak min. restart.

Oceń ten artykuł:
[Total: 0 Average: 0]

Dodaj komentarz

Required fields are marked *.