Analizando el arranque de tu Linux con bootchart

Josemaría | 17 de septiembre de 2013 | 3 comentarios

herramientas ¿Qué es lo que hace tu Linux durante el arranque?¿Hay alguna forma de ver exactamente que se ejecuta, cuales son los procesos dependientes que genera y cuanto tiempo se invierte en cada uno de ellos de forma que podamos, si es necesario, saber donde tenemos que tocar para conseguir un arranque más rápido?

Bootchart es una herramienta que obtiene y procesa fácilmente esta información y genera como resultado un gráfico fácilmente interpretable. Como muestra, aquí tenéis la gráfica resultado en un servidor VPS con Debian 7 (ya sabes, pulsa sobre la gráfica para verla con mejor resolución):

Gráfica de bootchart 0.9 en un servidor VPS con Debian 7

La instalación básica en una Debian estable requiere dos paquetes (y sus dependencias): bootchart y pybootchartgui. El primero es el que recopila los datos y el segundo el que genera el gráfico a partir de ellos. bootchard se instalará por defecto en el directorio /sbin y su archivo de configuración se llama bootchard.conf y se encuentra en el directorio /etc. pybootchartgui se encuentra en el directorio /usr/bin/. Aunque tenemos muchas opciones interesantes para explorar, vamos a limitarnos a ver el funcionamiento tal y como queda recién instalado y sin tocar nada.

Una vez instalados ambos, tenemos que hacer que el kernel de nuestro Linux ejecute el proceso que realiza la recogida de datos lo antes posible y esto lo hacemos introduciendo dicha llamada directamente en GRUB. Si estamos en un equipo desde el que tenemos acceso directo a teclado y monitor lo más fácil es introducir a mano la opción necesaria en el momento del arranque. Para ello, una vez que nos aparece el menú de GRUB pulsamos la letra “e” (de editar) e introducimos la opción init=/sbin/bootchartd. De esta forma el proceso sólo se llamará en este arranque puesto que la opción no queda salvada:

Editando la entrada de Grub para invocar a bootchar

Si no tenemos acceso al teclado de la máquina en el momento del arranque (en un Hosting VPS, por ejemplo) el método pasa por introducir esta opción en los archivos de configuración de GRUB. El método es diferente según que usemos GRUB o GRUB2. En GRUB basta con editar el archivo /boot/grub/menu.lst, buscar el bloque correspondiente al kernel con el que qeremos realizar el arranque e introducir la misma opción que hemos visto antes. Por ejemplo, así:

title           Debian GNU/Linux, kernel 3.2.0-4-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.2.0-4-amd64 root=/dev/vda1 ro quiet no-kvmclock init=/sbin/bootchartd
initrd          /boot/initrd.img-3.2.0-4-amd64

En GRUB2 tenemos que editar el fichero /etc/default/grub, buscar la línea etiquetada como GRUB_CMDLINE_LINUX_DEFAULT e incluir al final de lo que allí aparezca la opción de carga de bootchartd. Así, por ejemplo:

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/disk/by-uuid/35a07870-ac1a-489f-a19b-629
6dca46903 init=/sbin/bootchartd"

En este segundo caso, una vez editado el fichero tendremos que ejecutar el programa update-grub para que los cambios tomen efecto.

Un cuarto método, disponible si estamos usando un equipo de escritorio con un gestor de ventanas instalado, es usar uno de los muchos programas existentes para configurar grub de forma gráfica. Por ejemplo, grub-customizer:

Configurando el arranque de bootchartd con grub-customizer

Sea cual sea el método que hayamos usado, en el próximo arranque se ejecutará bootchartd, pero no olvides que, salvo en el primer caso, cuando ya no quieras usarlo tendrás que deshacer los cambios efectuados.

Bien. Tras reiniciar la máquina se invocará al proceso llamado bootchartd que recogerá la información necesaria y la guardará en un archivo llamado bootchart.tgz en el directorio /var/log. Para crear el gráfico basta con invocar a pybootchartgui:

Generando el gráfico de bootchart con pybootchartgui

Nota que se toma por defecto la ubicación y nombre del archivo original y que, por tratarse este de un nombre genérico, cada vez que reiniciemos y/o generemos un nuevo gráfico machararemos los datos del anterior a menos que los renombremos manualmente o le echemos un vistazo a la forma de modificarlos mediante los parámetros en línea y/o opciones de configuración adecuadas. Y listo. A continuación tenéis otro ejemplo correspondiente a un servidor más modesto que el anterior montado sobre VirtualBox:

Gráfica de bootchart 0.9 en una máquina de virtualbox con Debian 7

En la paquetería de Manjaro Linux (e, imagino, que ocurre igual con Arch) se usa otro programa similar también llamado bootchart pero que, en realidad, integra en un sólo servicio la recolección de datos y la generación del gráfico final. El gráfico resultante presenta, además, algunos aspectos diferenciadores. Podéis ver una muestra en la siguiente imagen que corresponde con el arranque de un PC de escritorio:

Gráfica de bootchart 1,2 en un PC de escritorio con Manjaro Linux

Para usarlo basta instalar el paquete llamado bootchart. El programa que tendremos que invocar se llamará igualmente bootchartd pero en este caso reside en el directorio /usr/bin. Podemos usar cualquiera de los métodos anteriormente vistos para invocarlo pero el parámetro a incluir en las opciones de carga del kernel será init=/usr/bin/bootchard. El archivo de configuración también es sensiblemente diferente y está en el directorio /etc/systemd. Cuando reiniciamos la máquina, el archivo que bootchart genera es ya directamente un gráfico en formato svg. El directorio destino del mismo es, igualmente, /var/log pero en este caso el nombre incluye una marca de tiempo (por ejemplo bootchart-20130916-0800.svg) de forma que si realizamos sucesivos reinicios tendremos disponible una colección de gráficos para su posterior estudio sin necesidad de ninguna intervención manual.

Existe aún, al menos, otro tercer sistema similar a estos denominado bootchart2 y que, por el momento, no he tenido ocasión de probar. Ahí queda el enlace por si alguien se anima…

NOTA: Desde hace ya unos meses estoy usando Manjaro Linux (con Openbox como window manager) como distribución de escritorio, tanto en mi ordenador de sobremesa como en mi portatil. Manjaro es una distribución rolling release, muy, muy ligera basada en Arch Linux que me está gustanado bastante, así que previsiblemente hablaremos bastante de ellas en lo sucesivo.
Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes

Plugins de memcached y bind9 para munin

Josemaría | 5 de septiembre de 2013 | Comentar

herramientasEl otro día dejamos munin instalado y funcionando con los plugins más comunes que vienen de serie y se configuran de forma automática sin (casi) necesidad de manipulación extra alguna. El principal problema que vamos a encontrar con esta herramienta de monitorización es que cuando tratemos de instalar alguno de los centenares de plugins adicionales de que dispone nos encontraremos, según el caso, una información bastante irregular en cuanto a la forma en que tenemos que hacerlo: dependencias, configuración, etc. Hoy vamos a instalar un par de estos plugins adicionales de forma manual y así conoceremos un poco mejor sus tripas y veréis claramente a lo que me refiero.

La primera herramienta que debemos de conocer a la hora de añadir plugins adicionales es munin-node-configure, un script que nos ayuda a identificar que plugins nos pueden resultar útiles y ayudarnos a instalarlos. Como ya vimos, la instalación base de munin identifica muchos de los elementos que pueden resultarnos útiles y los configura e instala, pero si existe algún requisito o dependencia adicional para que funcionen no es capaz de resolverlo aunque si deja un mensaje informándonos de ello si usamos el parámetro --suggest. No suelen ser muy descriptivos y suele hacer falta hacer uso de Google para encontrar la solución (por ejemplo, si te falta la librería libcache-cache-perl para que funcione el plugin de MySQL el mensaje que aparece es “Missing dependency Cache::Cache”), pero bueno, algo es algo.

Para configurar el plugin de bind9 no necesitamos instalar nada adicional, pero si hacer algunos cambios en la configuración de nuestro servidor DNS. En el archivo named.conf.options (típicamente en el directorio /etc/bind) tenemos que introducir la siguiente línea dentro del bloque de options:

statistics-file "/var/cache/bind/named.stats";

Y añadir al final del fichero el siguiente bloque:

logging {
        channel b_query {
                file "/var/log/bind9/query.log" versions 2 size 1m;
                print-time yes;
                severity info;
        };
        category queries { b_query; };
};

A continuación creamos el directorio /var/log/bind9, le damos permisos de escritura al usuario bind, reiniciamos el demonio de nuestro servidor DNS y ejecutamos el comando rndc stats. Con esto el servicio dejará los logs detallados de estadísticas de consultas en ese directorio. A continuación tenemos que configurar el plugin de munin para que las lea y nos las muestre de forma gráfica. Para ello editamos el fichero /etc/munin/plugin-conf.d/munin-node y añadimos los siguientes bloques:

[bind9]
user root
env.logfile   /var/log/bind9/query.log

[bind9_rndc]
user root
env.querystats /var/cache/bind/named.stats

Por último, creamos un enlace a los plugins en el directorio de configuración como explicábamos el otro día:

ln -s /usr/share/munin/plugins/bind9 /etc/munin/plugins/bind9
ln -s /usr/share/munin/plugins/bind9_rndc /etc/munin/plugins/bind9_rndc 

Y ya sólo nos queda reiniciar el demonio munin-node. Casi inmediatamente tendremos una nueva categoría de gráficos dedicada a la monitorización de nuestro servicio de nombres:

Plugin de bind9 para munin

La configuración del plugin para memcached es bastante más sencilla. Lo primero que debemos de hacer es instalar el paquete libcache-memcached-perl (en una debian o derivada). A continuación añadimos el siguiente bloque en el archivo /etc/munin/plugin-conf.d/munin-node:

[memcached_*]  
env.host 127.0.0.1  
env.port 11211  
env.timescale 3

Creamos los enlaces:

ln -s /usr/share/munin/plugins/memcached_bytes /etc/munin/plugins/memcached_bytes
ln -s /usr/share/munin/plugins/memcached_counters /etc/munin/plugins/memcached_counters
ln -s /usr/share/munin/plugins/memcached_rates /etc/munin/plugins/memcached_rates

Reinciamos munin-node y ya:

Plugin de memcached para munin

NOTA: Tienes información bastante detallada acerca del fichero de configuración munin-node, las opciones que admite y su significado en este enlace.
Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes

7 enlaces 7 (y LIII)

Josemaría | 7 de julio de 2013 | 2 comentarios

enlaces rápidos

Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes
Categorías: enlaces rápidos
Etiquetas:

Series, series y más series…

Josemaría | 4 de julio de 2013 | 6 comentarios

icono televisiónNunca me han gustado las series. Salvo Friends, claro. A mi juicio no son más que telenovelas para públicos “diferentes” donde el desarrollo de la trama se hace forzadamente lento capítulo a capítulo sin que apenas pase nada en ninguno de ellos. Y, que diablos, que no hay tantas historias que necesiten 10 horas (¡o más!) para narrarse y que puedan ser realmente interesantes. Se salvan, claro, aquellas que presentan una estructura de capítulos autoconcluyentes atados por el hilo conductor de sus protagonistas que van mostrando algún tipo de evolución más o menos conseguida. Pero vamos, eso ya estaba ahí con Los hombres de Harrelson, El superheroe americano, Luz de luna… ¿Os acordáis?

El chip me cambió hace dos años. Desde que nació Juanito empecé a verle la utilidad a estas pequeñas piezas de pseudo-cine que duran entre 40 y 50 minutos: el tiempo ideal durante el que eres capaz de mantener el interés (¡y los ojos abiertos!) una vez que has acostado a la bestezuela. Máxime en estos tiempos en los que los directores se han vuelto locos y es casi imposible encontrar una peli con un metraje inferior a los 120 minutos ¿Tanto ha bajado el precio del celuloide? Ah, espera, que ya no se usa celuloide… :-P

Pero bueno, a lo que vamos. Durante el último año he descubierto varias nuevas series y alguna de ellas ha sido gracias a recomendaciones de gente de la que me fío. Para “devolver el favor” (y buscar posibles reemplazos) voy a hacer aquí una lista de lo que estoy viendo o he visto últimamente y si las considero aprovechables o no. Ojo: sólo series que aún están en la primera temporada. Para las consolidadas no hacen falta recomendaciones y hay fuentes mejores que este blog. Ahí van:

House of CardsHouse of Cards. Posiblemente lo mejor que he visto en lo que va de año. La conocí a través de Antonio de Error 500, un malagueño al que jamás haré caso de una recomendación músical (¡tiene un gusto pésimo!) o para comprarme un portátil (demasiado pijo) pero que me ha descubierto de vez en cuando buenos libros. Y ahora una serie. La empecé con miedo porque El ala oeste de la Casa Blanca me parece, a pesar de sus miles de fans, un truño falso y blandengue y me temía algo similar. Para nada. Se trata de una serie que refleja de la forma más real y descarnada las miserias, corruptelas y servidumbres entre políticos, periodistas y grandes empresas. Si, si, como ver el telediario todos los días. La temporada 2 se emitirá en 2014 pero aún no tiene fecha de estreno.

Bates MotelBates Motel. Los Bates, madre e hijo, acaban de comprar el Motel que hicieron famoso en la película Psicosis y se trasladan allí con objeto de empezar una nueva vida. Eso si: en la época actual de iphones y demás. La perturbadora relación entre madre e hijo se presenta bastante creíble pero hay algo que falla y que no me deja disfrutarla. Es predecible, los personajes son muy planos… no he sido capaz de aguantar más de los tres primeros episodios que le concedo a una prueba. Descartada.

Hannibal Hannibal. Y otra de psicópatas. Esta recrea los años en los que el Doctor Hannibal Lecter (para los más jóvenes, psiquiatra obsesionado por el canibalismo y popularizado en la literatura gracias a las novelas de Thomas Harris y en el cine con El silencio de los corderos) dirige una consulta íntimamente ligada con la unidad del FBI de ciencias del comportamiento, la división encargada de capturar a los asesinos en serie más sanguinarios y transtornados. Los personajes son interesantes y están bien construidos (en particular Will Graham, el alter-ego del doctor Lecter que lucha por controlar sus inclinaciones) y no se ahorran detalles en la recreación de los escenarios del crimen. Los diálogos y situaciones encaminados a reflejar el complicado mundo de las enfermedades mentales, su tratamiento y su padecimiento también están muy logrados. La segunda temporada también está ya garantizada para el año que viene y yo la espero con apetito. Por cierto: el doctor Lecter se presenta como un exquisito gourmet conocedor de los más delicados y sofisticados manjares, pero después de verlo hablar sobre el jamón serrano, cortarlo usando un cuchillo de cocina y comerlo con tenedor el personaje pierde bastante… ;-)

ArrowArrow. Está centrada en Flecha Verde, un superheroe de segunda fila de la DC que, por si no lo conoces, no se trata más que de un clónico de Batman: un millonario playboy que ha perdido a su padre en extrañas circunstancias y que con la ayuda de un extraordinario entrenamiento físico y mental y un montón de juguetitos de alta tecnología se convierte en un justiciero enmascarado. Lo único destacable de la serie es el impresionante físico del protagonista. Salvando esto, está enfocada a un público demasiado adolescente para engancharme (copiando el estilo de Smallville). Alejaos de ella a no ser que tengáis menos de 17 años o disfrutéis viendo bellos y esculturales cuerpos masculinos.

VikingsVikings – Descubierta gracias a mi amigo Kade (quién, por cierto, se ha embarcado últimamente en El contragolpe, un proyecto que os encantará si os gusta el deporte). Su punto fuerte es la posibilidad de conocer los ritos y costumbres de una cultura tan diferente a la nuestra y la confianza de que, estando avalada por el Canal History, debería de estar bien documentada. La historia que relata no da para mucho (al menos hasta ahora) pero, inexplicablemente, me he tragado la primera temporada sin pestañear y aplaudo que hayan renovado por una segunda.

DefianceDefiance. Esta tampoco me ha funcionado. Personajes poco convincentes, ambientación y maquillaje muy falsos… Su atractivo debería de ser la historia de convivencia y enfrentamiento entre distintas razas intergalácticas muy diferentes que se ven obligadas a convivir en una tierra post-apocalíptica pero, a mi al menos, sólo me transmite sopor y aburrimiento. A la hoguera.

Zero HourZero Hour. Recomendación de mi amigo Guillermo (que tiene su hogar digital por aquí). En EE.UU. no ha funcionado bien y, después del tercer episodio, la relegaron a un horario de segunda categoría. A mi, sin embargo, me enganchó desde el primer momento a pesar de que no tenía ninguna papeleta. Mezcla una trama que combina de forma incoherente las conspiraciones pseudo-histórico-religiosas de los libros de Dan Brown con las aventuras de Indiana Jones. Pero mola. Que queréis que os diga: asumo mis contradicciones…

ElementaryElementary – Sherlock Holmes está de moda, es evidente. Tenemos la adaptación al cine de Downey Jr., la fabulosa serie británica que lleva ya dos temporadas (y regresa en octubre con la tercera) y ahora esto que, posiblemente, es el peor producto de los tres pero que, aún así, aguanta el tipo y se hace entretenida. En este caso el nuevo Sherlock vive en el New York de nuestros días y Watson (Luci Liu) es un asistente contratado por su padre para ayudarle a superar sus problemas de adicción a las drogas. Las historias son irregulares y a veces abusan del síndrome del mayordomo (el culpable es ese personaje que sale cinco minutos al principio del episodio y no le volvemos a ver el pelo hasta el final) pero la mayoría de las veces te dejan participar de la deducción que conduce a la resolución del caso. Lo dicho: no es Sherlock pero ayuda a hacer agradable la espera hasta octubre.

ACTUALIZACIÓN: Utopía es otra serie inglesa a la que he llegado gracias a la recomendación de Anuxi y que, después de tan solo el primer capítulo, presenta un aspecto inquietante. La trama gira alrededor de un misterioso cómic dibujado por un genetista internado en un psiquiátrico que murió en circunstancias bastante extrañas y que alguien tiene bastante interés en que no salga a la luz. The hour y The fall son dos series inglesas recomendadas por mi excompañero Lorenzo que me he devorado en apenas una semana. La primera es una historia sobre periodismo y espionaje en la BBC durante los años de la guerra fría. La segunda trata sobre un asesino en serie en el complicado mundo de las dos Irlandas.
Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes
Categorías: culturales, televisión
Etiquetas: , ,

Instalación y primeros pasos con Munin en Debian 7

Josemaría | 17 de junio de 2013 | 4 comentarios

herramientas Munin es un sistema de monitorización muy similar a cacti (que ya hemos tratado hace poco por aquí) pero que en lugar de usar snmp usa su propio programa recolector de información (llamado munin-node). La instalación básica sobre un único servidor (que es la que vamos a ver) es muy sencilla y proporciona más de 60 gráficas y cerca de 100 indicadores del estado y rendimiento de nuestro servidor sin que apenas tengamos que despeinarnos. Está escrito en perl, viene con una amplia colección de plugins (a la que se le añaden las múltiples contribuciones de los usuarios) y también admite monitorización de servidores windows.

La versión actual en los repositorios estables de Debian wheezy es 2.0.6-4 (de aproximadamente un año de antiguedad) que será la que instalaremos aquí. Si usas los repositorios de la versión inestable (sid) tienes disponible la versión 2.0.14. La máquina donde queremos instalarlo es un servidor LAMP típico con Apache2 y MySQL. Los paquetes necesarios son estos. Y sus dependencias, claro:

apt-get install munin munin-node munin-plugins-extra
NOTA: La versión de munin en una debian estable es la 2.06 mientras que en backports tienes disponible la 2.0.19. Si quieres instalar esta última basta con que sigas las instrucciones que se te indican aquí.

La instalación por defecto en Debian configura Munin para que sólo pueda accederse a la instancia web de monitorización desde la misma máquina en la que hemos realizada la instalación. Para solucionar esto y poder acceder en remoto a través de un navegador tenemos que editar el fichero /etc/apache2/conf.d/munin en el que se encuentra la configuración de la instancia web. Buscamos la directiva <Directory /var/cache/munin/www> y en su interior comentamos las líneas siguientes:

# Order allow,deny
# Allow from localhost 127.0.0.0/8 ::1

Y añadimos esta otra:

Order deny,allow

Luego repetimos la misma operación en las directivas <Location /munin-cgi/munin-cgi-graph> y <Location /munin-cgi/munin-cgi-html>. Con esto el acceso será libre para cualquiera que conozca la URL de acceso. Si queremos proteger la entrada mediante usuario y contraseña podemos, por ejemplo, usar htdigest como contábamos por aquí en su día.

Y listo. Ahora recargamos la configuración de apache:

service apache2 reload

Y ya podemos acceder a través de la URL http://ip-del-servidor/munin/. La pantalla inicial, una vez introducida la identificación, es así de sosa minimalista:

Primera ejecución de munin. Pantalla inicial.

Vamos a pararnos un poco a ver donde ubica sus diferentes elementos. Como ya hemos comentado, munin usa una estructura cliente servidor con nodos recolectores en cada uno de los equipos que queremos monitorizar y un elemento que centraliza la información de todos ellos. El daemon del primer elemento se llama munin-node y el del segundo munin. Ambos son servicios que residen, como es habitual, en el directorio /etc/init.d y responden a los argumentos habituales (start y stop). munin-node responde, además, a restart (necesario cuando añadimos un nuevo plugin o modificamos la configuración de uno ya existente) y alguno mas.

Los archivos de configuración se encuentran en /etc/munin/. Existen, entre otros, un archivo por cada uno de los servicios (munin.conf y munin-node.conf) y un directorio donde se encuentran los plugins en uso de este nodo. El procedimiento para activar los plugins es crear un enlace en este directorio al archivo que contiene el código del plugin. Los que vienen por defecto con la instalación se encuentran en /usr/share/munin/plugins/.

Por último, los datos de la instancia web de monitorización se encuentran en /var/cache/munin/www/, la base de datos en bruto en /var/lib/munin/ (no, no usa mysql como hace cacti), y los logs en /var/log/munin.

Volvemos al pantallazo anterior. En la parte central tenemos acceso a las diferentes máquinas monitorizadas ordenadas por grupos (en nuestro caso sólo una) Mientras que en la barra de la izquierda, abajo, tenemos un menú organizado por categorías con acceso directo a las gráficas diarias, semanales, mensuales o anuales de cada una de ellas. De cualquiera de las formas accedemos a una colección de gráficas pero con una pequeña diferencia. Si accedemos a través del menú superior llegamos a una página donde se encuentran todas las gráficas almacenadas en dos versiones, diaria y semanal (semanas, en realidad, de ocho días :-) , muy bien pensado para detectar mejor las secuencias):

Munin - Gráficas del sistema diarias y semanal

Mientras que si pulsamos en el lateral sólo se nos muestra la lista de las gráficas de la categoría elegida y exclusivamente en la modalidad de vista elegida según la letra que pulsemos: diaria (d), semanal (w), mensual (m, 33 días aproximadamente) o anual (y, 13 meses):

Munin - Gráficas de postfix diarias

Pulsando sobre cualquier gráfica accedemos a la vista en mosaico de las cuatro vistas disponibles antes mencionadas y si de nuevo pulsamos sobre cualquiera de ellas llegamos a una vista ampliada de la misma con un panel de control desde el que podemos, analítica o gráficamente, hacer la ampliación o reducción de cualquier zona de la misma:

Munin - Gráfica de Load Average

NOTA: Lógicamente, los gráficos de una instalación recién concluida no presentan este aspecto. Tendrás que esperar al menos 24 horas para ello ;-)

Lo normal tras la instalación inicial es que, como nos ha pasado, no te instale los plugins correspondientes a apache y mysql debido a que falta algún prerequisito para ello. munin viene con un asistente llamado munin-node-configure que identifica cuales de los plugins que tienes en tu sistema están activos, cuales te podrían ser útiles… Incluso te asiste dándote el comando que necesitas para crear los enlaces necesarios al archivo y directorio adecuados. Échale un vistazo al enlace anterior de este párrafo para más detalles.

Para MySQL, en concreto, basta con que instaléis el siguiente paquete:

apt-get install libcache-cache-perl

Para apache2 necesitamos también instalar una librería extra de perl:

apt-get install libwww-perl

Además, debemos añadir la siguiente línea (o asegurarnos de que ya está) en el fichero /etc/apache2/mods-available/status.conf:

ExtendedStatus On

Y habilitar los módulos status e info de Apache:

a2enmod status info

Por último, reiniciamos el servidor web:

apache2ctl graceful

Creamos los enlaces a los plugins (fíjate en la forma diferente de hacerlo para mysql que se trata de un wildcard plugin) y reiniciamos el recolector de munin de esta máquina:

cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/apache_accesses
ln -s /usr/share/munin/plugins/apache_processes
ln -s /usr/share/munin/plugins/apache_volume
ln -s /usr/share/munin/plugins/mysql_ mysql_bin_relay_log
ln -s /usr/share/munin/plugins/mysql_ mysql_commands
ln -s /usr/share/munin/plugins/mysql_ mysql_connections
ln -s /usr/share/munin/plugins/mysql_ mysql_files_tables
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_bpool
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_bpool_act
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_insert_buf
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_io
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_io_pend
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_log
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_rows
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_semaphores
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_tnx
ln -s /usr/share/munin/plugins/mysql_ mysql_myisam_indexes
ln -s /usr/share/munin/plugins/mysql_ mysql_network_traffic
ln -s /usr/share/munin/plugins/mysql_ mysql_qcache
service munin-node restart

Y con esto (tal vez tengas que esperar unos minutos para ver los resultados) ya tenemos dos categorías nuevas (apache y mysql2) con las gráficas correspondientes. Un par de ejemplos de cada una de ellas:

Munin - Gráfica de threads de Apache

Munin - Gráfica de operaciones de MySQL

Existen muchos otros plugins de monitorización que os pueden ser útiles (asterisk, bind9, memcached, varnish…). En algunos casos puede ser necesario instalar algún otro requisito o realizar algún cambio en la configuración como nos ha ocurrido con Apache y MySQL. Como siempre, lo mejor en el caso de que simplemente creando el enlace al plugin este no funcione es buscar información (que es lo que yo he hecho con estos dos, no creáis que hay muchas otras formas de resolver estas cosas ;-) ). También es sencillo eliminar cualquier gráfico que no nos interese en absoluto simplemente borrando el enlace del plugin correspondiente y reiniciando munin-node. Si tenemos duda acerca del plugin que genera la gráfica, el nombre del archivo aparece en la pantalla de los datos que nos permite realizar zooms de los datos. Añadir otros nodos para centralizar la monitorización de los mismos en esta máquina es bien fácil, pero ya lo dejamos para otro día ;-)

En definitiva, se trata de una herramienta mucho más potente que cacti que nos proporciona toda la información que podemos desear de una máquina y más sin apenas consumir recursos. Hecho en falta, tal vez, la facilidad de cacti para crear vistas personalizadas con ciertos gráficos que te interesa consultar de forma habitual. Y, por supuesto, no es tan cómoda como Cacti para monitorizar electrónica de red usando snmp. Pero bueno, no se puede tener todo ¿no?

Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes

7 enlaces 7 (y LII)

Josemaría | 7 de junio de 2013 | Comentar

enlaces rápidos

Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes
Categorías: enlaces rápidos
Etiquetas:

Entradas patrocinadas

Josemaría | 6 de junio de 2013 | Comentar
Entrada patrocinada
especiales A partir de ahora tal vez habrá, por primera vez en sus ocho años de existencia, alguna entrada patrocinada en este blog. Estarán lo suficientemente diferenciadas del resto con una línea de subtitulo como la que aparece aquí arriba, un icono y un estilo diferenciado. Como esta entrada, vaya. Todo transparente y sin engaños. (Esta, en realidad, no está patrocinada ¿Alguien ve un enlace en algún sitio, eh? ;-) )

Las motivaciones son dos. La primera el dinero, claro. La publicidad en los blogs está cada vez peor. Sobre todo la no intrusiva (básicamente enlaces laterales que es lo que siempre ha habido por por aquí) y, aunque os parezca increíble, las ofertas por publicar entradas patrocinadas para un “blog de medio pelo” como este superan en importe a lo que muchos medios nacionales le pagan a un colaborador por una pieza pequeña. No necesito la publicidad del blog para vivir, la verdad, pero me he mal acostumbrado a que sufrague el coste de su mantenimiento (dominios, hosting…) y a que me permita algún que otro capricho que algunas veces comparto por aquí con vosotros (chismes, ordenadores, cámaras…) y otras veces disfruto con mi esposa y mi pequeño para compensarles por el tiempo que esta dedicación me sustrae.

Lo segundo que me ha llamado la atención en la oferta que me han hecho es que no se trataba de hablar bien (o mal) de un producto que ni siquiera conozco (es decir, de engañar a los lectores), sino de engañar a Google para posicionar determinadas búsquedas. Eso que tradicionalmente se llama SEO y que a mi siempre me ha parecido un poco de prestidigitación y algo de charlatanería. Engañar a Google, una empresa cada vez más dictatorial con sus normas e imposiciones me parece hasta sano, para que negarlo. Además, me resulta divertido. Mientras me hacían la primera propuesta me he acordado de un viejo juego que practicaban dos amigos periodistas que trabajaban en medios diferentes y que luego acabaron casándose. El juego consistía en que cada día elegían una palabra antes de saber que les tocaría escribir al día siguiente. Luego, escribieran lo que escribieran, tenían que insertar esa palabra en el texto de forma coherente. Estoy hablando de mediados de los 90 cuando Internet era casi inexistente en nuestro país y Larry y Sergey aún se preocupaban más por sus espinillas que por nuestros datos. Tal vez estos dos amigos míos, sin saberlo, inventaron el SEO.

Imagino que, como siempre, habrá a quién le parezca mal, habrá quién lo vea bien, y quién lo verá mal hasta que lo invite a una cena con los primeros pagos y a partir del momento lo empezará a ver bien de nuevo. Ya nos contamos… ;-)

Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes
Categorías: patrocinadas
Etiquetas:

2922 días

Josemaría | 2 de junio de 2013 | 4 comentarios

amnistía internacional

O, lo que es lo mismo, 8 años
en los que he cambiado 4 veces de trabajo,
he publicado 999 entradas notas noticias chorradas,
habéis dejado 4600 comentarios,
he paseado por seis países en tres continentes diferentes,
me he casado,
me he mudado una vez de casa
y 5 de hosting,
he trabajado de forma habitual con 10 distribuciones diferentes de Linux y con cinco gestores distintos de ventana,
he visto pasar seis versiones de Windows
(¡un par de ellas horrendas!),
he tenido un hijo,
han pasado por aquí algo más de 2 millones de visitantes
(¡muchos de ellos no humanos!)
un millón y medio distintos
y el resto masocas reincidentes,
que han visto en total unos 7 millones de páginas…

¿Quién dice que no he aprovechado el tiempo?
NOTA: Los datos de visitantes y páginas son una estimación en base a la evolución de visitas que ha tenido el blog y a los datos estadísticos de los últimos cuatro años que son los que conservo.
Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes
Categorías: blogosfera, efemérides, muy personales
Etiquetas:

#WP10, WordPress cumple 10 años

Josemaría | 27 de mayo de 2013 | 2 comentarios

icono de wordpress Hoy cumple 10 años de vida WordPress, la mejor y más extendida plataforma para crear blogs. Y, por supuesto, la que da soporte a este. ¡Felicidades!

wordpress cumple 10 años

Se han organizado más de 600 700 celebraciones en todo el mundo, muchas de ellas en nuestro país.

Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes

Chuletillas (y XXXVIII) – Cambiar la resolución de un vídeo con ffmpeg

Josemaría | 18 de mayo de 2013 | 2 comentarios

chuleta Y otra chuletilla más sobre formatos de vídeo. Si quieres cambiar de tamaño un archivo de vídeo (por ejemplo de FullHD 1280×720 a HD 1080×608) con ffmpeg y desde línea de comando, basta con ejecutar esto:

ffmpeg -i input.avi -filter:v scale=1080:-1 -acodec copy output.avi

Se llevará su ratito (entre una y cuatro horas dependiendo del procesador que tengas, claro) pero al final el resultado es impecable. Además, si así lo deseas, puedes cambiar el formato del vídeo de salida simplemente cambiando la extensión (por ejemplo, output.mkv te dará un archivo de salida en ese formato).

El valor -1 que acompaña a la escala horizontal le indica a ffmpeg que calcule el número de píxeles de la vertical para que el vídeo mantenga la proporcionalidad adecuada. Si queremos especificarlo manualmente o romper la proporcionalidad para crear un vídeo anamófico usamos este otro formato:

ffmpeg -i input.avi -filter:v scale=1080x500 -acodec copy output.avi

Y una nota: he tenido problemas cuando uso estos comandos con un vídeo en formato .mkv con pistas de subtítulos. El vídeo y el audio no presentan problemas pero las pistas de subtítulos no se codifican correctamente en el vídeo final. La solución más rápida y sencilla que he encontrado es usar mkvmerge (una utilidad gráfica para manipular las pistas de un archivo mkv) de la siguiente forma: antes de reescalar extraigo las pistas de subtítulos y las borro del original; a continuación ejecuto el comando anterior para realizar el reescalado y, por último, vuelvo a usar mkvmerge para reintegrar los subtítulos en el vídeo final. Son apenas 5 minutos maś que no se notan frente al total del proceso.

Compártelo:
    emailPDFPrintBitacoras.comIdenti.caTwitterdel.icio.usDiigoFacebookMeneameBarraPuntoNetvibes
Categorías: chuletillas
Etiquetas: ,