Herramientas gestión route53

 La Api oficial creada por Amazon es una API Rest que utiliza registros XML  que  te permiten crear, borrar, listar zonas y registros dentro de esas zonas.

Ademas de esta Api en esta ocasión te daremos a conocer otras herramientas para Route53, de las cuales podemos mencionar cli53 y route53, éstas permiten un gestión mas fácil del servicio Route53, por lo que te enseñaremos como instalarlas para que puedas hacer buen uso de ellas
Continue reading

WordPressTwitterBlogger PostShare

Sonar 2.3 + Jboss 5.1

Sonar es una plataforma que nos permite gestionar la calidad de nuestro código fuente, utilizando para esta tarea diferentes herramientas como pueden ser (Checkstyle, PMD, Cobertura, etc. presentándonos  un resumen del análisis de manera unificada. Para esta entrega os compartiré los pasos necesarios para realizar una instalación de esta herramienta ,utilizando un servidor de Aplicaciones Jboss 5.1 AS.

Para la instalación de Sonar es necesario realizar los siguientes pasos de configuración.

  1. Descargamos el war de sonar

# wget URL http://dist.sonar.codehaus.org/sonar-2.3.zip

  1. Descomprimimos el fichero ejecutando el siguiente comando:

 # unzip sonar-2.3.zip
  1. Editamos el fichero de configuración de sonar. 

# vi /opt/sonar.2.3/conf/sonar.properties 
  1. Efectuamos los siguientes cambios en el fichero sonar.properties

Comentamos lo siguiente:

#Configuración base de datos Derby

#sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true

#sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver

#sonar.jdbc.validationQuery: values(1)

 

Descomentar lo siguiente:

 #----- Oracle 10g/11g

# Comment the embedded database and uncomment the following lines to use Oracle

sonar.jdbc.url: jdbc:oracle:thin:@IP:Puerto/ORACLE_SID

sonar.jdbc.driverClassName: oracle.jdbc.driver.OracleDriver

sonar.jdbc.validationQuery: select 1 from dual

#----- Global database settings

sonar.jdbc.username: usuario

sonar.jdbc.password: password

sonar.jdbc.maxActive: 10

sonar.jdbc.maxIdle: 5

sonar.jdbc.minIdle: 2

sonar.jdbc.maxWait: 5000

sonar.jdbc.minEvictableIdleTimeMillis: 600000

sonar.jdbc.timeBetweenEvictionRunsMillis: 30000
  1.  Descomentar y establecer la siguiente cadena de conexión:
 sonar.jdbc.jndiName: sonarDS
  1. Creamos los siguientes ficheros dentro de la ruta con el contenido a continuación:

NOTA: Dado que las librerías con las que cuenta Sonar entran en conflicto con las de Jboss aplicaremos los siguiente pasos para resolver el problema.

 

Persistence.xml: contiene nuestra conexión de base de datos

# cd /opt/sonar.2.3/war/sonar-server/WEB-INF

# touch persistence.xml

# vi persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="sonar" >

<jta-data-source>java:sonarDS</jta-data-source>

<properties>

<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>

<property name="javax.persistence.jdbc.url" value=" jdbc:oracle:thin:IP:Puerto/ORACLE_SID"/>

<property name="javax.persistence.jdbc.password" value="PASSWORD"/>

<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>

<property name="javax.persistence.jdbc.user" value="USER"/>

</properties>

</persistence-unit>

</persistence>


 Jboss-classloading.xml: Nos permitirá aislar nuestra aplicación de otras aplicaciones

# cd /opt/sonar.2.3/war/sonar-server/WEB-INF

# touch jboss-classloading.xml

# vi jboss-classloading.xml

<?xml version="1.0" encoding="UTF-8"?>

<classloading

xmlns="urn:jboss:classloading:1.0"

name="sonar.war"

domain="sonar.war"

parent-domain="DefaultDomain"

export-all="NON_EMPTY"

import-all="true"

parent-first="true"

>

</classloading>

NOTA: Link de un blog muy interesante que explica de forma más profunda este tema 
http://phytodata.wordpress.com/2010/10/21/demystifying-the-jboss5-jboss-classloading-xml-file/

jboss-web.xml: Nos permitirá cargas nuestras classes en lugar de las del servidor.

# cd /opt/sonar.2.3/war/sonar-server/WEB-INF

# touch jboss-web.xml

# vi jboss-web.xml

<?xml version="1.0" encoding="UTF-8"?>

<jboss-web>

<class-loading java2ClassLoadingCompliance="false">

<loader-repository>

org.sonar:loader=sonar.war

<loader-repository-config>java2ParentDelegation=false

</loader-repository-config>

</loader-repository>

</class-loading>

</jboss-web>

 

  1. Podemos descargarnos el driver de conexcion ojdbc6.jar de la siguiente URL:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

 
  1. Incluimos el driver de conexión oracle ojdbc6.jar en la siguiente ruta:
/opt/jboss-eap-5.1/jboss-as/common/lib

 

  1. Descomprimimos los jar localizados en /opt/sonar.2.3/war/sonar-server/WEB-INF/lib

NOTA: Por una extraña razón que no he podido identificar, Jboss tiene problemas descomprimiendo estos jars. Por lo que 
para arreglar el problema las descomprimimos

# cd /opt/sonar.2.3/war/sonar-server/WEB-INF/ib

# mkdir temporal

# mv jruby-complete-1.4.0.jar temporal

# unzip jruby-complete-1.4.0.jar

# rm jruby-complete-1.4.0.jar

# cd ..

# mv temporal jruby-complete-1.4.0.jar

jruby-rack-0.9.6.jar 

# cd /opt/sonar.2.3/war/sonar-server/WEB-INF/lib

# mkdir temporal

# mv jruby-rack-0.9.6.jar temporal

# unzip jruby-rack-0.9.6.jar

# rm jruby-rack-0.9.6.jar

# cd ..

# mv temporal jruby-complete-1.4.0.jar

  

  1. Generamos el fichero war ejecutando el script:

# cd /opt/sonar.2.3/war/

# ./build-war.sh

el war compilado se encontrará localizado en la ruta:

/opt/sonar.2.3/war/

 

  1. Creamos el fichero de conexión sonar-ds.xml en la siguiente ruta: 

# cd /opt/jboss-eap-5.1/jboss-as/server/default/deploy

# touch sonar-ds.xml

# vi sonar-ds.xml

El fichero editado lucirá como:


<?xml version="1.0"?>

<datasources>

<local-tx-datasource>

<jndi-name>sonarDS</jndi-name>

<connection-url>jdbc:oracle:thin:@IP:Puerto/ORACLE_SID</connection-url>

<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

<user-name>USER</user-name>

<password>PASSWORD</password>

<min-pool-size>1</min-pool-size>

</local-tx-datasource>

</datasources>

 

  1. Una vez realizados los cambios, transferiremos el fichero sonar.war a la carpeta de despliegue de Jboss ó desplegar usando el portal de administración de jboss.

WordPressTwitterBlogger PostShare

Informes de estadísticas con Awstats

En este post encontraréis los pasos de instalación de Awstats que es una herramienta opensource para generar informes de estadísticas basándose en los logs del servidor. Awstats soporta varios formatos de logs de servidores web entre ellos Apache, IIS, etc además de tener la ventaja de poder personalizar los mismos.

Esta instalación la realizaremos utilizando una distribucion Ubuntu 10.01

  1.   Instalamos el paquete de awstats con el siguiente comando
apt-get install awstats

 

  1. Localizar el siguiente fichero “awstats_configure.pl”
Resultado:

/usr/share/doc/awstats/examples/awstats_configure.pl

NOTA: El fichero "awstats_configure.pl" que se encuentra en la ruta anterior esta en una ruta ejemplo, por lo que  para instalar correctamente correctamente Awstats, lo moveremos a /usr/local/awstats

 

  1. Movemos el directorio
cd /usr/share/doc/awstats

mv examples/ /usr/local/awstats

 

  1. Ejecutamos el fichero de configuración:
cd /usr/local/awstats

perl awstats_configure.pl

Resultado:

root@ip-10-48-127-145:/usr/local/awstats# perl awstats_configure.pl

----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/apache2/apache2.conf

-----> Check and complete web server config file '/etc/apache2/apache2.conf'
  All AWStats directives are already present.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> website.bbvaglobalnet.com     -----> Nombre del sitio web del cual necesitamos generar nuestras estadísticas

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>

-----> Create config file '/etc/awstats/awstats.website.bbvaglobalnet.com.conf'
Error: Failed to open '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf' for read.

 

  1. Este punto falla ya que no existe ni el fichero ni la ruta, por lo que lo crearemos a mano:
 mkdir -p /usr/local/awstats/wwwroot/cgi-bin/

 

  1. El fichero awstats.model.conf se encuentra comprimido en la siguiente ruta /usr/local/awstats por lo que procedemos a descomprimirlo
root@ip-10-48-127-145:/usr/local/awstats# ll
total 180

-rw-r--r--  1 root root 17688 2009-09-08 17:10 awstats.model.conf.gz
-rwxr-xr-x  1 root root  5504 2011-02-02 08:55 awstats_updateall.pl*
drwxr-xr-x  2 root root  4096 2012-06-21 16:35 css/
-rw-r--r--  1 root root  2562 2008-11-15 16:03 example.pm.gz
drwxr-xr-x  2 root root  4096 2012-06-21 16:35 js/

# gunzip  awstats.model.conf.gz

# mv awstats.model.conf /usr/local/awstats/wwwroot/cgi-bin/

 

  1. Ejecutamos nuevamente nuestro fichero de configuración:
# perl awstats_configure.pl

Resultado:

----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/apache2/apache2.conf

-----> Check and complete web server config file '/etc/apache2/apache2.conf'
  All AWStats directives are already present.

-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> website.bbvaglobalnet.com

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>

-----> Create config file '/etc/awstats/awstats.website.bbvaglobalnet.com.conf'
Config file /etc/awstats/awstats.website.bbvaglobalnet.com.conf created.

-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=website.bbvaglobalnet.com
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...

A SIMPLE config file has been created: /etc/awstats/awstats.website.bbvaglobalnet.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'website.bbvaglobalnet.com' with command:
> perl awstats.pl -update -config=website.bbvaglobalnet.com
You can also read your statistics for 'website.bbvaglobalnet.com' with URL:
> http://localhost/awstats/awstats.pl?config=website.bbvaglobalnet.com

Press ENTER to finish...

 

  1. Awstats por defecto instala el fichero “awstats.pl” en la ruta: /usr/lib/cgi-bin/. Para mantener nuestra instalación consistente moveremos este fichero a la siguiente ruta:
# mv /usr/lib/cgi-bin/awstats.pl /usr/local/awstats/wwwroot/cgi-bin/

 

  1. Modificaremos las siguientes líneas en el fichero de configuración de apache, que especificamos durante la instalación:
vi /etc/apache/apache.conf

Modificar las siguientes lineas:

# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"                    Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"                            Alias /awstatscss "/usr/share/awstats/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"            por          Alias /awstatsicons "/usr/share/awstats/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"                    ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

 

  1. Para generar las estadísticas es necesario:
Nuestros ficheros de configuración de Awstats se encuentran en la ruta: /etc/awstats
Hacemos una copia de nuestro fichero de configuración global de awstats el cual servirá como plantilla todos los dominios para los cuales queramos nuestras estadísticas

Ejemplo:

cp etc/awstats/awstats.conf /etc/awstats/awstats.site_name.conf

cp /etc/awstats/awstats.conf /etc/awstats/awstats.website.bbvaglobalnet.com.conf

 

  1. Modificamos los parámetros LogFile, SiteDomain y HostAliases en nuestro fichero de configuración para nuestro sitio
vi /etc/awstats/awstats.website.bbvaglobalnet.com.conf

Ejemplo:

LogFile="/var/log/apache2/website.log"

SiteDomain="website.com"

HostAliases="website.com www.website.com 127.0.0.1 localhost"

 

  1. Una vez modificadas las variables,  podemos crear nuestras estadísticas
perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=website.bbvaglobalnet.com -configdir="/etc/awstats"

NOTA: Es muy importante especificar la opción -configdir ya que de lo contrario luego se pueden originar problemas como el siguiente:

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.

 

  1. Finalmente podemos visualizar nuestras estadísticas, introduciendo lo siguiente en nuestro navegador:
http://127.0.0.1/awstats/awstats.pl?config=website.bbvaglobalnet.com

 

 

 

 

 

 

WordPressTwitterBlogger PostShare

Nagios + Centreon (Parte 2)

En un post anterior hablamos de los beneficios que ofrecia Centreon, la cual es una herramienta que nos brinda una gestión mas cómoda y amigable  de los ficheros de configuración de Nagios, ya que estos se pueden convertir en un verdadero problema de mantener cuando trabajamos en entornos de gran tamaño

Por lo que en esta entrega, mostraremos un breve tutorial sobre como instalar nagios y sus plugins, los que, a su vez nos servirán de base para nuestra instalación de Centreon que se detallara en una entrega posterior Continue reading

WordPressTwitterBlogger PostShare