Instalación y configuración básica de Cacti en Debian para monitorizar un host

herramientas La instalación más sencilla (y, me atrevería a decir, más frecuente que he tenido que realizar) que suele hacerse con Cacti es aquella que se se usa para monitorizar los recursos de un único host (típicamente un servidor dedicado o VPS en una empresa de hosting) en el que el propio Cacti se encuentra instalado de forma local.

Cacti necesita para funcionar un servidor web (apache2, por ejemplo) con php, una base de datos de mysql-server, las rrdtools y snmp (cliente y agente). Seguramente tendremos ya instalados apache2 y mysql-server y, si no, añade los paquetes apache2, php5 y mysql-server al comando siguiente:

sudo apt-get install cacti snmp snmpd rrdtool

Durante la instalación se nos pedirá si queremos configurar de forma automática la base de datos que necesita cacti (en caso afirmativo, se nos pedirá la contraseña de root de mysql-server para crear dicha base de datos y un usuario de acceso a la misma) y el servidor web que usaremos (apache2 en nuestro caso).

Una vez concluida la instalación podremos acceder a Cacti con la URL http://ip_o_nombre_del_servidor/cacti. En el primer acceso se ejecutará un asistente en el que se nos pedirá aceptar la licencia de uso, decidiremos el tipo de instalación (nueva o actualización de una versión anterior) y se realizará un chequeo de dependencias:
chequeo inicial de dependencias durante la instalación de Cacti

Una vez cumplimentado esto se nos redirecciona a la ventana de login. El usuario inicial es admin y su password la misma. Inmediatamente después de realizar el primer login se nos forzará a cambiar esta password, así que tenla pensada de antemano 😉
Login inicial en Cacti. Usuario admin y password admin

Cacti está ya funcionando y recogiendo datos de forma automática del servidor en el que se encuentra instalado. Si lo dejamos unos minutos para que le de tiempo a recoger algunos y pulsamos sobre la solapa de gráficos (arriba a la izquierda) veremos que ya tenemos gráficas (no tan completas como estas que llevan ya más de 24 horas, claro) de carga de la CPU, ocupación de memoria, número de procesos y número de usuarios conectados.
Solapa de entrada a los gráficos de Cacti
Gráficos iniciados de forma automática para localhost en cacti

Para monitorizar el tráfico de red es preciso «tirar» de snmp. Lo primero que tenemos que hacer es configurar el daemon de snmp para que Cacti pueda leer de él. Para ello editamos el fichero /etc/snmp/snmpd.conf y quitamos el comentario que deshabilita la siguiente línea:

rocommunity public localhost

Reiniciamos el servicio (sudo service snmpd restart) y volvemos a Cacti para configurar la nueva gráfica. Para ello entramos en la opción Devices del menú de la izquierda, pulsamos sobre la entrada de localhost (la única que tendremos) y, en la ficha resultante, editamos el campo destacado en la imagen de aquí abajo (el correspondiente a la versión de SNMP que aparecerá como Not in Use) y luego pulsamos el botón de Save. Si todo ha salido bien y Cacti es capaz de contactar con el demonio SNMP de nuestro equipo, arriba a la izquierda aparecerán las líneas de información que también puedes ver resaltadas en este gráfico:
Añadiendo SNMP al dispositivo localhost en Cacti

En la parte inferior de esta misma ficha de datos, en el bloque de «Associated Data Queries» debería de aparecer ahora una línea etiquetada como «SNMP – Interface Statistics» (a la derecha de «Add Data Query»). La seleccionamos, pulsamos el botón de Add y, a continuación, el de Save.
Añadiendo gráficos de SNMP en Cacti

Bien, ahora volvemos a la parte superior de la página y pulsamos en el enlace de «Create Graphs for this Host». En la página que nos aparece marcamos los interfaces de red cuyo tráfico queremos monitorizar y, ya que estamos, las unidades de disco cuya ocupación queremos controlar (eth0 y sda1, respectivamente, en el ejemplo aquí abajo). Bajo las líneas correspondientes a los interfaces de red tenemos, como puedes ver, un selector que nos permite elegir entre diferentes tipos de gráficos. A mi particularmente la que aparece por defecto (In/Out bits) es la que me parece más cómoda pero, ya sabéis, para gustos… 😉
Añadiendo gráficos de SNMP en Cacti

Pulsamos Create y listo. Los datos se empezarán a tomar inmediatamente y, a los pocos minutos, si volvemos a entrar en la solapa de Gráficos tendremos ya las primeras muestras disponibles. Después de 24 horas tus nuevas gráficas de tráfico de red y de ocupación de disco lucirán como estas:
Gráfica de tráfico de red en Cacti
Gráfica de ocupación de disco en Cacti

El siguiente gráfico que añadiremos será el de activida de lectura y escritura en discos, muy interesante sobre todo para monitorizar la actividad de nuestro disco de swap y detectar si la máquina está corta de memoria. También es el que más «trabajo» nos va a dar para ponerlo en marcha, así que atención.

Lo primero que necesitas es descargarte y descomprimir este fichero (extraído de este hilo del foro de Cacti que es de donde he sacado las instrucciones que te voy a contar) donde encontraras dos archivos con extensión XML. El que se llama net-snmp_devio.xml tienes que copiarlo al directorio /usr/share/cacti/site/resource/snmp_queries/ de la máquina. El otro, llamado cacti_data_query_ucdnet_device_io.xml, tienes que importarlo desde la opción «Import Template» que aparece en el menú de la izquierda.
Importando plantilla para IO de disco en Cacti

Si el resultado es correcto veremos algo como esto:
Importando plantilla para IO de disco en Cacti

Ahora volvemos a la opción de Devices, volvemos a seleccionar localhost y en la parte inferior, en el mismo bloque de ??Associated Data Queries?. ahora nos aparecerá una nueva línea etiquetada como «ucd/net – Device I/O» que debemos de seleccionar y, luego, pulsar el botón de Add y salvar los cambios.
Añadiendo una gráfica de tráfico de disco en Cacti

Volvemos a pulsar ahora en el enlace de «Create Graphs for this Host» y en el nuevo bloque que nos aparece seleccionamos las líneas correspondientes a los discos cuya actividad queremos seguir. En el ejemplo de aquí abajo se han seleccionado sda1 (la partición donde reside el sistema) y sdb (el disco de swap).
Añadiendo una gráfica de tráfico de disco en Cacti

Cambiamos al pie del bloque el tipo de gráfico si así lo deseamos y pulsamos el botón de Create. Listo:
Gráfica de tráfico de disco en Cacti

Y para terminar, un pantallazo con todos los gráficos de monitorización que tenemos ahora en nuestro servidor tras configurar sus dimensiones para que puedan verse cómodamente con un sólo vistazo (pulsa sobre él para verlo ampliado):
Mosaico de gráficas de monitorización de un host con Cacti

Chuletillas (y XXXVI) – Rotar vídeos con mencoder o con ffmpeg

chuleta Y otra receta simplota de comandos útiles para hacer modificaciones sencillas a un vídeo. Cuando queremos rotar un vídeo (ya sabéis, aquello de que habéis cogido la cámara en vertical y ahora cada vez que queréis ver al niño hacer sus monerías cogéis tortícolis) podemos usar mencoder. El comando base es el siguiente:

mencoder -vf rotate=1 -oac copy -ovc lavc original.avi -o resultado.avi

El tipo de rotación se selecciona con el argumento -vf rotate=1. El anterior gira el vídeo 90 grados en el sentido de las agujas del reloj, mientras que si lo sustituimos por -vf rotate=2 lo hará en sentido antihorario. Mediante el argumento -oac copy definimos como se trasladará el audio del vídeo y con -ovc lavc especificamos el tipo de codec que usaremos en el vídeo final. Podemos ver las opciones disponibles que tenemos en nuestro sistema mediante el siguiente comando:

mencoder -oac help -ovc help

El argumento -vf, que es el que nos permite realizar transformaciones sobre el vídeo, tiene muchas otras opciones disponibles que también podemos consultar ejecutando:

mencoder -vf help

La opción copy siempre está disponible pero no funcionará con el argumento -ovc (¡si copiamos el original no rotamos!) y algunas de las opciones disponibles puede que nos obliguen a especificar parámetros adicionales (bitrate, fixed_quant, pass, etc.).

Por último, original.avi es el nombre del vídeo a rotar y con el argumento -o resultado.avi definimos como se llamará el vídeo resultante.

Si prefieres usar ffmpeg puedes hacerlo así:

ffmpeg -i original.avi -vf "transpose=1" resultado.avi

El valor del parámetro transpose indica el tipo de transformación, siendo 1 una rotación de 90 grados en el sentido de las agujas del reloj. El valor 2 giraría 90 grados en sentido contrario.

ACTUALIZACIÓN: Otras dos transformaciones interesantes en esta misma línea que podemos aplicar mediante el argumento -vf son mirror y flip. Si queremos girar el vídeo 180 grados podemos aplicarlas ambas de modo conjunto (-vf mirror,flip).

Chuletillas (y XXXV) – Instalar xampp en Chakra Linux

chuleta Si queremos instalar xampp en Chakra Linux nos encontramos con que esta distribución sólo está disponible ya para 64 bits mientras que xampp se distribuye en forma de script sólo para sistemas de 32 bits. La solución pasa, sencillamente, por instalar unas librerías de compatibilidad y listo. Manos a la obra, pues. En un primer paso sustituimos las gcc-libs por las gcc-libs-multilib:

sudo pacman -S gcc-libs-multilib

Luego, tenemos dos opciones, descargar e instalar xampp siguiendo sus instrucciones como haríamos normalmente o usar el paquete ccr disponible (aunque ligeramente desactualizado):

ccr -S xampp

En cualquiera de ambos casos, xampp se instalará en el directorio acostumbrado (/opt/lampp) y responderá a los comandos y opciones habituales.

NOTA: Siempre que he realizado operaciones de este tipo y he instalado versiones de librerías de 32 bits en distribuciones de 64 (concretamente en Ubuntu y Fedora) luego, en algún momento, he tenido problemas de dependencias no resueltas a la hora de realizar alguna instalación y/o actualización. Aunque de momento no he tenido ningún problema similar con Chakra no llevo suficiente tiempo con esta distribucion como para asegurar que esto esté mejor resuelto.
ACTUALIZACI?N: Olvidaos de esto: xampp ya está disponible en versión de 64 bits.

Instalando memcached en Debian y habilitando su uso con WordPress

herramientas memcached es uno de los sistemas de caché para servidores web más usado. Usa una zona de la memoria RAM del servidor web de tamaño configurable como caché y funciona bien tanto en sitios pequeños y discretos como en grandes sistemas con múltiples servidores. Facebook, Twitter o Youtube, por ejemplo, usan este sistema de cacheado. El 85% de los 20 sitios con más tráfico de Internet lo usan, en realidad. Nada mejor, pues, para estrenar una pequeña sección acerca de sistemas y extensiones de cacheado para apache ¿no?

Partimos para la instalación de una Debian en la que ya tenemos un servidor web apache y la versión 5 de php (paquetes apache2 y php5). Para instalar memcached en una Debian he tenido que recurrir a usar «paquetería» de wheezy (testing) porque parece que hay algún problema de dependencias en la versión estable (squeeze) y la librería de extensión para trabajar con PHP no compilaba correctamente. Así que manos a la obra. El primer paso es instalar el servidor de memcached:

apt-get install memcached

El servicio se instala, como es habitual, en el directorio /etc/init.d y responde a los argumentos start, stop, restart, force-reload y status. En el directorio /usr/share/memcached/scripts existe un script llamado start-memcached que es el encargado de realizar el inicio automático y que toma la configuración del archivo memcached.conf en el directorio /etc. Dentro de este fichero de configuración una de las opciones más interesantes es la que dice a memcached cuanta RAM va a usar como caché. Por defecto son 64M, pero en sistemas con muy poca RAM tal vez nos convenga bajarlo. Mi VPS tiene sólo 512M de RAM y yo he bajado esos 64M a la mitad. Para ello basta con cambiar la línea -m 64 por -m 32 y reiniciar el servicio.

Otra de las opciones interesantes en ese archivo de configuración es la posibilidad de habilitar un archivo de logs que, por defecto, viene deshabilitado. Para ello basta con quitar el comentario a una de las dos opciones que aparecen el el fichero según el nivel de detalle que queramos: -v o -vv. El log se grabará en el fichero /var/log/memcached.log. Esto también es configurable modificando la línea que aparece en el mismo fichero. Y no olvides que para que la opción tome efecto haz de reiniciar de nuevo el servicio de memcached.

El segundo paso sería instalar la extensión de memcached para PHP. Para ello tenemos que instalar los siguientes paquetes:

apt-get install php-pear php5-dev php5-memcached libmemcached10 libmemcached-dev libmemcachedutil2 libhashkit2 libhashkit-dev

Y, a continuación, ejecutar lo siguiente:

pecl install memcached

Si todo sale bien, al final del proceso se nos mostrará un mensaje similar a este:
Instalación del módulo PHP de memcached

La librería debería de haberse creado en el directorio de extensiones de php que se indica al final del proceso y que puedes ver en la imagen anterior (/usr/lib/php5/20100525+lfs) y ya sólo nos resta hacerle caso al mensaje final y añadir la línea extension=memcached.so al final de nuestro fichero php.ini que debería de estar en el directorio /etc/php5/apache2. Reiniciamos apache y, si ejecutamos la función phpinfo veremos una nueva sección:
phpinfo con información del módulo memcached

Para ver información acerca de como está funcionando nuestra cache tenemos un par de opciones más atractivas que inspeccionar el fichero de log que hemos mencionado antes. Una de ellas es usar el script memcached-tools que encontraremos en el directorio /usr/share/memcached/scripts/.

/usr/share/memcached/scripts/memcached-tool 127.0.0.1:11211

El comando anterior muestra información sobre el estado del servicio memcached que hemos instalado en nuestra máquina. Añadiendo al final el argumento stats nos mostrará estadísticas de uso y con el argumento dump realizará un volcado del contenido de la caché por pantalla.

La segunda opción que tenemos es bajarnos de aquí un script hecho en perl y llamado memcache-top. Tienes distintos argumentos para modificar la salida que puedes consultar en la web desde la que te has bajado el script. En la imagen siguiente se muestra con las opciones --cumulative y --commands
ejecución de memcached-top

Y ya sólo nos queda habilitar el uso de memcached desde wordpress. Para ello usaremos Memcached Object Cache que, aunque aparece como cualquier otro en el repositorio de plugins de wordpress, en realidad precisa de una sencilla instalación manual para que funcione. Bajamos el archivo, lo descomprimimos y copiamos el archivo object-cache.php en el directorio wp-content de nuestra instancia de wordpress.

Chuletillas (y XXXIV) – Incrustar subtítulos en un .avi con mencoder

chuletaPara los que preferimos ver el cine en versión original pero no tenemos la soltura suficiente para disfrutarlo sin subtítulos en castellano, resulta siempre mucho más fácil «obtener» el vídeo en versión original y luego bajarnos los subtítulos aparte ( Spanishred o Subdivx son buenos sitios para ello) que encontrar una copia con los subtítulos ya integrados y una buena traducción. Luego, casi todos los reproductores te permitirán abrir el archivo de subtítulos o, incluso, te lo abren de forma automática si ambos archivos se encuentran el el mismo directorio y el que contiene los subtítulos tiene el mismo nombre que el contiene el vídeo pero con una extensión propia de un fichero de este tipo (.ass o .srt, por ejemplo).

Pero si lo que quieres es incrustar los subtítulos de forma definitiva en el archivo AVI del vídeo, hacerlo usando mencoder es bien sencillo. El comando base que yo uso para ello es este:

mencoder -sub archivo_subtitulos.ass -subcp iso-8859-1 -ovc xvid -xvidencopts bitrate=14400 -subfont-text-scale 2.5 -oac copy -o video_final.avi video_original.avi

En el ejemplo, el archivo de subtítulos está en formato .ass y debe de estar codificado como iso-8859-1 (puedes cambiar el parámetro por utf-8 si lo tienes así o usar, por ejemplo, subtitle-composer para modificar la codificación, una herramienta que te será muy útil cuando quieras, además, corregir incorrecciones en la traducción o el tempo de los subtítulos).

Mediante el número que sigue al parámetro –subfont-text-scale puedes cambiar el tamaño del texto de los subtítulos. Un número mayor dará como resultado fuentes más grandes y a la inversa. Experimenta con pequeñas variaciones (en el rango de entre 1.8 y 3.5, por ejemplo) para que el resultado quede a tu gusto.

Por último, el ejemplo anterior supone que el .avi origen tiene una única pista de audio o es la primera de las que existen la que nos interesa conservar. Si la pista con el idioma original fuese, por ejemplo, la segunda, deberíamos de añadir el parámetro -aid 2

El parámetro bitrate merecería un estudio aparte para el solo. De el depende la calidad y el tamaño del vídeo resultante, sobre todo cuando estamos haciendo el «ripeo» o compresión original del vídeo desde un DVD. Si quieres leer un poco más sobre como se debería de calcular el óptimo puedes echarle un vistazo a este texto. Yo suelo usar 14400 y los resultados que obtengo son bastante buenos para vídeos en alta definición a 25fps y de entre 90 y 120 minutos que suele ser lo habitual.

phpSysInfo

herramientas phpSysInfo es un script escrito en PHP que muestra información acerca del sistema en el que corre. Es bastante ligero y extensible mediante la programación de plugins. Tienes una demo real bastante completa aquí, mucha información en las páginas del proyecto en sourceforge y hasta un cliente para tu android.

phpsysinfo

Las instalación es tan sencilla como descomprimir y copiar los ficheros del proyecto en un virtual host de tu apache, renombrar el ejemplo del archivo de configuración (de phpsysinfo.ini.new a phpsysinfo.ini) y editarlo siguiendo las indicaciones de los comentarios que lo acompañan.

Android Apps (y I): ConnectBot

android Una de las primeras cosas que un administrador de sistemas (de «los de verdad», no de los que trabajan con Windows, que a esos no les sirve de nada 😉 ) se plantea instalarse en su android es, si o si, un emulador de terminal. ConnectBot admite conexiones ssh y telnet (o locales contra el propio android donde está instalado). Ocupa muy poca memoria (apenas 650KBytes con los datos de conexión de varias máquinas) y aprovecha muy bien la pantalla tanto en vertical como en apaisado. Ambas cosas son indispensables para quién, como yo, tiene un terminal barato de gama baja. Es capaz de mantener varias sesiones abiertas de forma simultanea con diferentes máquinas y soporta copy/paste. Además, es software libre y los fuentes están disponibles en Google Code.

Ejecutando htop en connectbot con un htc wildfire s

The Pets Journal

opinion Pero, como ¿Aún no han entrado al proyecto estrella de este final de verano?¡Vamos, a que esperan! ¡Adelante! Eso si: sin algarabías, ya saben. Que no estamos para esas cosas… 😉

The pets journal

DISCLAIMER: Conozco y quiero a algunas de las involucradas en este proyecto y espero y deseo fervientemente que, una de dos, se hagan famosas y millonarias como el Zuckerberg ese y me inviten a vino y lapas cada vez que vaya a verlas o, al menos, les de para pagar el alquiler, las deudas y algún pequeño vicio. ¡Suerte chicas!

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies