Se ha liberado FreeBSD 7.0

Ladies, Gentleman,

Se ha liberado FreeBSD 7.0-RELEASE. Lo cuentan hoy mismo en la lista de anuncios de esta popular distribución.

freebsd 7.0

Según las release notes, los cambios que encontraremos en FreeBSD 7.0 son diversos, y en su mayoría, transparentes al usuario. Yo particularmente me quedo con el soporte primario para arquitecturas Sun Microsystems UltraSPARC-T1. El port FreeBSD/sun4v ha sido instalado con éxito en servidores Sun Fire T1000 y en Sun Fire T2000, lo que abre un enorme abanico de posibilidades para los usuarios de estas arquitecturas, ya que este hardware de medio alcance suele estar dominado por otros derivados Unix muy consolidados, como Solaris.

Otras mejoras que me parecen interesantes son el soporte PAM para tareas programadas. A partir de ahora, los cron se pueden casar contra PAM, lo que abre opciones a controles de seguridad específicos sobre tareas en máquinas multiadministradores. También se ha dado soporte al sistema de ficheros ZFS de Sun, y soporte de sólo lectura a XFS.

A destacar también mejoras en rendimiento sin precedentes, con benchmarks que demuestran rendimientos superiores al 350% frente a FreeBSD 6.X en cargas medias de sistema, y de hasta el 1500% en cargas elevadas. Respecto a Linux (se han contrastado los núcleos 2.6.22 y 2.6.24), la mejora media del rendimiento es del 15%. En cuestiones de escalabilidad, hay tests que demuestran linealidad de escalamiento desde 2 a 8 procesadores. Huelgan más comentarios :)

Así mismo, se han producido mejoras en el userland, mediante el incremento de la compatibilidad de las conectividades inalámbricas, y la inclusión de X.Org 7.3 con KDE 3.5.8/GNOME 2.20.2 y la gestión de actualización mejorada con freebsd-update.

Descargas

Se aconseja descargar mediante Torrent, lo que reduce la carga en los servidores, para lo que debéis visitar http://torrents.freebsd.org:8080/

El FTP primario sigue siendo ftp://ftp.freebsd.org/pub/FreeBSD/, y en España, ftp://ftp.es.freebsd.org/pub/FreeBSD/

Disfrutadlo.

Instalación de la herramienta de monitorización Cacti en FreeBSD

Hola,

El otro día os recomendé Cacti, ya que por lo que pude ver, tenía muy buena pinta. Además, al estar basado en RRDTool, un motor de representación muy extendido y popular, la aplicación tenía que ser al menos, digna de probar.

He estado mirando los manuales, y la verdad, quizás las versiones Unix sean algo complejillas para echar a andar. La Windows no me preocupa, ya que tiene mucha menos miga. Tampoco me preocupa la Unix, porque el usuario que suele instalar estas herramientas suele tener conocimiento para aplicar el DIY :)

De todos modos, os quiero dejar un resumen de pasos a seguir para hacer funcionar Cacti. Son pasos explicados para FreeBSD, así que los usuarios de Linux y otros derivados Unix deben tener en cuenta las posibles variaciones.

Nota: Para poder emplear Cacti, nos hará falta un servidor Apache con soporte PHP, y una base de datos MySQL. A título orientativo, en mi caso las versiones son:

* FreeBSD nas 6.2-RELEASE-p7 FreeBSD 6.2-RELEASE-p7
* Apache/2.2.8 (FreeBSD) with Suhosin-Patch
* PHP/4.4.8
* MySQL Server version 5.0.45

1. Descarga de los paquetes

La manera fácil es recurrir a instalación desde repositorios en Internet

pkg_add -r cacti

2. Preparación de la base de datos

En este punto vamos a necesitar una base de datos tipo SQL. Se recomienda MySQL.

2.1 Creación de la base de datos cacti

mysqladmin –user=root create cacti

2.2 Creamos un usuario (por ejemplo, cactiuser) con su correspondiente clave para la base de datos cacti que acabamos de crear

Nos identificamos ante el servidor SQL mediante la sentencia mysql -u root -p

mysql> CREATE USER ‘cactiuser’@’localhost’ IDENTIFIED BY ‘clave_que_elijamos’;

2.3 Dotamos de los correspondientes permisos y hacemos refresco de los mismos

GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘clave_que_elijamos’;
mysql> FLUSH PRIVILEGES;

2.4 Verificamos que hemos hecho las cosas bien

mysql> SHOW GRANTS FOR ‘cactiuser’@’localhost’;

Grants for cactiuser@localhost

GRANT USAGE ON *.* TO ‘cactiuser’@’localhost’ IDENTIFIED BY PASSWORD ‘*aqui_saldra_el_hash_de_la_clave_escogida’
GRANT ALL PRIVILEGES ON `cacti`.* TO ‘cactiuser’@’localhost’

2.5 Importamos a la base de datos cacti el contenido del fichero /usr/local/share/cacti/cacti.sql, creado en la instalación.

mysql -u root -p cacti < /usr/local/share/cacti/cacti.sql

3. Editamos el fichero que gestiona la conexión a la BBDD MySQL

Para ello, mediante editor, editamos /usr/local/share/cacti/include/db-settings.php

$database_type = «mysql»;
$database_default = «cacti»;
$database_hostname = «localhost»;
$database_username = «cactiuser»;
$database_password = «la_clave_elegida»;
$database_port = «3306»;

4. Preparación de Apache, para facilitar el acceso vía navegador

4.1 Detenemos el servidor

/usr/local/sbin/apachectl stop

4.2 Editamos el fichero de configuración (en FreeBSD, este fichero estará con toda probabilidad en /usr/local/etc/apache/httpd.conf) y añadimos un alias del tipo Alias /cacti «/usr/local/share/cacti/». Recomiendo ponerlo en la sección Aliases del fichero de configuración, ya que si lo ponemos antes de la carga de módulos, al rearrancar el servidor dará error.

4.3 Dependiendo de la distribución, no es descartable tener que habilitar una directiva de directorio para Cacti, de modo que evitemos errores HTTP 403


    Order allow,deny
    Allow from all
 

4.4 Arrancamos el servidor nuevamente

/usr/local/sbin/apachectl start

5. Ajustes en PHP

Para que cacti no de erores fatales, hay que hacer algunas cosas en PHP. Aquí se abre la veda al auténtico DIY, ya que cada caso es un mundo. Dependiendo de la distribución elegida y del motor PHP en funcionamiento, aquí la combinatoria es amplia. En algunas instalaciones, habrá que asignar un directorio de extensiones, añadiendo a /usr/local/etc/php.ini la siguiente línea:

extension_dir = /usr/local/etc/php.d

En este punto se hace recomendable ojear lo que dice el desarrollador sobre PHP, y tirar de la documentación PHP para ir resolviendo problemas.

5.2 Verificar que las extensiones y PHP están en sintonía

En mi caso, algunas extensiones necesarias no cargaban bien.

PHP Warning: PHP Startup: snmp: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0

Como se puede comprobar, las API eran distintas. Así, recomiendo reinstalar las extensiones si es necesario (especialmente las necesarias, las de snmp y MySQL), aunque si habéis instalado desde cero tanto PHP como extensiones, deberían ser coincidentes.

5.3 Dar soporte a las extensiones

Para ello, añadiremos a php.ini las líneas:

extension=mysql.so
extension=snmp.so

En mi caso, que tengo operando un PHP 4.4.8, que ya está discontinuado, estas modificaciones se hacen en /usr/local/etc/php/extensions.ini. En PHP 4.4.8, los ficheros principales están ubicados en:

Configuration File (php.ini) Path /usr/local/etc
Scan this dir for additional .ini files /usr/local/etc/php
additional .ini files parsed /usr/local/etc/php/extensions.ini

6. Añadimos un cron de actualización en /etc/crontab

*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1

Este cron podemos modificarlo a nuestro gusto, para ejecutar el poller cuando queramos. Este ejemplo lanza el poller cada 5 minutos.

7. Añadimos a nuestro fichero /etc/rc.conf instrucciones para la carga de los demonios snmpd y snmptrapd en el arranque

snmpd_enable=»YES»
snmpd_flags=»-a -p /var/run/snmpd.pid»
snmptrapd_enable=»YES»
snmptrapd_flags=»-a -p /var/run/snmptrapd.pid»

Estos demonios son necesarios ya que Cacti, al funcionar en RRDTool, emplean el protocolo Simple Network Management Protocol (snmp)

8. Ajustamos permisos y creamos directorio de logs

chown -R cacti /usr/local/share/cacti/rra/

chown -R cacti /usr/local/share/cacti/log

9. Accedemos vía navegador, y configuramos la aplicación

Para ello accedemos vía http://localhost/cacti/. Se abrirán algunos cuadros de diálogo para la instalación. Revisamos parámetros, y vamos pulsando «Next». Nos detendremos cuando aparezca el cuadro de diálogo de elementos y dependencias requeridos, y su ubicación:

cacti

Huelga decir que lo que no aparezca como [FOUND] debe ser instalado. Si todo está bien, aparecerá la pantalla de login:

cacti

Nos autenticamos com las credenciales admin/admin, se nos fuerza a cambiar la contraseña, y entramos a la interfaz.

10. Creación de dispositivos y gráficas de monitorización

He aquí algunos ejemplos de los gráficos creados, después de unos tres días de actividad:

Procesos en ejecución

cacti

Latencia de ping

cacti

Carga de la máquina

cacti

Espacio disponible en los discos RAID

cacti

Y creo que no se me olvida nada más. Felices monitorizaciones :)