In questo articolo vedremo come configurare una webapp su Amazon Elastic BeanStalk per attivare il monitoraggio JMX su Apache Tomcat sfruttando uno script di configurazione di ebextensions.
Il seguente script, jmx-remote.config, inserito dentro la directory ebextension, consente di attivare il monitoraggio JMX su Tomcat. Oltre allo script, è necessario copiare altri due file:
- la libreria catalina-jmx-remote, che trovate sul sito di Apache Tomcat;
- il file server.xml da sostituire a quello di Apache Tomcat
Ricordo che gli script di configurazione vanno formattati secondo le regole di YAML
Lo script di configurazione è il seguente:
container_commands:
copy-jmx-jar:
command: cp .ebextensions/catalina-jmx-remote.jar /usr/share/java/tomcat7/
replace-tomcat-server-xml:
command: cp .ebextensions/server.xml /etc/tomcat7/server.xml
Il file server.xml è lo stesso che trovare di default sul server al path /etc/tomcat7/server.xml con l’aggiunta del listener Jmx Remote:
<!– REMOTE JMX –>
<Listener className=”org.apache.catalina.mbeans.JmxRemoteLifecycleListener”
rmiRegistryPortPlatform=”10001″ rmiServerPortPlatform=”10001″ />
Una volta attivato il jmx per il monitoraggio, sarà necessario attivare un tunnel ssh verso la posta 10001 per potersi poi collegare con un tool come Jvisualvm.
Download: [download id=”10″]