¡Felices fiestas!

misceláneo 0 comentarios »

Sí, sé que ya ha pasado la Navidad. A pesar de ello, quiero desear unas felices fiestas a los millones de lectores de este blog.

bola de navidad

Imagen de icondrawer.com.


Instalación de cacti en Solaris 10

sysadmin 0 comentarios »

Según su propia página web, cacti es una solución completa para generar gráficas aprovechando toda la potencia que nos brinda RRDTool. Después de tres años de espera, en octubre de 2007 se anunció la versión 0.8.7 de cacti. En su día escribí un documento donde contaba los detalles de cómo instalar cacti (0.8.6) en Solaris 8. En este post contaré cómo instalar la nueva versión de cacti (0.8.7) en Solaris 10.

cacti

Instalación de Apache + MySQL + PHP

Antes de poder instalar cacti, necesitaremos instalar Apache + Mysql + PHP. En este post puedes leer cómo hacerlo.

Instalación de RRDTool

La manera más sencilla de instalar RRDTool es instalar el paquete de sunfreeware. Este paquete depende de los siguientes paquetes:

  • libart_lpgl
  • zlib
  • libpng
  • freetype
  • libgcc-3.4.6

Pero si antes hemos instalado Apache + MySQL + PHP con los paquetes de sunfreeware, el único paquete que nos quedará por instalar es libart_lpgl. Por lo tanto, para instalar RRDTool, debemos instalar los siguientes paquetes de sunfreeware:

  • libart_lgpl-2.3.19
  • rrdtool-1.2.19

Necesitaremos también añadir /usr/local/rrdtool-1.2.19/bin a la variable PATH.

$ rrdtool
RRDtool 1.2.19  Copyright 1997-2007 by Tobias Oetiker <tobi@oetiker.ch>
Compiled Mar 24 2007 00:31:10

Instalación de Net-SNMP

La instalación es muy sencilla, simplemente instalamos el siguiente paquete de sunfreeware:

  • netsnmp-5.1.4

y añadimos /usr/local/bin al PATH.

Instalación de cacti

Descargamos cacti, volcamos su contenido en el DocumentRoot de nuestro Apache y cambiamos el propietario y el grupo del nuevo directorio:

# cd /usr/local/apache2/htdocs
# gzcat cacti-0.8.7a.tar.gz  tar xf -
# rm cacti-0.8.7a.tar.gz
# ln -s cacti-0.8.7a cacti
# chown -R cactiuser:cactigroup cacti-0.8.7a

Apuntamos nuestro DocumentRoot al directorio de cacti. Lo más sencillo es que el propietario y el grupo de cacti sean los mismos que el usuario y el grupo con el que se ejecuta Apache. Estos serían los cambios que habría que hacer en el httpd.conf de Apache:

DocumentRoot "/usr/local/apache2/htdocs/cacti"
User cactiuser
Group cactigroup

Rearrancamos Apache para que los cambios sean tenidos en cuenta:

# /etc/init.d/apache stop
Parando Apache
# /etc/init.d/apache start
Arrancando Apache

Creamos en MySQL una base de datos para cacti, y creamos el modelo de datos importando el script cacti.sql:

$ cd /usr/local/apache2/htdocs/cacti
$ mysqladmin --user=root -p create cacti
$ mysql --user=root -p cacti < cacti.sql

Creamos un usuario para cacti en la base de datos y le asignamos una contraseña:

$ mysql --user=root -p cacti
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'password'
mysql> flush privileges

Editamos el fichero de configuración de cacti, include/config.php:

$database_type = "mysql"
$database_default = "cacti"
$database_hostname = "localhost"
$database_username = "cacti"
$database_password = "password"

En nuestro navegador, abrimos la URL http://localhost/ y nos aparecerá la pantalla de bienvenida a la instalación de cacti:

cacti installation

En la siguiente pantalla seleccionamos:

type of installation > New Install

Después, en la siguiente pantalla, nos tenemos que asegurar de que todas las utilidades tienen bien configurado su path.

Lo siguiente que nos aparecerá será la pantalla de login:

cacti login

Aquí nos conectaremos como admin/admin y se nos pedirá una nueva contraseña. Y ya está, después de seleccionar una nueva contraseña nos aparecerá la consola de administración de nuestra instalación de cacti:

cacti console


Feeds a medida en WordPress (o cómo no molestar en RubyCorner)

ruby, rails, wordpress 2 comentarios »

Cuando comencé a escribir este blog pensaba que prácticamente todos los posts iban a tratar sobre ruby y rails. Así que claro, lo di de alta en RubyCorner. La realidad es bien distinta: he escrito bastantes posts que no siguen dicha temática y que por lo tanto no deberían aparecer en RubyCorner. En este post contaré cómo crear un feed a medida en WordPress para que en RubyCorner aparezcan sólo los posts pertenecientes a ciertas categorías. Además, utilizaremos FeedBurner para publicar tanto el feed general como el feed a medida.

rubycorner_wordpress

  • Si tenemos activado el plugin FeedBurner FeedSmith o algún otro plugin que detecta todas las maneras de acceder a nuestros feeds y redirecciona el tráfico a FeedBurner tendremos que desactivarlo. FeedBurner FeedSmith sólo permite redirigir el tráfico a un solo feed.
  • Supondremos que tenemos 2 categorías distintas, ruby y rails, y que queremos que en RubyCorner aparezca cualquier post que pertenezca a alguna de estas categorías.
  • Buscamos en la web de administración de nuestro blog los IDs de las categorías:
Administrar > Categorías
  • Creamos en FeedBurner un nuevo feed para las categorías deseadas. La URL de nuestro feed tendrá la forma:
http://midominio.com/?feed=rss2&cat=2,3
  • Como hemos desactivado el plugin FeedBurner FeedSmith tendremos que redirigir nosotros mismos el tráfico a FeedBurner. Para ello, añadiremos a nuestro .htaccess una redirección por cada feed:
Redirect temp /feed http://feeds.feedburner.com/midominio
Redirect temp /feed_ruby_rails http://feeds.feedburner.com/midominio_ruby_rails
  • Y por último sólo quedaría editar nuestro blog en RubyCorner para que la URL del feed sea:
http://midominio.com/feed_ruby_rails

Enlaces relacionados:


Según la DGT pasamos casi 40 horas al día en el coche

wtf 16 comentarios »

La nueva campaña de la DGT lleva por título “en el coche puedes vivirlo todo o perderlo todo“. Lo que me sorprende es que nos pregunten si sabemos que pasamos unas 14400 horas al año en el coche.

dgt 14400

Esto supondría casi 40 horas al día. Sí, cada vez hay más atascos, pero no creo que la cosa llegue a tanto.

¡Menea esta historia!


Introducción a ZFS

sysadmin 0 comentarios »

ZFS fue introducido por Sun en OpenSolaris en noviembre de 2005 y en Solaris en la actualización 6/06. Pero, ¿qué es realmente ZFS? ¿Es sólo un nuevo tipo de sistema de ficheros?

zfs

ZFS realmente es algo más, ya que nos hace prescindir del gestor de volúmenes. Podemos decir que ZFS es un sistema avanzado de gestión del almacenamiento. Con ZFS nos olvidamos de las particiones y aprovechamos mucho mejor el espacio.

Las principales caraterísticas ZFS son:

  • los dispositivos físicos se agregan a un pool de almacenamiento
  • es un sistema de ficheros transaccional
  • tiene control de errores incorporado
  • es escalable
  • se pueden crear snapshots
  • se simplifica notablemente la administración

Veamos detalladamente cada una de estas características.

Pool de almacenamiento

En ZFS los dispositivos físicos se agregan a un pool de almacenamiento, en el cual se crean los sistemas de ficheros. Cuando se crea un sistema de ficheros ya no es necesario preasignarle un tamaño. En ZFS cada sistema de ficheros irá tomando dinámicamente espacio del pool.

zfs storage pool

Transacciones

ZFS es un sistema de ficheros transaccional. En una operación de escritura los datos nunca se sobreescriben. Cualquier secuencia de operaciones dentro de una transacción o bien es realizada totalmente o es anulada completamente.

Esto asegura que el estado del sistema de ficheros sea siempre consistente, incluso ante una pérdida accidental de la corriente eléctrica o ante una caída del sistema. Se podrán perder los datos de la transacción en curso, pero el estado será consistente. Por ello, herramientas como el fsck ya no serán necesarias.

Control de errores

ZFS calcula checksums de todos los datos y metadatos. Mediante estos checksums ZFS es capaz de detectar fallos y recuperarse de esta situación de manera transparente a las aplicaciones que pudieran estar utilizando dichos datos.

Escalabilidad

ZFS es un sistema de ficheros de 128 bits, por lo que el almacenamiento máximo es de 2128 bits. ¿Será suficiente? 2128 bits son unos 42.000 mil billones de zettabytes, siendo 1 zettabyte mil millones de terabytes. Cuesta imaginarlo.

Los metadatos son creados dinámicamente, con lo que no hay necesidad de reservar inodos con antelación. Cada directorio puede tener hasta 248 entradas y no hay límite para el número de ficheros en un sistema de ficheros.

Snapshots

Un snapshot es una copia de sólo lectura de un sistema de ficheros. Pueden crearse con gran facilidad y ser utilizados como copias de seguridad.

Otras características

  • Es posible activar la compresión y descompresión automática de los datos almacenados.
  • Es posible crear volúmenes emulando un raw device, para, por ejemplo, el área de swap.

Enlaces relacionados: