<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jon Segador &#187; monitorización</title>
	<atom:link href="http://jonsegador.com/tag/monitorizacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonsegador.com</link>
	<description>Desarrollador web y android, con todo lo que ello implica</description>
	<lastBuildDate>Mon, 23 Jan 2012 19:24:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Instalar y entender mytop (monitorizando mysql)</title>
		<link>http://jonsegador.com/2009/08/instalar-y-entender-mytop-monitorizando-mysql/</link>
		<comments>http://jonsegador.com/2009/08/instalar-y-entender-mytop-monitorizando-mysql/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 22:01:06 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Servidores]]></category>
		<category><![CDATA[monitorización]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mytop]]></category>

		<guid isPermaLink="false">http://jonsegador.com/?p=26</guid>
		<description><![CDATA[Voy a empezar con un post un poco técnico pero de gran utilidad para la monitorización del servidor de bases de datos mysql.

mytop es una utilidad que sirve para monitorizar las consultas mysql, procesos, y rendimiento general del servidor de bases de datos mysql. Entre otras cosas, nos permite visualizar las consultas lentas (slow queries) que se ejecutan en la base de datos.]]></description>
			<content:encoded><![CDATA[<p>Voy a empezar con un post un poco técnico pero de gran utilidad para la monitorización del servidor de bases de datos mysql.</p>
<p><strong>mytop</strong> es una utilidad que sirve para monitorizar las consultas mysql, procesos, y rendimiento general del servidor de bases de datos mysql. Entre otras cosas, nos permite visualizar las consultas lentas (slow queries) que se ejecutan en la base de datos.</p>
<h4><span style="text-decoration: underline;">Instalación</span></h4>
<p>Vamos a realizar al instalación en un servidor CentOS. Para hacerlo, necesitamos tener instalados en nuestro servidor Perl , DBI y Term::ReadKey. Los dos primeros suelen estar instalados por lo que pasamos a instalar <strong>Term::ReadKey</strong>.</p>
<pre>wget http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz
tar -zxvf TermReadKey-2.30.tar.gz
cd TermReadKey-2.30
perl Makefile.PL
make
make test
make install</pre>
<p>Ahora pasamos a intalar <strong>mytop</strong></p>
<pre>wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.4.tar.gz
tar -zxvf mytop-1.4.tar.gz
cd mytop-1.4
perl Makefile.PL
make
make test
make install</pre>
<p><span id="more-26"></span></p>
<h4><span style="text-decoration: underline;">Configurar mytop</span></h4>
<p><strong>mytop</strong> soporta diferentes parámetros para conectarnos a la base de datos, usuario, contraseña, etc. Para este ejemplo siempre nos conectaremos a una sola base de datos. Debido a esto, podemos crear un archivo de configuración para no tener que pasar los parámetros al comando.</p>
<p>Este es nuestro archivo de configuración de ejemplo, que guardaremos por ejemplo en /root/.mytop, suponiendo que sea el usuario root el que va a ejecutar este comando:</p>
<pre>user=admin
pass=password
host=localhost
db=prueba
delay=5
port=3306
socket=
batchmode=0
header=1
color=1
idle=1</pre>
<h4><span style="text-decoration: underline;">Explicación</span></h4>
<p>Vamos a explicar cada una de las líneas anteriores:</p>
<pre>user=admin
pass=password</pre>
<p>Usuario y contraseña del usuario de la base de datos a la que nos vamos a conectar. Si queremos pasar estos datos por parámetros, usaremos:</p>
<p>mytop -u admin -p password</p>
<pre>host=localhost
db=prueba</pre>
<p>Servidor de la base de datos (en este caso se encuentra en el propio servidor, por lo que indicamos localhost) y el nombre de la base de datos a la que nos queremos conectar. Conseguiríamos el mismo resultado con estos parámetros:</p>
<p>mytop -h localhost -d prueba</p>
<pre>delay=5</pre>
<p>Tiempo que tarda en refrescarse la página de resultados. De nuevo, mediante parámetros:</p>
<p>mytop -s 5</p>
<pre>port=3306</pre>
<p>Puerto al que nos conectamos a mysql (3306 por defecto). Por parámetros:</p>
<p>mytop -port 3306</p>
<pre>socket=</pre>
<p>Por defecto está vacío (none). Si tenemos el servidor de mysql en nuestro mismo servidor, quizás queramos conectarnos mediante un socket.</p>
<pre>batchmode=0</pre>
<p>Su valor será 0 o 1. Si el valor es 1, nos mostrará por pantalla todas las consultas una detrás de otra sin recargar la página. Útil si programamos un cron y guardamos el resultado de mytop a un archivo. Si el valor es 0, cada vez que se refresque la página se borrarán las consultas anteriores. Para hacerlo mediante parámetros:</p>
<p>mytop -b 0</p>
<pre>header=1</pre>
<p>Lo ponemos a 1 para que nos muestre la cabecera al ejecutar mytop. Una vez ejecutado el programa, podremos ocultar y mostrar la cabecera pulsando la tecla <strong>h</strong>. De nuevo, por comandos:</p>
<p>mytop -header 1</p>
<pre>color=1</pre>
<p>Nos mostrará el resultado del comando mediante colores. Para indicar esta opción mediante parámetros:</p>
<p>mytop -color 1</p>
<pre>idle=1</pre>
<p>Para indicar si queremos que nos muestre en los resultados las consultas que están dormidas (sleeping). Si no está activado, nos mostrará los resultados en orden inverso, es decir, las consultas más lentas primero.</p>
<p>mytop -i 1</p>
<h4><span style="text-decoration: underline;">Entender mytop</span></h4>
<p>Este es el aspecto que tiene el comando mytop en funcionamiento. Por cierto, para ejecutarlo, solamente debemos llamarlo por línea de comandos:</p>
<pre>mytop</pre>
<p><a href="http://jonsegador.com/wp-content/mytop-image1.gif"><img class="alignnone size-medium wp-image-28" title="mytop-image1" src="http://jonsegador.com/wp-content/uploads/mytop-image1-300x112.gif" alt="" width="346" height="146" /></a></p>
<p>Empezando por arriba a la izquierda, podemos ver <strong>Queries</strong>. El número que está a la izquierda (en la imagen, 369.1k), es el número total de consultas que se han hecho al servidor de mysql desde que se inició. A la derecha de <strong>Queries</strong> podemos ver <strong>qps</strong>, que son las consultas por segundo (queries per second), aunque más precisamente este número representa la media de consultas por segundo que se han hecho desde que el servidor fue iniciado.</p>
<p>Debajo de la primera línea podemos ver <strong>qps now</strong>. <span>Este dato representa el número medio de consultas por segundo que ha hecho el servidor desde la última vez que mytop recargó los resultados. </span>A la derecha podemos ver <strong>Slow </strong>y<strong> Slow qps</strong>.  El valor de <strong>Slow</strong><span> es el número de consultas lentas que se han ejecutado desde que el servidor está en marcha. El valor de </span><strong>Slow qps</strong><span> es la media del número de consultas lentas por segundo que se han ejecutado desde la última recarga de los resultados de mytop.</span></p>
<p>Seguimos más a la derecha, donde podemos ver unos datos muy importantes que tienen que ver con el servidor mysql en sí. Esto es <strong>Se/In/Up/De(%)</strong>, que significa Select, Insert, Update, Delete. Esto nos indica cual es el porcentaje de Select, Insert, Update o Delete que se ejecutan en el servidor. Justo debajo podemos ver de nuevo el porcentaje de Se/In/Up/De de las consultas que se han ejecutado desde el último refresco de mytop.</p>
<p>La <strong>key efficiency</strong> nos indica el porcentaje de consultas que están utilizado una clave/índice (key) en la consulta. Esto es importante ya que cualquier consulta que se haga sin utilizar una clave/índice, le llevará más tiempo a la base de datos mostrar los resultados.</p>
<p><strong>Bps in/out</strong><span><span> indica la media de bytes por segundo entrantes a la base de datos y el segundo dato es la media de bytes por segundo salientes (recibiendo y mostrando información)</span><span>. El dato </span></span><strong>Now in/out</strong><span><span> es la media de bytes entrantes y salientes (in/out) por segundo desde que mytop ha refrescado la página.</span></span></p>
<h4><span style="text-decoration: underline;">Accesos directos</span></h4>
<p>Estos comandos los podemos ejecutar cuando mytop está ejecutándose para obtener datos adicionales.</p>
<pre><span>  d - Mostrar solo datos de una base de datos determinada
  f - Mostrar información completa de una consulta
  F - Desactivar todos los filtros
  h - Mostrar solamente los datos de un servidor específico
  H - Mostrar/ocultar cabecera
  i - Mostrar/ocultar consultar dormidas (sleeping)
  k - Matar una consulta
  p - Pausar la vista
  m - Para cambiar de 'consultas más lentas' a 'consultas por segundo'
  o - Invertir orden
  q - Salir
  r - Resetear todos los valores (mediante FLUSH STATUS en el servidor)
  s - Cambiar el tiempo de refresco
  t - Cambiar al modo vista
  u - Mostrar solamente de un usuario específico

</span></pre>
<h4><span style="text-decoration: underline;"><span>Instalar interfaz web</span></span></h4>
<p>Podemos instalar una aplicación web para monitorizar los resultados de mytop mediante nuestro navegador. Para ello vamos a instalar la aplicación <strong>ajaxMyTop</strong> desde <a href="http://sourceforge.net/projects/ajaxmytop">http://sourceforge.net/projects/ajaxmytop</a>. Simplemente lo copiaremos a un directorio de nuestra web y editando el archivo config.php, indicaremos los parámetros que hemos explicado en pasos anteriores.</p>
<p><a href="http://jonsegador.com/wp-content/ajaxmytoppng.jpeg"><img class="alignnone size-medium wp-image-29" title="ajaxmytoppng" src="http://jonsegador.com/wp-content/uploads/ajaxmytoppng-300x133.jpg" alt="" width="300" height="133" /></a></p>
<p>Por seguridad, es recomendable permitir acceso a este panel solamente a ips conocidas (la nuestra). Para ello, haremos uso de un archivo .htaccess que copiaremos en la carpeta donde hemos instalado ajaxMyTop. Este archivo contendrá el siguiente contenido:</p>
<pre>Order deny,allow
Deny from all
# Permitimos acceso solamente a una ip conocida
Allow from 192.168.1.2</pre>
<p>Y eso es todo, cualquier duda en los comentarios.</p>
<p>Para realizar el post me he basado en estos artículos:<br />
<a href="http://forums.theplanet.com/lofiversion/index.php/t59458.html" target="_blank">http://forums.theplanet.com/lofiversion/index.php/t59458.html</a><br />
<a href="http://hostingaldescubierto.com/wordpress/2007/11/20/instalar-mytop/" target="_blank">http://hostingaldescubierto.com/wordpress/2007/11/20/instalar-mytop/</a><br />
<a href="http://jeremy.zawodny.com/mysql/mytop/mytop.html" target="_blank">http://jeremy.zawodny.com/mysql/mytop/mytop.htm</a><br />
<a href="http://mysqlhacker.com/kabir/php/using-mytop-to-interactively-monitor-mysql.html" target="_blank">http://mysqlhacker.com/kabir/php/using-mytop-to-interactively-monitor-mysql.html</a><br />
<a href="http://www.opensourcetutorials.com/tutorials/Server-Side-Coding/Administration/mytop/page1.html" target="_blank">http://www.opensourcetutorials.com/tutorials/Server-Side-Coding/Administration/mytop/page1.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jonsegador.com/2009/08/instalar-y-entender-mytop-monitorizando-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

