Bueno, después de una temporada con mucho curro vuelvo con cositas nuevas y frescas, voy a explicaros como montar un cluster de MongoDB para entornos de producción.
Para empezar vamos a contar con 4 nodos a los que vamos a llamar Frodo, Sam, Pipin y Merry...si exacto soy un jodido friki xDD. Para hacer mas fácil levantar los servicios y demás lo mejor es usar configuración de demonios basada en archivos viene a ser mas o menos lo mismo que el comando en crudo, pero de esta manera alguien que no tenga mucha idea, puede levantar los servicios mientras tu te rascas la parte baja de los genitales xD.
Vamos a empezar con el Replica Set, que en resumen es, un cluster Maestro-esclavo inteligente, si se cae un nodo, hace otro de ellos se hace maestro y toma el control de la situación. Se van a llamar Agny y Rudra...que si que soy un puto friki...xDD
Frodo
mkdir -p /var/lib/mongo/agny /var/lib/mongo/rudra
mongod --dbpath /var/lib/mongo/agny --port 10000 --replSet agny
mongod --dbpath /var/lib/mongo/rudra --port 11000 --replSet rudra --oplogSize 1
Pipin
mkdir -p /var/lib/mongo/agny
mongod --dbpath /var/lib/mongo/agny --port 10000 --replSet agny
Sam
mkdir -p /var/lib/mongo/agny /var/lib/mongo/rudra
mongod --dbpath /var/lib/mongo/agny --port 11000 --replSet agny --oplogSize 1
mongod --dbpath /var/lib/mongo/rudra --port 10000 --replSet rudra
Merry
mkdir -p /var/lib/mongo/rudra
mongod --dbpath /var/lib/mongo/rudra --port 10000 --replSet rudra
Con estas instrucciones puestas cada una en su correspondiente servidor, lo que hacemos es preparar el terreno, estamos organizando el espacio donde se va a dejar los archivos de la DB, y despues levantamos los correspondientes demonios en cada servidor.
Ahora vamos a conectarnos a Frodo para cargarle la configuración..
mongo Frodo:10000/admin
> rs.initiate({"_id" : "agny", "members" : [
... {"_id" : 0, "host" : "Frodo:10000"},
... {"_id" : 1, "host" : "Pipin:10000"},
... {"_id" : 2, "host" : "Sam:11000", arbiterOnly : true}]})
Y ahora a Sam...
mongo Sam:10000/admin
> rs.initiate({"_id" : "rudra", "members" : [
... {"_id" : 0, "host" : "Sam:10000"},
... {"_id" : 1, "host" : "Merry:10000"},
... {"_id" : 2, "host" : "Frodo:11000", arbiterOnly : true}]})
Tarda unos segundos y ale ya tienes tu Set de hobbits replicados, lo bueno que tiene esta configuración es que los que actúan de árbitros hacen que en caso de caída no se pierda funcionalidad en la aplicación, ademas de que no vas a tener 2 maestros concurrentes en ningún servidor nunca.
Ahora las Shards, vamos a montar 2 y vamos a volcar la configuracion en Sam, Pipin y Merry
Pipin
mkdir /var/lib/mongo/config
mongod --dbpath /var/lib/mongo/config --port 20000
Sam
mkdir /var/lib/mongo/config
mongod --dbpath /var/lib/mongo/config --port 20000
Merry
mkdir /var/lib/mongo/config
mongod --dbpath /var/lib/mongo/config --port 20000
mongos --configdb Pipin:20000,Sam:20000,Merry:20000 --port 30000
Ahora nos conectamos al puerto 30000 de Merry y configuramos la Shards
> mongo Merry:30000/admin
> db.runCommand({addshard : "agny/Frodo:10000,Pipin:10000"})
{ "shardAdded" : "agny", "ok" : 1 }
> db.runCommand({addshard : "rudra/Sam:10000,Merry:10000"})
{ "shardAdded" : "rudra", "ok" : 1 }
Ale a correr, ya tenemos el cluster montado, ahora vuestra aplicación debe apuntar al proceso mongos, bueno realmente lo mejor es montar un proceso mongos por nodo de aplicación y que así apunten a Localhost:puerto.
Espero que os haya servido de ayuda, esta info la he sacado de un par de libros y de el blog http://www.snailinaturtleneck.com/blog.
Juanpa's Corner
Por donde empezamos....
jueves 12 de enero de 2012
miércoles 6 de julio de 2011
MRTG facil, sencillo y para toda la familia...
Buenas, vamos con MRTG, se trata un sistema de monitorización basado en el protocolo SNMP y basicamente monitoriza la I/O de datos en una interfaz de red, es bastante facil de configurar y da buen resultado.
Para habilitar el protocolo SNMP en Switches y Firewalls generalmente hay que entrar en la interfaz de administración y activarlo, también hay que definir que Ip's pueden realizar dicha monitorización, es decir, tu servidor donde tengas puesto tu MRTG, en caso del Firewall es una Policy configurable.
Esto esta basado en entornos Debian, aqui vamos:
# Instalación de paquetes mrtg
apt-get install mrtg*
#Hay que crear las carpetas dentro de /var/www/mrtg para volcar ahí los datos generados por la configuración
mkdir -p /var/www/mrtg/Switch1
# Con esto se genera el archivo de configuración mrtg Switch1
cfgmaker --ifref=name,descr --ifdesc=descr,ip --global "workdir: /var/www/mrtg/switch1" --global "Options[_]: bits,growright" --output /etc/mrtg-Switch1.cfg public@IP-DEL-Switch
# Con esto generas los dibujicos y los vuelca en el workdir
mrtg /etc/mrtg-Switch1.cfg
# Esto genera un index.html con tu archivo de configuración
indexmaker --output /var/www/mrtg/Switch1/index.html /etc/mrtg-Switch1.cfg
Después de esto hay que reiniciar Apache y si quieres mas comodidad dar de alta el nombre de tu maquina en un DNS. Si quieres hacerlo un poco bien puedes currarte un Vhost con acceso limitado por Ips y demas, eso lo dejo a elección del administrador....
Bueno, espero que os sea util....
Para habilitar el protocolo SNMP en Switches y Firewalls generalmente hay que entrar en la interfaz de administración y activarlo, también hay que definir que Ip's pueden realizar dicha monitorización, es decir, tu servidor donde tengas puesto tu MRTG, en caso del Firewall es una Policy configurable.
Esto esta basado en entornos Debian, aqui vamos:
# Instalación de paquetes mrtg
apt-get install mrtg*
#Hay que crear las carpetas dentro de /var/www/mrtg para volcar ahí los datos generados por la configuración
mkdir -p /var/www/mrtg/Switch1
# Con esto se genera el archivo de configuración mrtg Switch1
cfgmaker --ifref=name,descr --ifdesc=descr,ip --global "workdir: /var/www/mrtg/switch1" --global "Options[_]: bits,growright" --output /etc/mrtg-Switch1.cfg public@IP-DEL-Switch
# Con esto generas los dibujicos y los vuelca en el workdir
mrtg /etc/mrtg-Switch1.cfg
# Esto genera un index.html con tu archivo de configuración
indexmaker --output /var/www/mrtg/Switch1/index.html /etc/mrtg-Switch1.cfg
Después de esto hay que reiniciar Apache y si quieres mas comodidad dar de alta el nombre de tu maquina en un DNS. Si quieres hacerlo un poco bien puedes currarte un Vhost con acceso limitado por Ips y demas, eso lo dejo a elección del administrador....
Bueno, espero que os sea util....
Logs, logs y mas logs
Buenas, seguimos con el tema de los logs, esos grandes desconocidos...bueno básicamente es una función que lo que hace es listar todos los logs debajo de un árbol de carpetas y se muestra la modificacion en tiempo real:
tail -c0 -f `find /var/log/ -type f`
Espero que os sea util....
tail -c0 -f `find /var/log/ -type f`
Espero que os sea util....
miércoles 29 de junio de 2011
VM, servidores Debian y logs puñeteros
En este tiempo que no he blogueado, he aprendido bastantes cosillas, un problema diario que tenia con las maquinas virtuales era que cuando liberaba espacio eliminando logs grandes y antiguos, las VM no refrescaban que les había borrado nada y tenían el mismo espacio, hoy he encontrado la solución y el motivo por el cual pasaba eso, básicamente el error era mio, ya que se quedaba un proceso bloqueando ese archivo de log y no lo terminaba de liberar el espacio.
Este servidor es un Debian 5
Debemos ejecutar estos comandos:
Me ha sido muy útil hoy y espero que también os sea util...
Un saludo
Este servidor es un Debian 5
Debemos ejecutar estos comandos:
ps -aux | grep syslog
## En mi caso elimine de un servidor antiguo el syslog ya que no tenia
## configurado el logrotate ni nada parecido y no habia espacio para
## generar mas archivos
pkill -HUP rsyslogd
## Con esto matas el proceso que tiene ese log bloqueado y consigues
## liberar algo de espacio para configurar el logrotate
df -h
## Despues podras comprobar que efectivamente se ha liberado espacio
Me ha sido muy útil hoy y espero que también os sea util...
Un saludo
viernes 3 de abril de 2009
Megaupload Filter
Pues nada, un dia tonto que tenia y como estaba estudiando Perl pues me hice un filtro de enlaces de Megaupload xD. La verdad es muy sencillote te pide la ruta de entrada del fichero de texto que contenga direcciones de MU.
Lo que yo suelo hacer es copiar el codigo fuente de dicha pagina y pegarla en el notepad, despues ejecuto el script y le paso la ruta del mismo,(si esta en la misma carpeta con poner el nombre del archivo vale sino hay que ponerle la ruta absoluta).
Weno aqui os dejo el, codigo en caso de Windows aconsejo usar el ActivePerl en caso de linux simplemente tirar de repositorios =).
Si no os va bien del todo probar a borrar los espacios que hay en los simbolos < y >. Espero que os sea util =).
Lo que yo suelo hacer es copiar el codigo fuente de dicha pagina y pegarla en el notepad, despues ejecuto el script y le paso la ruta del mismo,(si esta en la misma carpeta con poner el nombre del archivo vale sino hay que ponerle la ruta absoluta).
Weno aqui os dejo el, codigo en caso de Windows aconsejo usar el ActivePerl en caso de linux simplemente tirar de repositorios =).
#!/bin/perl
print("Dame la ruta del archivo para reconocer los Links: \n");
$nombre=< stdin > ;
open(ENTRADA,"<$nombre") || die "Error de apertura\n";
open(SALIDA,">links.txt") || die "Error de escritura\n";
foreach $val (< ENTRADA >)
{
@link=($val =~ /(\w+\:\/+\w+\.\w+\.\w+\/\?\w\=\w+|\w+\:\/+\w+\.\w+\.\w+\/\w+\/\?\w\=\w+)/);
if("$link[0]" eq ""){}
else{
print SALIDA "$link[0]\n";}
}
print("Gracias por usar la juanpamatic3000 tienes tus links limpios en links.txt\n");
< stdin >
Si no os va bien del todo probar a borrar los espacios que hay en los simbolos < y >. Espero que os sea util =).
miércoles 1 de abril de 2009
Soul Eater serie completa

Como en el caso de Gundam 00 voy a recopilar todos los capitulos de esta pedazo de serie y algunas cosillas mas, espero que os guste =).
Serie Completa

Capitulo 01
Capitulo 02
Capitulo 03
Capitulo 04
Capitulo 05
Capitulo 06
Capitulo 07
Capitulo 08
Capitulo 09
Capitulo 10
Capitulo 11
Capitulo 12
Capitulo 13
Capitulo 14
Capitulo 15
Capitulo 16
Capitulo 17
Capitulo 18
Capitulo 19
Capitulo 20
Capitulo 21
Capitulo 22
Capitulo 23
Capitulo 24
Capitulo 25
Capitulo 26
Capitulo 27
Capitulo 28
Capitulo 29
Capitulo 30
Capitulo 31
Capitulo 32
Capitulo 33
Capitulo 34
Capitulo 35
Capitulo 36
Capitulo 37
Capitulo 38
Capitulo 39
Capitulo 40
Capitulo 41
Capitulo 42
Capitulo 43
Capitulo 44
Capitulo 45
Capitulo 46
Capitulo 47
Capitulo 48
Capitulo 49
Capitulo 50
Capitulo 51
Extras
- Openings
- Episodios 1 al 30: "Resonance" por T.M.Revolution.
- Episodios 31 al 51: "Papermoon" por Tommy Heavenly6.
- Endings
- Episodios 1 al 13: "I Wanna Be" por STANCE PUNKS.
- Episodios 14 al 26: "Style" por Nishino Kana.
- Episodios 27 al 39: "Bakusou Yume Uta" por Diggy-MO.
- Episodios 40 al 51: "Strength" por Abingdon Boys School.
lunes 23 de marzo de 2009
Gundam 00 serie completa
Aqui voy a recopilar las 2 temporadas completas de la serie Gundam 00.

Temporada 1
Episodio 01 - Ser Celestial
Episodio 02 - Gundam Meister
Episodio 03 - Cambiando el mundo
Episodio 04 - Negociacion extranjera
Episodio 05 - Sobrepasar la zona límite
Episodio 06 - Siete Espadas
Episodio 07 - El Alma No-Recompensada
Episodio 08 - Represalia Indiscriminada
Episodio 09 - La Dignidad de los Poderes del Mundo
Episodio 10 - Operación Captura del Gundam
Episodio 11 - Allelujah
Episodio 12 - Al Final de la Doctrina
Episodio 13 - El Regreso de un Santo
Episodio 14 - La Mañana Decisiva
Episodio 15 - Alas Rotas
Episodio 16 - Trinity
Episodio 17 - Ataque a los Thrones
Episodio 18 - Objetivo malicioso
Episodio 19 - Lazos
Episodio 20 - Espada de revolución
Episodio 21 - Camino a la Ruina
Episodio 22 - Trans Am
Episodio 23 - El mundo detenido
Episodio 24 - Poema sin fin
Episodio 25 - Setsuna
Temporada 2
Episodio 01 - Los Ángeles Regresan
Episodio 02 - Unidades Gemelas
Episodio 03 - Operación de rescate: Allelujah
Episodio 04 - La razón de pelear
Episodio 05 - Tierra Natal en Llamas
Episodio 06 - Cicatriz
Episodio 07 - Reunión y Separación
Episodio 08 - Distorsión Purificadora
Episodio 09 - El pasado que no se supera
Episodio 10 - La Luz del Cielo
Episodio 11 - La Voz del 00
Episodio 12 - Te Esperaré en el Espacio
Episodio 13 - Batalla en Memento Mori
Episodio 14 - La Canción que se escucha
Episodio 15 - Alabanza para la resistencia
Episodio 16 - Previo a la tragedia
Episodio 17 - Dentro de una luz distribuida
Episodio 18 - Cruce de pensamientos
Episodio 19 - La sombra de los innovator
Episodio 20 - Anew Returner
Episodio 21 - La puerta del cambio
Episodio 22 - Por el bien del futuro
Episodio 23 - La Flor de la Vida
Episodio 24 - Más Alla
Episodio 25 - Renacimiento

Temporada 1
Episodio 01 - Ser Celestial
Episodio 02 - Gundam Meister
Episodio 03 - Cambiando el mundo
Episodio 04 - Negociacion extranjera
Episodio 05 - Sobrepasar la zona límite
Episodio 06 - Siete Espadas
Episodio 07 - El Alma No-Recompensada
Episodio 08 - Represalia Indiscriminada
Episodio 09 - La Dignidad de los Poderes del Mundo
Episodio 10 - Operación Captura del Gundam
Episodio 11 - Allelujah
Episodio 12 - Al Final de la Doctrina
Episodio 13 - El Regreso de un Santo
Episodio 14 - La Mañana Decisiva
Episodio 15 - Alas Rotas
Episodio 16 - Trinity
Episodio 17 - Ataque a los Thrones
Episodio 18 - Objetivo malicioso
Episodio 19 - Lazos
Episodio 20 - Espada de revolución
Episodio 21 - Camino a la Ruina
Episodio 22 - Trans Am
Episodio 23 - El mundo detenido
Episodio 24 - Poema sin fin
Episodio 25 - Setsuna
Temporada 2
Episodio 01 - Los Ángeles Regresan
Episodio 02 - Unidades Gemelas
Episodio 03 - Operación de rescate: Allelujah
Episodio 04 - La razón de pelear
Episodio 05 - Tierra Natal en Llamas
Episodio 06 - Cicatriz
Episodio 07 - Reunión y Separación
Episodio 08 - Distorsión Purificadora
Episodio 09 - El pasado que no se supera
Episodio 10 - La Luz del Cielo
Episodio 11 - La Voz del 00
Episodio 12 - Te Esperaré en el Espacio
Episodio 13 - Batalla en Memento Mori
Episodio 14 - La Canción que se escucha
Episodio 15 - Alabanza para la resistencia
Episodio 16 - Previo a la tragedia
Episodio 17 - Dentro de una luz distribuida
Episodio 18 - Cruce de pensamientos
Episodio 19 - La sombra de los innovator
Episodio 20 - Anew Returner
Episodio 21 - La puerta del cambio
Episodio 22 - Por el bien del futuro
Episodio 23 - La Flor de la Vida
Episodio 24 - Más Alla
Episodio 25 - Renacimiento
Suscribirse a:
Entradas (Atom)