{"id":945,"date":"2011-08-07T15:39:15","date_gmt":"2011-08-07T15:39:15","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=945"},"modified":"2011-08-07T15:39:15","modified_gmt":"2011-08-07T15:39:15","slug":"utiliser-jmeter-pour-superviser-un-serveur-tomcat","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2011\/08\/07\/utiliser-jmeter-pour-superviser-un-serveur-tomcat-945.html","title":{"rendered":"Utiliser JMeter pour superviser un serveur Tomcat"},"content":{"rendered":"<p>Voici une nouvelle version du tutoriel <a title=\"JMeter \u2013 Superviser un serveur Tomcat\" href=\"http:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\/jmeter-superviser-un-serveur-tomcat\">JMeter pour superviser un serveur Tomcat<\/a>. On passe \u00e0 la version 7 de Tomcat et avec un JMeter en fran\u00e7ais.<\/p>\n<p>Nous allons donc utiliser JMeter pour supervision le fonctionnement d&rsquo;un serveur Tomcat \u00e0 travers son interface de statut.<\/p>\n<p>Le pr\u00e9-requis est bien entendu d&rsquo;avoir \u00e0 disposition un serveur Tomcat (sous Unix\/Linux ou Windows) tournant sur un Java JDK.<\/p>\n<p>On va commencer par \u00ab\u00a0ouvrir\u00a0\u00bb le service de statut du Tomcat. Pour cela, <!--more-->\u00e9diter le fichier de configuration des utilisateurs<\/p>\n<pre>vi &lt;TOMCAT_HOME&gt;\/conf\/tomcat-users.xml<\/pre>\n<p>Le fichier contient une section tomcat-users (en commentaire) comme ceci :<\/p>\n<pre>&lt;tomcat-users&gt;\r\n&lt;!--\r\n\u00a0 &lt;role rolename=\"tomcat\"\/&gt;\r\n\u00a0 &lt;role rolename=\"role1\"\/&gt;\r\n\u00a0 &lt;user username=\"tomcat\" password=\"tomcat\" roles=\"tomcat\"\/&gt;\r\n\u00a0 &lt;user username=\"both\" password=\"tomcat\" roles=\"tomcat,role1\"\/&gt;\r\n\u00a0 &lt;user username=\"role1\" password=\"tomcat\" roles=\"role1\"\/&gt;\r\n--&gt;\r\n&lt;\/tomcat-users&gt;<\/pre>\n<p>Il faut modifier cette section pour ajouter les r\u00f4les admin, manager, manager-gui et les affecter \u00e0 l&rsquo;utilisateur \u00ab\u00a0tomcat\u00a0\u00bb. Ce qui donne quelque chose comme cela\u00a0:<\/p>\n<pre>&lt;tomcat-users&gt;\r\n\u00a0 &lt;role rolename=\"tomcat\"\/&gt;\r\n\u00a0 &lt;role rolename=\"role1\"\/&gt;\r\n\u00a0 &lt;role rolename=\"admin\"\/&gt;\r\n\u00a0 &lt;role rolename=\"manager\"\/&gt;\r\n\u00a0 &lt;role rolename=\"manager-gui\"\/&gt;\r\n\u00a0 &lt;user username=\"tomcat\" password=\"tomcat\" roles=\"tomcat,admin,manager,manager-gui\"\/&gt;\r\n\u00a0 &lt;user username=\"both\" password=\"tomcat\" roles=\"tomcat,role1\"\/&gt;\r\n\u00a0 &lt;user username=\"role1\" password=\"tomcat\" roles=\"role1\"\/&gt;\r\n&lt;\/tomcat-users&gt;<\/pre>\n<p>V\u00e9rifions que la supervision Tomcat fonctionne, pour cela on d\u00e9marre son serveur Tomcat, et avec un navigateur, on saisie l&rsquo;URL :<\/p>\n<pre>http:\/\/debiansvr.milamberspace.net:8080\/manager\/status?XML=true<\/pre>\n<p><em>o\u00f9 debiansvr.milamberspace.net est le nom ou l&rsquo;adresse IP de son Tomcat.<\/em><\/p>\n<p>Une fen\u00eatre d&rsquo;authentification appara\u00eet dans le navigateur, saisir le login tomcat et le mot de passe associ\u00e9 (ici tomcat).<\/p>\n<p>Ensuite, le navigateur fait appara\u00eetre le statut d&rsquo;ex\u00e9cution de Tomcat :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Statut Tomcat\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_007.png\" alt=\"\" width=\"989\" height=\"424\" \/><\/p>\n<p><span style=\"text-decoration: underline;\">NB.<\/span> dans l&rsquo;URL, le param\u00e8tre XML=true (attention au respect de la casse), permet un affichage \u00e9pur\u00e9, n\u00e9cessaire \u00e0 JMeter pour le fonctionnement de la supervision Tomcat.<\/p>\n<p><span style=\"text-decoration: underline;\">NB2.<\/span> on remarquera \u00e9galement qu&rsquo;il y a par d\u00e9faut deux connecteurs. Le connecteur AJP utilis\u00e9 en g\u00e9n\u00e9ral le module mod_jk coupl\u00e9 \u00e0 un Apache HTTPD frontal, et le connecteur HTTP qui lui est le connecteur g\u00e9n\u00e9ralement utilis\u00e9 pour les acc\u00e8s directs \u00e0 Tomcat via le port 8080. Noter le nom de ces connecteurs, car il faudra indiquer \u00e0 JMeter lequel on veut superviser.<\/p>\n<p><span style=\"text-decoration: underline;\">Passons au param\u00e9trage de JMeter.<\/span><\/p>\n<p>Apr\u00e8s avoir d\u00e9marr\u00e9 JMeter, on commence par ajouter un <strong>Groupe d&rsquo;unit\u00e9s<\/strong> au niveau du <strong>Plan de test<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout du groupe d'unit\u00e9s\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_002.png\" alt=\"\" width=\"866\" height=\"121\" \/><\/p>\n<p>Dans la configuration du <strong>Groupe d&rsquo;unit\u00e9s<\/strong>, on choisira le <strong>Nombre d&rsquo;it\u00e9rations<\/strong> \u00e0 <strong>Infini<\/strong> (en cochant la case) afin d&rsquo;avoir un outil de supervision qui s&rsquo;arr\u00eate seulement quand l&rsquo;op\u00e9rateur le d\u00e9cide.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration du groupe d'unit\u00e9s\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_003.png\" alt=\"\" width=\"472\" height=\"264\" \/><\/p>\n<p>On ajoute ensuite un \u00e9l\u00e9ment <strong>Gestionnaire d&rsquo;autorisation HTTP<\/strong> afin de g\u00e9rer l&rsquo;authentification demand\u00e9e au niveau du navigateur par Tomcat pour voir le statut du serveur.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout du gestionnaire d'autorisation HTTP\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_004.png\" alt=\"\" width=\"938\" height=\"180\" \/><\/p>\n<p>Dans la configuration du <strong>Gestionnaire d&rsquo;autorisation HTTP<\/strong>, on ajoutera dans :<\/p>\n<ul>\n<li>Le champ <strong>Nom d&rsquo;utilisateur<\/strong> : tomcat (en fonction du param\u00e9trage du fichier tomcat-users.xml)<\/li>\n<li>Le champ <strong>Mot de passe<\/strong> : tomcat (en fonction du param\u00e9trage du fichier tomcat-users.xml)<\/li>\n<li>Les autres champs sont laiss\u00e9s vide.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration du gestionnaire d'autorisation http\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_005.png\" alt=\"\" width=\"839\" height=\"132\" \/><\/p>\n<p>\u00a0On continue en ajoutant un \u00e9chantillon <strong>Requ\u00eate HTTP<\/strong> pour effectuer la requ\u00eate permettant de demander le statut du serveur.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout d'une requ\u00eate HTTP dans JMeter\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_006.png\" alt=\"\" width=\"925\" height=\"323\" \/><\/p>\n<p>Dans la configuration de l&rsquo;\u00e9l\u00e9ment <strong>Requ\u00eate HTTP<\/strong>, on modifiera la valeur des champs suivants :<\/p>\n<ul>\n<li><strong>Nom\u00a0<\/strong>: Statut Tomcat<\/li>\n<li><strong>N<\/strong><strong>om ou adresse IP<\/strong>\u00a0: debiansvr.milamberspace.net (ou l&rsquo;adresse IP du serveur)<\/li>\n<li><strong>Port\u00a0<\/strong>: 8080<\/li>\n<li><strong>Chemin\u00a0<\/strong>: \/manager\/status<\/li>\n<li><strong>Envoyer les param\u00e8tres avec la requ\u00eate<\/strong>\u00a0: Clic que le bouton <strong>Ajouter<\/strong><\/li>\n<li>Nouvelle valeur\u00a0: <strong>Nom\u00a0<\/strong>: XML et <strong>Val<\/strong><strong>eur<\/strong> : true.<\/li>\n<li>Sans oublier \u00e0 la fin, de cocher le champ <strong>Utiliser comme moniteur<\/strong>.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration de la requ\u00eate HTTP comme moniteur de connecteurs Tomcat\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_008.png\" alt=\"\" width=\"788\" height=\"624\" \/><\/p>\n<p>Afin de demander le statut du serveur r\u00e9guli\u00e8rement, on ajoute un \u00e9l\u00e9ment <strong>Compteur de temps fixe<\/strong> qui laissera un intervalle de temps entre chaque demande.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout d'un Compteur de temps fixe\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_009.png\" alt=\"\" width=\"892\" height=\"232\" \/><\/p>\n<p>On param\u00e8tre l&rsquo;\u00e9l\u00e9ment <strong>Compteur de temps fixe<\/strong> pour une fr\u00e9quence de 5000 ms (5s) de rafra\u00eechissement des donn\u00e9es de monitoring.\u00a0<em><\/em><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration du compteur de temps fixe\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_010.png\" alt=\"\" width=\"364\" height=\"105\" \/><\/p>\n<p>Il ne reste plus qu&rsquo;\u00e0 ajouter le r\u00e9cepteur <strong>Moniteur de connecteurs<\/strong> pour suivre de mani\u00e8re graphique l&rsquo;\u00e9tat du serveur Tomcat.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout du r\u00e9cepteur Moniteur de connecteurs JMeter\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_011.png\" alt=\"\" width=\"885\" height=\"340\" \/><\/p>\n<p>Dans le champ situ\u00e9 en bas du <strong>Moniteur de connecteurs, <\/strong>on indique le d\u00e9but du nom du connecteur que l&rsquo;on souhaite superviser. Ici, je veux voir le connecteur HTTP, donc la valeur du champ est\u00a0:<\/p>\n<pre>\"http-<\/pre>\n<p>Noter les guillemets ouvrantes dans son d\u00e9but de nom (particularit\u00e9 Tomcat 7).<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"S\u00e9lection du connecteurs \u00e0 superviser\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_014.png\" alt=\"\" width=\"883\" height=\"564\" \/><\/p>\n<p>Au final, notre arbre JMeter est le suivant :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Arbre JMeter pour la supervision Tomcat\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_017.png\" alt=\"\" width=\"306\" height=\"162\" \/><\/p>\n<p>Et voil\u00e0, on peut d\u00e9marrer le d\u00e9but de la supervision, en lan\u00e7ant JMeter via le menu habituel.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Lancement JMeter\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_012.png\" alt=\"\" width=\"393\" height=\"78\" \/><\/p>\n<p>Le petit carr\u00e9 vert en haut \u00e0 droite de JMeter nous montre que la supervision est active.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Carr\u00e9 vert JMeter\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_013.png\" alt=\"\" width=\"86\" height=\"51\" \/><\/p>\n<p>Voici l&rsquo;affichage de l&rsquo;\u00e9tat de sant\u00e9 du serveur Tomcat \u00e0 un instant T :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Premier \u00e9cran supervision Tomcat avec JMeter\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_015.png\" alt=\"\" width=\"886\" height=\"560\" \/><\/p>\n<p style=\"text-align: left;\">Et voici le graphique de performance du serveur Tomcat durant un petit tir de charge en deux paliers que j&rsquo;ai r\u00e9alis\u00e9 sur ce serveur.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Deuxi\u00e8me \u00e9cran supervision Tomcat avec JMeter\" src=\"\/wp-content\/images\/jmeter-37-tomcat-supervision\/jmeter-supervision-tomcat_016.png\" alt=\"\" width=\"877\" height=\"440\" \/><\/p>\n<p>Quelques commentaires du graphique\u00a0:<\/p>\n<ul>\n<li>On retrouve donc les deux paliers. La courbe des unit\u00e9s d&rsquo;ex\u00e9cution de Tomcat refl\u00e8te assez bien la charge du serveur par rapport au nombre d&rsquo;utilisateurs simul\u00e9s.<\/li>\n<\/ul>\n<ul>\n<li>Le serveur Tomcat est \u00ab\u00a0en forte activit\u00e9\u00a0\u00bb d\u00e8s le d\u00e9but du tir.<\/li>\n<\/ul>\n<ul>\n<li>La m\u00e9moire JVM encha\u00eene les passages du Garbage collector (l&rsquo;aspect dent-de-scie).<\/li>\n<\/ul>\n<p>Voil\u00e0 pour ce petit tutoriel sur la supervision d&rsquo;un Tomcat 7. Bon courage.<\/p>\n<p>Remarque, il est tout \u00e0 fait possible de superviser plusieurs serveurs Tomcat avec le m\u00eame script. Pour cela on ajoute autant de Requ\u00eate HTTP agissant en tant que moniteur de connecteurs, que de serveurs Tomcat \u00e0 superviser.<\/p>\n<p>&nbsp;<\/p>\n<p>.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici une nouvelle version du tutoriel JMeter pour superviser un serveur Tomcat. On passe \u00e0 la version 7 de Tomcat et avec un JMeter en fran\u00e7ais. Nous allons donc utiliser JMeter pour supervision le fonctionnement d&rsquo;un serveur Tomcat \u00e0 travers son interface de statut. Le pr\u00e9-requis est bien entendu d&rsquo;avoir \u00e0 disposition un serveur Tomcat &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2011\/08\/07\/utiliser-jmeter-pour-superviser-un-serveur-tomcat-945.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Utiliser JMeter pour superviser un serveur Tomcat<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,57,56],"tags":[330,266,339,338],"class_list":["post-945","post","type-post","status-publish","format-standard","hentry","category-jmeter","category-supervision","category-tomcat","tag-jmeter","tag-moniteur","tag-supervision","tag-tomcat"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/comments?post=945"}],"version-history":[{"count":11,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/945\/revisions"}],"predecessor-version":[{"id":956,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/945\/revisions\/956"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}