Osties.com!

My Little Osties Web !

VMware P2V: Unable to query the live Linux source machine

Posted on 8 enero 2014 in Otros, Software, VmWare by

Fuente: Link y Link

VMware P2V: Unable to query the live Linux source machine , tutorial de administracion de servidores en linux, aprende con giganetic totalmente gratis. (By Giganetic)

Vamos a mirar la posible solución a este problema, que se nos presenta en el instante que intentamos convertir un procedimiento Linux de una máquina física a una máquina virtual (vmware p2v) de VMware con la herramientaVMware vCenter Converter Standalone.
El desconfianza se reproduce después de introducir los datos correctos de conexión SSH al servidor. Estos datos vemos que son correctos porque si ponemos unos incorrectos salta el error. Además, en la máquina que intentamos migrar si hacemos un tcpdump vemos que efectivamente está llegando bien.

Este es el error que recibimos en el primer paso de la conversión:
VMware: Unable to query the live Linux source machine

VMware P2V: Unable to query the live Linux source machine
En nuestro caso, el desconfianza no tenía que mirar ni con el firewall del sistema, ni con restricciones TCP Wrappers, ni con SELinux, etc. El desconfianza tenía principio en las restricciones establecidas en la partición temporal /tmp. Nosotros montamos /tmp con los bits noexec y nosuid. Algo común en servidores con cPanel:

/usr/tmpDSK on /tmp type ext3 (rw,noexec,nosuid,loop=/dev/loop0)

Al parecer VMware intenta ejecutar y hacer acciones en /tmp, y necesario a esto no puede. Podemos solucionarlo entonces montando /tmp temporalmente con los bits de ejecución:

# mount -o remount  -t ext3 /usr/tmpDSK /tmp -o rw,exec,nodev -o loop

Y en el instante que acabemos securizar de nuevo:

# mount -o remount  -t ext3 /usr/tmpDSK /tmp -o rw,noexec,nosuid -o loop

TipsAndTricks >> BondingInterfaces

Posted on 7 enero 2014 in CentOs, Debian, Fedora, Linux by

Manual from: source

What is bonding and how does it work

Bonding is the same as port trunking. In the following I will use the word bonding because practically we will bond interfaces as one.

Bonding allows you to aggregate multiple ports into a single group, effectively combining the bandwidth into a single connection. Bonding also allows you to create multi-gigabit pipes to transport traffic through the highest traffic areas of your network. For example, you can aggregate three megabits ports into a three-megabits trunk port. That is equivalent with having one interface with three megabytes speed.

 

Where should I use bonding?

You can use it wherever you need redundant links, fault tolerance or load balancing networks. It is the best way to have a high availability network segment. A very useful way to use bonding is to use it in connection with 802.1q VLAN support (your network equipment must have 802.1q protocol implemented).

 

What are the types of bonding available

The best documentation is on the Linux Channel Bonding Project page http://sourceforge.net/projects/bonding/

mode=1 (active-backup)

Active-backup policy: Only one slave in the bond is active. A different slave becomes active if, and only if, the active slave fails. The bond’s MAC address is externally visible on only one port (network adapter) to avoid confusing the switch. This mode provides fault tolerance. The primary option affects the behavior of this mode.

mode=2 (balance-xor)

XOR policy: Transmit based on [(source MAC address XOR’d with destination MAC address) modulo slave count]. This selects the same slave for each destination MAC address. This mode provides load balancing and fault tolerance.

mode=3 (broadcast)

Broadcast policy: transmits everything on all slave interfaces. This mode provides fault tolerance.

mode=4 (802.3ad)

IEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and duplex settings. Utilizes all slaves in the active aggregator according to the 802.3ad specification.

  • Pre-requisites:
  • Ethtool support in the base drivers for retrieving the speed and duplex of each slave.
  • A switch that supports IEEE 802.3ad Dynamic link aggregation. Most switches will require some type of configuration to enable 802.3ad mode.

mode=5 (balance-tlb)

Adaptive transmit load balancing: channel bonding that does not require any special switch support. The outgoing traffic is distributed according to the current load (computed relative to the speed) on each slave. Incoming traffic is received by the current slave. If the receiving slave fails, another slave takes over the MAC address of the failed receiving slave.

  • Prerequisite: Ethtool support in the base drivers for retrieving the speed of each slave.

mode=6 (balance-alb)

Adaptive load balancing: includes balance-tlb plus receive load balancing (rlb) for IPV4 traffic, and does not require any special switch support. The receive load balancing is achieved by ARP negotiation. The bonding driver intercepts the ARP Replies sent by the local system on their way out and overwrites the source hardware address with the unique hardware address of one of the slaves in the bond such that different peers use different hardware addresses for the server.

 

Bonding on CentOS 4

In the modprobe.conf file, add the following:

 

alias bond0 bonding 
options bond0 miimon=80 mode=5

Be sure to add this before any of the network aliases

 

modes: 
mode=0 (Balance Round Robin)
mode=1 (Active backup)
mode=2 (Balance XOR)
mode=3 (Broadcast)
mode=4 (802.3ad)
mode=5 (Balance TLB)
mode=6 (Balance ALB)

In the /etc/sysconfig/network-scripts/ directory create the configuration file: ifcfg-bond0

 

DEVICE=bond0 
IPADDR=<ip address>
NETMASK=
NETWORK=
BROADCAST=
GATEWAY=
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

Change the ifcfg-eth0 to participate in the new bond device:

DEVICE=eth0 
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes

Check the status of the bond.

cat /proc/net/bonding/bond0

You can use multiple bond interfaces but for that you must load the bonding module as many as there are bond links, possibly with varying options. Presuming that you want two bond interfaces, you must configure /etc/modules.conf as follow:

 alias bond0 bonding
 options bond0 -o bond0 mode=0 miimon=100
 alias bond1 bonding
 options bond1 -o bond1 mode=1 miimon=100

To manage the state of the bonds yourself you can use the ifenslave command. See the manpage of ifenslave for the details.

 

Post CentOS 4

As time has passed, edits in /etc/modprobe.conf are disfavored, in preference to writing, and the initscripts parsing, smaller configuration files that should, but are not yet required, to end in a .conf suffix. Those files are placed in: /etc/modprobe.d/ and sourced in alphabetical sequence. It makes sense to adopt the naming practice, to ‘future proof’ a distribution move to an ‘init’ successor such as systemd

Monitoring Weblogic with Munin

Posted on 3 octubre 2013 in Debian, Fedora, Linux, Munin, Nagios, Otros, RedHat, Software, Weblogic by

Primero de todo tenemos que extraer los datos de HEAP, CPU y Daemons & Threads del adminserver de nuestro dominio Weblogic. Posteriormente dejamos estos datos en un fichero para que el script de munin (3 en total) recoja dichos datos y sean enviados al servidor.

Extraer datos de Weblogic.

Para hacer esto usaremos el conocido jython. Para hacerlo crearemos un script en el cron que se ejecute cada 5 min;

 

crontab -l

*/5 * * * * /usr/share/munin/scripts/weblogic_plugin.sh > /dev/null 2>&1

 

Este script se conectará al Admin, ira por cada uno de los managed server (incluso el Admin). Y sacara los datos dejándolos en un fichero de texto. En nuestro caso;

/wls/export_wls_status.sh

El script weblogic_plugin.sh es;

/opt/jrmc/bin/java -cp /opt/bea/wls/weblogic.jar weblogic.WLST /usr/share/munin/scripts/weblogic_py_script_DOMAIN1.py  > /wls/export_wls_status

/opt/jrmc/bin/java -cp /opt/bea/wls/weblogic.jar weblogic.WLST /usr/share/munin/scripts/weblogic_py_script_DOMAIN2.py >> /wls/export_wls_status

 

Nota!!

Quizás tendréis que modificar el directorio del binario de java (/opt/jrmc/bin/) así como del fichero weblogic.jar (/opt/bea/wls/) en función de vuestra configuración.

 

Este script de cron sacará todos los datos, pero el que realmente se conecta al Weblogic es el script weblogic_py_DOMAIN.py Este script es;

username = ‘usuario’

password = ‘password’

URL=’t3://localhost:1111′

connect(username,password,URL)

domainConfig()

domini=cmo.getName()

serverList=cmo.getServers();

domainRuntime()

cd(‘/ServerLifeCycleRuntimes/’)

for server in serverList:

name=server.getName()

cd(name)

serverState=cmo.getState()

cd(“/ServerRuntimes/”+server.getName()+”/JVMRuntime/”+server.getName())

sizeHP=cmo.getHeapSizeCurrent()

usedHP=cmo.getUsedHeap()

proces=cmo.getAllProcessorsAverageLoad()

timegc=cmo.getLastGCEnd()

daemon=cmo.getNumberOfDaemonThreads()

thread=cmo.getTotalNumberOfThreads()

 

print domini,’PRO’,  name,’SizeHPWLS ‘,sizeHP

print domini,’PRO’,  name,’UsedHPWLS ‘,usedHP

print domini,’PRO’,  name,’ProcesWLS ‘,proces

print domini,’PRO’,  name,’TimeGCWLS ‘,timegc

print domini,’PRO’,  name,’DaemonWLS ‘,daemon

print domini,’PRO’,  name,’ThreadWLS ‘,thread

 

domainConfig()

domainRuntime()

cd(‘/ServerLifeCycleRuntimes/’)

 

Una vez tenemos los datos en un fichero de texto podremos tratarlo. Dejo un ejemplo de cómo se queda el fichero con los datos:

 

DOMAIN1 PRO AdminServer SizeHPWLS  536870912

DOMAIN1 PRO AdminServer UsedHPWLS  454807648

DOMAIN1 PRO AdminServer ProcesWLS  0.0806008984095334

DOMAIN1 PRO AdminServer TimeGCWLS  1380632745493

DOMAIN1 PRO AdminServer DaemonWLS  51

DOMAIN1 PRO AdminServer ThreadWLS  52

DOMAIN1 PRO DOMAIN1_01 SizeHPWLS  1610612736

DOMAIN1 PRO DOMAIN1_01 UsedHPWLS  1199548792

DOMAIN1 PRO DOMAIN1_01 ProcesWLS  0.08062796813666061

DOMAIN1 PRO DOMAIN1_01 TimeGCWLS  1380629744340

DOMAIN1 PRO DOMAIN1_01 DaemonWLS  42

DOMAIN1 PRO DOMAIN1 _01 ThreadWLS  43

 

Para tratar el fichero crearemos un script en /usr/share/munin/plugins/ con el nombre que se quiera, en mi caso MANAGED_DOMAIN1_HEAP

El fichero básicamente hace un grep del dato que se quiera y lo devuelve. Para el HEAP busca SizeHPWLS, para daemons y threads DaemonWLS  y ThreadWLS y para CPU busca ProcesWLS

 

#!/bin/sh

case $1 in

config)

cat <<‘EOM’

graph_title Managed Servers Heap DOMAIN1_1

graph_vlabel HEAP USE/MAX

DOMAIN1_1_Size.label DOMAIN1_1 Max

DOMAIN1_1_Use.label DOMAIN1_1 Use

graph_scale yes

graph_category weblogic

graph_info Grafica Weblogic DOMAIN1_1 Heap Managed Servers

EOM

exit 0;;

esac

echo -n “P DOMAIN_1_Size.value ”

grep SizeHPWLS /wls/export_wls_status | grep DOMAIN1_1 | awk ‘{print $5}’

echo -n ” DOMAIN_1_Use.value ”

grep UsedHPWLS /wls/export_wls_status | grep DOMAIN1_1| awk ‘{print $5}’

 

Creamos el enlace simbólico;

cd /etc/munin/plugins

ln –s MANAGED_DOMAIN1_HEAP  /usr/share/munin/plugins/MANAGED_DOMAIN1_HEAP

Reiniciamos el agente

/etc/init.d/munin-node restart

Y en unos minutos ya lo tenemos en nuestro servidor

 

HEAP

Descarga de scripts: Weblogic & Munin Scripts

 

Munin monitoring How To

Posted on 13 septiembre 2013 in Apache, Debian, Fedora, Linux, Munin, RedHat, Software by

Munin es un software para monitorizar i graficar que nos permite analizar el estado de nuestros sistemas.

munin

Introducción

Funciona como un Cacti o Graphite pero a diferencia de estos dos Munin funciona con agentes. Esto podría ser un hándicap pero veremos que nos va ayudar mucho en la instalación y mantenimiento del entorno.

Hay dos partes, la cliente “munin-node” y la servidor “munin”

Aquí tenemos una imagen que nos va ayudar a entender cómo funciona.

 

munin design

El munin-master (servidor) se ejecuta cada 5 minutos desde el crond i ejecuta varios scripts;

Munin-update: Este se encarga de leer el fichero /etc/munin/munin.conf y recoger todos los clientes. Posteriormente se conecta por el puerto 4949/tcp i le dice al “munin-node” que ejecute todos los scripts que tiene en /etc/munin/plugins/ y le devuelva el resultado.

Munin-limites: Este analiza los datos obtenidos de los clientes y revisa si algunos de ellos está por encima del umbral marcado en la gráfica. En caso de ser así actualiza el estado de la gráfica  a “Warning” o “Critical”.

Munin-html: Se encarga de actualizar la web. Si ponemos nuevos nodos o dominios este actualizara la web. (Este no hace nada ejecutándose desde cron si está configurado como cgi)

Munin-graph: “La joya de la corona”. Usando las librerías de RRD-Tool y con los valores de “munin-update” se encarga de generar las gráficas. (Este no hace nada ejecutándose desde cron si está configurado como cgi)

 

Para “munin-html” y “munin-graph” los configuraremos como CGI. Las diferencias son;

Cron: Cuando lo configuramos como cron estos scripts generan todas las web y todas las gráficas cada vez que se ejecuta el script. En caso de tener unos 50 nodos en 5 minutos hay tiempo suficiente para realizar la tarea.

CGI: Configuraremos como CGI cuando tengamos muchos nodos. En mi instalación actualmente tengo 300 nodos con un total de 70.000 ficheros rrd y en 5 minutos no hay tiempo para procesarlo todo. Con esto lo que hacemos es que cada vez que entres en la web “munin-html” generará dicha web y cada vez que entres en un nodo “munin-graph” generará las gráficas que quieres visualizar.

Instalación (servidor)

En este caso vamos a realizar una instalación en una RedHat 5.9 64bits utilizando EPEL.

Registramos la maquina en RedHatNetwork, RedHat Satellite o usando un cd. (Basicamente necesitamos poder ejecutar yum)

 

Instalamos EPEL

cd /tmp/

wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

rpm -Uvh /tmp/epel-release-5-4.noarch.rpm

 

Instalamos munin y munin-node (asi también monitorizamos en servidor)

 

yum install httpd mod_fcgid munin munin-node

 

2

 

chkconfig munin on

chkconfig munin-node on

 

Configuración (servidor)

El fichero principal de configuración es /etc/munin/munin.conf

Lo modificaremos poniendo solo los siguientes datos;

htmldir /var/lib/www/html/munin  #### (es el directorio de la web)

logdir /var/log/munin

includedir /etc/munin/conf.d

graph_period minute

graph_strategy cgi                         ##### Tiene que estar en cgi no en cron

cgiurl_graph /munin-cgi/munin-cgi-graph   #### Es la URL donde tiene los scripts de CGI (lo veremos al configurar el apache)

html_strategy cgi                            ##### Tienen que estar en cgi no en cron

max_processes 100                       ##### Por defecto viene en 16. Son los procesos que creara al ejecutar el munin-update. Si tienes mucha maquina pon un valor más alto. Aun así es bueno realizar varias pruebas hasta encontrar un buen valor.

##### Esto es un ejemplo de cómo crear un nodo cliente. Estos nodos son los que el script “munin-update” se conecta

[NODO_CLIENET.TEST]

address 192.168.0.1

use_node_name yes

 

Para más información de posibles configuraciones (LINK) http://munin-monitoring.org/wiki/munin.conf

 

Ahora ya tenemos configurado el munin para CGI, pero nos queda el apache…

Configuración APACHE para CGI:

En la configuración del apache tenemos que notificarle donde están los scripts para CGI.

Vamos al fichero /etc/httpd/conf.d/munin.conf

Comentaremos las líneas para entender posibles modificaciones.

 

<VirtualHost *:443> ### En mi caso uso SSL con certificado

SSLEngine on

SSLCertificateFile /etc/httpd/cert/selfsigned/munin.node.es.crt

SSLCertificateKeyFile /etc/httpd/cert/selfsigned/keys/ munin.node.es.key

ServerName munin.node.es

DocumentRoot /var/lib/www/html ###Importante que sea el mismo que hemos puesto en el fichero /etc/munin/munin.conf

<IfModule !mod_rewrite.c>

Alias /munin-cgi/munin-cgi-html/static /var/lib/www/html/munin/static ## Lo que hacemos en indicarle donde esta la web (parte estatica). Esto se ejecuta cada vez que entramos en la web

RedirectMatch ^/$ /munin-cgi/munin-cgi-html/

</IfModule>

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule ^/favicon.ico /var/lib/www/html/munin/static/favicon.ico [L]

RewriteRule ^/static/(.*) /var/lib/www/html/munin/static/$1          [L]

# HTML (Cada vez que llamemos a una html este llamara al script munin-cgi-html

RewriteRule ^(/.*\.html)?$           /munin-cgi/munin-cgi-html/$1 [PT]

# Images (Cada vez que solicitemos una grafica este llamara al script munin-cgi-graph

 

RewriteRule ^/munin-cgi/munin-cgi-graph/(.*) /$1

RewriteCond %{REQUEST_URI}                 !^/static

RewriteRule ^/(.*.png)$  /munin-cgi/munin-cgi-graph/$1 [L,PT]

</IfModule>

# Nos tenemos que asegurar que los script que están en /var/lib/www/cgi-bin/ son ejecutables

ScriptAlias /munin-cgi/munin-cgi-graph /var/lib/www/cgi-bin/munin-cgi-graph

<Location /munin-cgi/munin-cgi-graph>

Options +ExecCGI

<IfModule mod_fcgid.c>

SetHandler fcgid-script

</IfModule>

<IfModule mod_fastcgi.c>

SetHandler fastcgi-script

</IfModule>

<IfModule !mod_fastcgi.c>

<IfModule !mod_fcgid.c>

SetHandler cgi-script

</IfModule>

</IfModule>

Allow from all

</Location>

ScriptAlias /munin-cgi/munin-cgi-html /var/lib/www/cgi-bin/munin-cgi-html

<Location /munin-cgi/munin-cgi-html>

Options +ExecCGI

<IfModule mod_fcgid.c>

SetHandler fcgid-script

</IfModule>

<IfModule mod_fastcgi.c>

SetHandler fastcgi-script

</IfModule>

<IfModule !mod_fastcgi.c>

<IfModule !mod_fcgid.c>

SetHandler cgi-script

</IfModule>

</IfModule>

Allow from all

</Location>

<IfModule !mod_rewrite.c>

<Location /munin-cgi/munin-cgi-html/static>

Options -ExecCGI

SetHandler None

</Location>

</IfModule>

</VirtualHost>

 

Configuración (cliente)

Para el cliente editaremos el fichero /etc/munin/munin-node.conf y pondremos la IP del host servidor como una expresión regular;

allow ^192\.168\.0\.2$

 

Información oficial de configuración de munin-node (LINK) http://munin-monitoring.org/wiki/munin-node.conf

 

Como instalar Oracle Weblogic en RedHat

Posted on 5 marzo 2013 in Oracle, Otros, RedHat, Weblogic by

Como instalar Oracle Weblogic en RedHat

Descripción:

Primero descargamos el software. En mi caso al querer instalar la versión de 64bits tengo que descargar el JRockit (JVM) y el Weblogic por separado. Si quisieramos usar el de 32bits ya hay un paquete que lo permite “Linux x86 with 32-bit JVM (1.2 GB)”

Descarga:

Para descargar la JVM Oracle JRockit 6 – R28.2.5
http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html

Para descargar el Oracle Weblogic 10.3.3 64Bits
http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html

El listado de versiones que hay es extenso. En mi caso sera;

Oracle WebLogic Server 11gR1 (10.3.3) + Coherence – Package Installer Additional Platforms (For 64-bit  JVM Support, See Note Above) (Generic 921Mb)

Instalación:

JRockit:

[root@weblogic ~]# chmod +x jrockit-jdk1.6.0_37-R28.2.5-4.1.0-linux-x64.bin
[root@weblogic ~]# ./jrockit-jdk1.6.0_37-R28.2.5-4.1.0-linux-x64.bin

Selecionamos el directorio de instalación:direcotry_jrockit

Vamos a validar que la instalacion es correcta;

[root@weblogic bin]# pwd
/opt/jrockit-jdk1.6.0_37-R28.2.5-4.1.0/bin
[root@weblogic bin]# ./java -version
java version “1.6.0_37”
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Oracle JRockit(R) (build R28.2.5-20-152429-1.6.0_37-20120927-1915-linux-x86_64, compiled mode)

Weblogic 10.3:

[root@weblogic bin]# /opt/jrockit-jdk1.6.0_37-R28.2.5-4.1.0/bin/java -jar /root/wls1033_generic.jar -log=/logs/wls_install.log
Extracting 0%……………………………………………………………………………………….100%

El directorio de los binarios de Weblogic (No de los servidores o dominio)

12

Selecionamos la JVM que queremos usar;

primer

 

El directorio del DOMINIO

primer111

Configuración:

Cuando finalize ejecutaremos el QuickStart para la creación del domini, servidores etc…

2

El tipo de servidor con su JVM

22222222

Y finalmente que partes del Weblogic vamos a instalar. En mi caso pondemos el AdminServer (Consola), crearemos un Cluster con una maquina y crearemos un servidor (Instancia)

333333

Creamos un servidor (INSTANCIA)

4

Creamos un MACHINE que es donde van a correr los servidores y NodeManager

11

Creamos un cluster, que sera un conjunto de machines que a su vez son un conjunto de servidores (instancias)

5

Creamos el AdminServer (Consola de administración)

6

Asignamos los servidores a las maquinas

1

Asignamos los servidores al cluster

9

Iniciar/conectar al servidor:

Ya ya tendremos nuestro servidor configurado.

Iniciamos la instancia de Weblogic con el script /wlscfg/BUS/startWebLogic.sh

start

Nota! Podemos tener problemas al iniciar la instancia si nos pide usuario y contraseña. Para resolverlo seguimos este procedimiento

startup

Ahora accedemos a la consola http://servidor:7001/console con usuario: weblogic pass: weblogic1

console

Weblogic user password on startup

Posted on 4 marzo 2013 in Oracle, Otros, Weblogic by

Por defecto el Weblogic solicita el usuario y password de la instancia de AdminServer al arrancar. Como se inicia con un nohup tendremos que pasarle dicho usuario.

startup

Para hacerlo crearemos el fichero boot.properties en un nuevo directorio llamado “security” dentro de la instancia;

mkdir /wls/DOMINIO/servers/AdminServer/security/
vi /wls/DOMINIO/servers/AdminServer/security/boot.properties

Dentro pondremos con texto plano y al iniciar por primera vez la instancia esta va a encreiptar los datos;

password=C0ntra$eña
username=U$uari0

Ahora si iniciamos la instancia con el script

/wls/DOMINIO/startWebLogic.sh

Ahora el arranque ya será correcto

:)

Posted on 25 diciembre 2011 in Otros by

Modificar editor por defecto ejemplo: “crontab -e”

Posted on 24 noviembre 2011 in Otros by

En las nuevas versiones de debian y ubuntu, un iluminado ha puesto como editor por defecto el nano……

Pero como todo en este mundo, se puede modificar.

Ejecutamos:
update-alternatives –config editor

Ahora podemos selecionar el editor que queremos de un listado que nos muestra.

 

Existen 3 opcioens para la alternativa editor (que provee /usr/bin/editor).

  Selección   Ruta                Prioridad  Estado
————————————————————
* 0            /bin/nano            40        modo automático
  1            /bin/nano            40        modo manual
  2            /usr/bin/vim.basic   30        modo manual
  3            /usr/bin/vim.tiny    10        modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 3

 

Listo!

 

HeartBeat ERROR: Message hist queue is filling up

Posted on 24 noviembre 2011 in Iptables, Linux, Otros by

El mensaje siguiente es fruto de un problema de conectividad;

heartbeat[17154]: 2011/11/03_14:40:08 ERROR: Message hist queue is filling up (487 messages in queue)
heartbeat[17154]: 2011/11/03_14:40:09 ERROR: Message hist queue is filling up (488 messages in queue)

Si hacemos iptables -L seguro que aprece algo al estilo….

[SERVER].root:/etc/ha.d > iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all — anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all — anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all — anywhere anywhere
ACCEPT icmp — anywhere anywhere icmp any
ACCEPT esp — anywhere anywhere
ACCEPT ah — anywhere anywhere
ACCEPT udp — anywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp — anywhere anywhere udp dpt:ipp
ACCEPT tcp — anywhere anywhere tcp dpt:ipp
ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
REJECT all — anywhere anywhere reject-with icmp-host-prohibited

 

Estas son las IPTABLES por defecto en instalaciones REDHAT 5.5 Tocará quitarlas todas con un “iptables -F”

 

debmirror, Repositorio local para paquetes en Debian Squeeze

Posted on 21 septiembre 2011 in Debian, Otros, Software by

Vamos a crear un repositorio local con debimirror para debian, en nuestro caso squeeze.

Primero de todo necesitamos un filesystem con espacio suficiente para poder dejar todos los paquetes necesarios. En mi caso lo dejamos con un FS de 100Gb ylo llamo /DADES2/mirror

Vamos a instalar el debimirror;

apt-get install debmirror

Una vez instalado, modificamos el script creado por Gary Sandi desde el este link

#!/bin/sh

ARQUITECTURA=i386

METODO=http

RAMA=lenny

RAMAS=lenny,squeeze,sid

HOST=ftp.fr.debian.org

HOST_SEGURIDAD=security.debian.org

HOST_MULTIMEDIA=ftp.debian-multimedia.org

 

DIR_MIRROR=/home/debian/debian

DIR_SEGURIDAD=/home/debian/updates

DIR_MULTIMEDIA=/home/debian/multimedia

 

SECCIONES=main,contrib,non-free

SECCION=main

 

echo "==================================================================="

echo "Actualizando los repositorios PRINCIPALES; main, contrib, non-free"

echo "==================================================================="

echo ""

debmirror -a ${ARQUITECTURA} \

-s ${SECCIONES} \

-h ${HOST}/debian \

-d ${RAMA} -r / --progress \

-e ${METODO} --ignore-release-gpg --nosource \

${DIR_MIRROR}

 

echo "====================================================================="

echo "Actualizando los repositorios de SEGURIDAD; main, contrib, non-free"

echo "====================================================================="

echo ""

debmirror -a ${ARQUITECTURA} \

-s ${SECCIONES} \

-h ${HOST_SEGURIDAD} \

-d ${RAMA}/updates -r /debian-security --progress \

-e ${METODO} --ignore-release-gpg --nosource \

${DIR_SEGURIDAD}

 

echo "==================================================================="

echo "Actualizando los repositorios MULTIMEDIA; main"

echo "==================================================================="

echo ""

debmirror -a ${ARQUITECTURA} \

-s ${SECCION} \

-h ${HOST_MULTIMEDIA} \

-d ${RAMAS} -r / --progress \

-e ${METODO} --ignore-release-gpg --nosource \

${DIR_MULTIMEDIA}

 

El script lo modificamos segun necesitad. En mi caso solo he modificado los siguientes parametros;

RAMA=squeeze

RAMAS=squeeze

HOST=ftp.caliu.cat

HOST_SEGURIDAD=security.debian.org

HOST_MULTIMEDIA=ftp.debian-multimedia.org


DIR_MIRROR=/DADES2/mirror

DIR_SEGURIDAD=/DADES2/mirror/updates

DIR_MULTIMEDIA=/DADES2/mirror/multimedia

Establecemos los permisos con un chmod +x nombre_script.sh

Ejecutamos y nos empieza a descargar todos los paquetes necesarios para hacer el mirror;

.................

[ 29%] Getting: pool/main/i/ibus/ibus-gtk_1.3.7-1_i386.deb... ok

[ 29%] Getting: pool/main/i/ibus/ibus_1.3.7-1_i386.deb... ok

[ 29%] Getting: pool/main/i/ibus/libibus-dev_1.3.7-1_i386.deb... ok

[ 29%] Getting: pool/main/i/ibus/libibus2_1.3.7-1_i386.deb... ok

[ 29%] Getting: pool/main/i/ibus/python-ibus_1.3.7-1_all.deb... ok

[ 29%] Getting: pool/main/i/ibutils/ibutils_1.2-OFED-1.4.2-1_i386.deb... ok

.................

Una vez finalizado (Tiene que decargar unas 60Gb) ya podemos configurar el apache.

apt-get install apache2

Editamos el fichero de configuración;

vim /etc/apache2/sites-enabled/defaul-000

Y modificamos el campo DocumentRoot con el directorio de nuestro repositorio;

DocumentRoot /DADES2/mirror/

Para poder configurar los clientes necesitamos configurar un servicio web o ftp para tener acceso a los ficheros. En nuestro caso, lo hacemos por http.

Instalamos un apache y creamos dos enlaces simbolicos en /var/www para que al conectarse a la web existan dos directorios, el debian y debian-security

Creamos los enlaces simbolicos

cd /var/www
ln -s /DADES/debian-repository/debian debian
ln -s /DADES/debian-repository/debian-security debian-security

 Para configurar los clientes solo tenemos que modificar el /etc/apt/source.list con los datos del nuevo servidor. Si antiguamente teniamos;

deb http://ftp.caliu.cat/debian/ squeeze main
deb-src http://ftp.caliu.cat/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as ‘volatile’
deb http://ftp.caliu.cat/debian/ squeeze-updates main
deb-src http://ftp.caliu.cat/debian/ squeeze-updates main

 

Ahora tendremos;

deb http://SERVIDOR_INTERNO/debian/ squeeze main
deb-src http://SERVIDOR_INTERNO/debian/ squeeze main

deb http://SERVIDOR_INTERNO/ squeeze/updates main
deb-src http://SERVIDOR_INTERNO/ squeeze/updates main

# squeeze-updates, previously known as ‘volatile’
deb http://SERVIDOR_INTERNO/debian/ squeeze-updates main
deb-src http://SERVIDOR_INTERNO/debian/ squeeze-updates main

 

 

VMWare Tools en Debian Squeeze

Posted on 21 septiembre 2011 in Debian, Otros, Software, VmWare by

Vamos a simplificar, si queremos instalar las VMWare Tools en una Debian Squeeze;

 vi /etc/apt/sources.list

añadimos;

deb http://ftp.es.debian.org/debian/ squeeze main contrib

deb-src http://ftp.es.debian.org/debian/ squeeze main contrib

Ejecutamos;

apt-get update 

apt-get install open-vm-tools open-vm-source 

module-assistant auto-install open-vm -i

 

Listo 😉

OpenVPN netsh command failed: returned error code 1

Posted on 11 julio 2011 in Debian, OpenVPN, Software by

Estoy preparando el manual de instalación de OpenVPN en Debian Squeeze y al finalizar todo el proceso solo me quedaba realizar la primera conexión pero me he encontrado una sorpresa. En el caso de OpenVPN 1.0.3 para Windows (en este caso Windows 7) nos aparece un error al realizar la conexión;

TAP-WIN32 device [LAN1] opened: \\.\Global\{42DD2F8F-045C-4FA3-A56F-9289645100D6}.tap
NETSH: C:\WINDOWS\system32\netsh.exe interface ip set address LAN1 dhcp
ERROR: netsh command failed: returned error code 1
NETSH: C:\WINDOWS\system32\netsh.exe interface ip set address LAN1 dhcp
ERROR: netsh command failed: returned error code 1
NETSH: C:\WINDOWS\system32\netsh.exe interface ip set address LAN1 dhcp
ERROR: netsh command failed: returned error code 1
NETSH: C:\WINDOWS\system32\netsh.exe interface ip set address LAN1 dhcp
ERROR: netsh command failed: returned error code 1
NETSH: command failed
Exiting

En este caso (netsh Command failed: returned error code 1) tenemos una solución simple.

En el fichero de configuración del cliente introducimos el siguiente comando

script-security 2 system

Con esto conseguiremos una conexión normal

Para una explicación de los motivos oficiales, mirad en el siguiente enlace

 

Introduccion a los buffers overflows

Posted on 4 julio 2011 in Security, Seguridad by

Hola, bueno pues voy a por mi primer mini-turorial a ver que os parece. Tratare sobre los overflows en este caso los stacks overflows ya que creo que es una tecnica donde entran conocimientos de informatica que son interesantes conocer

  • Programacion
  • Arquitectura de Ordenadores

En este primer contacto no voy a profundizar con todo lo que conlleva, de momento claro, este tipo de tecnica si no que intentare que sea divertido, ágil y sobre todo entendible para todos los publicos.

¿Que es un stack-overflow?

Un stack-overflow es el intento de controlar un flujo de ejecucion mediante un tamaño de datos inesperado. Vereis que cuando termine el tutorial entendereis perfectamente la definicion anterior.

En este primer mini-tutorial me centrare en explicar y demostrar como podemos controlar la ejecucion en este caso de un programa muy basico hecho en C

Registros del procesador

El procesador consta de varios registros para poder realizar su trabajo, pero nosotros por el momento solo nos vamos a centrar en uno el registro EIP

Este registro siempre almacena la siguiente instruccion a ejecutar, bueno mejor dicho este registro siempre tiene la siguiente dirección de memoria por la cual el procesador continuara ejecutando.

Imaginemos la siguiente secuencia 5 4 3 2 1 e imaginemos tambien que dicha secuencia son direcciones de memoria. Bien el procesador ejecuta la direccion 5, en ese momento el valor del registro EIP es 4, despues de ejecutar 5 el procesador ejecuta 4, en ese momento el valor del registro EIP es 3 y asi sucesivamente. Ha esto se le llama Flujo de Ejecución

Lo dicho el valor de EIP siempre sera la siguiente direccion de memoria a ejecutar por el procesador.

Ejemplo practico :)

 

#include <stdio.h>
#include <string.h>

void greeting(){
     printf("%s\n", "HOLAAAA");
}

int main(int argc, char *argv[]){
    char buffer[16];
    strcpy(buffer, argv[1]);
    printf("%s\n", buffer);

    return 0;
}

Aqui tenemos un programa, bastante inutil la verdad, pero nos ira de perlas para demostrar lo que hemos leido anteriormente. Doy por sentado que TODOS sabemos un poquito de C ¿verdad?

Bueno al grano, en la linea 10 vemos el fallo del programa la funcion strcpy. Esta funcion lo que hace es copiar, SIN CONTROLAR LA CANTIDAD DE BYTES, desde un origen de datos a un destino. En nuestro caso copia el 1er argumento de la funcion principal al buffer que hemos declarado de 16 bytes.

Bien y que pasa si el primer argumento que le pasamos a la funcion principal es superior a 16 bytes???

Pues los bytes sobrantes no se pierden por el limbo no, lo que haran son sobreescribir los contenidos de las direcciones de memoria contiguas.

En este dibujillo vemos dos registros nuevos y la pila o stack. Aun no voy a entrar en explicar la pila, de momento, porque os aseguro que es imprescindible conocer como funciona. Los dos registros nuevos son ESP este registro muestra la cima de la pila y EBP que nos muestra la base de la misma y por debajo de todo vemos el famoso registro EIP.

Como vemos en el programa hay una funcion que lo que hace es imprimir por pantalla un “Holaa” pero como podeis ver esa funcion no es llamada en ningun momento, con lo cual no se mostrara ese mensaje. Pues lo que vamos hacer es que el  mensaje se muestre y para eso vamos a controlar el flujo de ejecucion.

Herramientas.

Hay varias herramientas necesarias para poder explotar una vulnerabilidad de este tipo pero de momento nos centraremos en una… Ollydbg

Se trata de un debugger para windows bastante sencillo. El uso de este debugger queda fuera del alcance de este Mini-tutorial pero os aconsejo que pilleis un manual y os pongais con el.

Por supuesto necesitaremos un compilador, yo uso Dev-C++ bastante intuitivo.

Juguemos a los hackers

Bien una vez tenemos compilado el programilla de antes… A que no lo habeis hecho aun ¬¬ Va go go go

Lo dicho una vez compilado el programilla lo abrimos con el ollydbg.

 

 

 

 

Se nos abrira una ventana de dialogo, buscamos donde este el binario del resultado de compilar el programilla

 

 

 

 

 

 

 

 

 

 

 

 

Una vez cargado le damos a ejecutar que es el botoncillo ese del play

NOTA: Hay gente que solo al abrir el programa el ollydbg ya le carga el modulo del programa. Si os fijais en la imagen de arriba vereis como a mi me abre con… main thread, module ntdll si os abre como a mi tendreis que darle al boton de play. Si no es vuestro caso y os abre con el module [nombre Programa] No hace falta que le deis al boton play.

 

Ahora nos centraremos en este desensamblado

 

 

 

 

 

 

 

 

 

 

Os acordais de antes cuando hablaba de la secuencia aquella de numeros 5 4 3 2 1 que representaban direcciones de memoria??

Pues los numeros que veis a la izquierda  004012xx 004013xx eso son las direcciones de memoria

Si os fijais bien el valor de la direccion 00401296 es “HOLAAA” el mensaje que queremos que se muestre, mmmm interesante

Seguimos viendo el codigo y mmmm vemos en 004012E8 la sentencia strcpy, que como he comentado antes, esta funcion copia un origen de datos a un destino sin comprobar el tamaño de datos.

observemos el dibujo de la pila y pensemos un poco

 

 

 

 

 

 

 

 

Vemos que debajo de Buffer esta EBP y despues de EBP tenemos EIP Bien pensemos en todo lo que ya se ha explicado… strcpy copiara en buffer todo lo que le pasemos como parametro, como no controla la cantidad de datos podemos pasarnos de los 16 bytes. Tambien sabemos que pasa con los bytes sobrantes que sobreescriben mmmm podriamos llegar a sobreescribir EIP ??

Por supuesto que podemos sobreescribirla y de hecho es lo que queremos, recordad que EIP siempre apunta a la siguiente direccion a ejecutar, pues cojonudo vamos a darle a EIP la direccion del mensaje a mostrar. Vamos a ver como lo hacemos

Arrancamos el ollydbg y cargamos el programa compilado. Vamos a la pestaña Debugg y le damos a Arguments

Copiamos treinta A mayusculas y le damos a OK. Olly nos avisara de que los cambios no tendran efecto hasta que hagais un restart en el ollydbg. Pues en Debugg tenemos la opcion restart le damos.

Ahora le damos al Play del ollydbg y pondremos un breakpoint en la linea del strcpy con esto conseguiremos detener la ejecucion del programa justo en el strcpy

Nos situamos encima de la direccion de memoria del strcpy

 

 

 

Pulsamos boton derecho vamos a breakpoint y seleccionamos toggle

 

 

 

 

 

 

 

Le damos a restart y a play otra vez. Se iniciara el programa pulsamos F9 e iremos directamente al breakpoint. volvemos a ejecutar F9 y zasss Mensaje de error

 

 

 

Lo primero para el que no lo sepa, el valor hexadecimal de la A es 41 Si os fijais bien El valor de EBP es 41414141 mmmm que significa? Pues que hemos sobrepasado el tamaño de buffer con las A y hemos sobreescrito EBP

Y el valor de EIP ?? Pues el valor es 00004141 Esos ceros significa que no hemos sobreescrito completamente el registro EIP. Ningun problema añadamos dos A mas a los argumentos en el ollydbg

 

Ahora si !!!! ahora tenemos EIP sobreescrito completamente con nuestras A. Bien ahora mismo sabemos que con 32 bytes sobreescriremos el valor de EIP.

Ok pero no conseguimos nada sobreescribiendo con EIP con A

Correcto con A no sirve de nada pero y si en lugar de A usaramos la direccion de memoria donde esta ubicada la funcion del mensaje de saludo???

Pues como EIP siempre apunta a la siguiente instruccion a ejecutar por el procesador se mostraria el mensaje de la funcion la cual nunca es llamada.

Los viajes de gulliver de Jonathan Swift

Supongo que la mayoria conoce este libro / pelicula y me gustaría hacer hincapie en un acontecimiento de la historia en el cual una ley antiquisima de liliput obliga a la gente a abrir los huevos para comerselos por el lado estrecho, mientras otra gente le gusta abrirlos pero el lado ancho.

Y para que esta historia ??? Pues porque me apetecia contarla esto es un blog no??? Y tambien porque hemos de hablar de los endiannes que se basan en esta novela.

Los procesadores intel se basan en little-endian , mientras que motorolas se basan en big-endian.

Basicamente una direccion de memoria en intel (little-endian) se almacena de la siguiente manera…

Direccion de memoria: 47EF152A Formato Little-Endian: 2A15EF47

Se tiene que invertir el orden. En cambio en big-endian queda de la misma manera 47EF152A

Probando el “Exploit”

Bien pues vamos al lio, ejecutemos el programilla inutil desde un cmd. Sabemos que para sobreescribir EIP tenemos que utilizar 32 bytes, bien pues tenemos que conseguir que EIP contenga la direccion del mensaje a mostrar, miremos la dirección.

Cargamos el programa en el ollydbg le damos al play y buscamos la direccion del mensaje

Vemos que ASCII “HOLAAA” esta en 00401296 pero como somos gente elegante lo que vamos hacer es llamar a la funcion entera pa que muestre el saludo y eso se encuentra en la instruccion PUSH EBP direccion 00401290. PUSH es una instruccion que lo que hace es insertar en la pila pero eso es otro cuento que os prometo contare en los proximos tutos. Eso si, si veo que este lo mira la gente si no va ha escribir mi prima.

Bueno pues eso con 32 bytes sobreescribimos EIP y vemos que las direcciones son 4 bytes. Pues invocamos a pitagoras y deducimos que para alinear la direccion que queremos con EIP hay que restarle 4 bytes a las 32. Nos quedan 28 bytes o sea 28 A, pues ahora a las 28 A le añadimos la direccion del PUSH EBP 00401290 pero recordad que hemos dicho que usamos formato little-endian entonces las pondremos al reves o sea AAAAAAAAAAAAAAAAAAAAAAAAAAAA90124000

Quietos y paraos que aun esto no funciona, ya os veo metiendolo rapidamente como argumento… Pues no, no funcionara. Antes de eso vamos a comentar un par de cosas… Una de ellas es la direccion de memoria que vamos a utilizar, fijaros que empieza por 00

Pues es un problema y no lo es. Es un problema porque 00 lo interpretara como fin de cadena, con lo cual dejaria de escribir en el buffer y no lo es porque como esta en formato little-endian y lo vamos a poner al reves no nos cortara nada de nada jajajajajajajjajajaj me encantaaaaaa. Es que asi me libro de escribir como podriamos solucionar el problema del 00 :p

Y el segundo es que no podemos poner directamente la direccion si no tenemos que pasarlo a ASCII.

Yo lo hago con el notepad++ y un plugin, pero bueno hacedlo con el que querais no hay problema

el exploit seria… AAAAAAAAAAAAAAAAAAAAAAAAAAAA901240 y omitimos los 00 del final ya que no hacen falta

Recordad que el 901240 teneis que pasarlo a ASCII

Probemos

Fijaros como queda mi direccion cuando la paso a ASCII, ahora pulsemos ENTER!!!! que nerviosssssss….

Zasssskaaaa en toa la bocaaaa ahi esta el Saludeteeeeee :)

No ha sido muy dificil no? Espero que os haya funcionado si no es asi repasad y mirad no os hayais dejado algo por hacer. Las direcciones de memoria no tienen porque ser las mismas que las mias asi que no seais gañanes y mirad bien eso.

He intentado demostrar que es controlar el flujo de ejecucion y creo que lo hemos conseguido, hemos controlado ese flujo mediante un tamaño de datos no esperado ergo hemos provocado un stack-overflow. No os penseis que con esto ya podremos “Dominar el mundo” nada mas lejos de la realidad, aun falta un caminito para poder aprovechar como dios manda un fallo de este tipo. ASLR, cookie(canary), DEP son terminos que nos tocaran las narices, peroooo para eso estamos para SALTARNOS esas cosas 😉

Si teneis cualquier duda ya sabeis postead e intentare ayudaros en lo que buenamente pueda.

Seria interesante que os mirarais para los proximos tutos temas como..

  • La pila (Stack)
  • Programacion C y python (Me encanta)
  • ensambler

Sera muy util la verdad.

Bueno ha sido un placer escribir, espero que os haya gustado y espero veros en los proximos diassssss.

Saludos.

bt380

 

 

Ampliar FileSystem en cluster AIX HACMP

Posted on 28 junio 2011 in AIX, FileSystem, HACMP, IBM, Otros by

Vamos a listar de FS que tenemos

[AIXServer].root:/ > df -m
Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4         256.00    140.58   46%     3021     3% /
/dev/hd2        2688.00    740.54   73%    34655     6% /usr
/dev/hd9var     5120.00   1268.55   76%     2043     1% /var
/dev/hd3         512.00    477.04    7%     1053     1% /tmp
/dev/hd1         128.00     97.62   24%      412     2% /home
/proc                 –         –    –         –     –  /proc
/dev/hd10opt     256.00     91.47   65%     3065     5% /opt
/dev/inst_lv    1920.00    617.22   68%      402     1% /usr/sys/inst.images
/dev/admin    128.00     73.79   43%      102     1% /usr/local/admin
/dev/tempinglv   1920.00    593.36   70%      753     1% /temping
/dev/loglv      1024.00    251.11   76%      977     1% /logs
/dev/securitelv   2432.00      0.00  100%      938     1% /tools/securite
/dev/rcu_lv    17408.00   3071.92   83%    65214     9% /home/app
/dev/lv1         496.00    495.60    1%       10     1% /nfs1test

Queremos ampliar el FS /dev/rcu_lv de 17Gb a 20Gb

Vamos a listar el tamaño de este FS (se muestra en bloques de 512, cosas de la historia)

[AIXServer].root:/ > lsfs /dev/rcu_lv
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/rcu_lv     —         /home/app              jfs2  35651584 rw         no   no

Calculamos el nuevo espacio. En nuestro caso pasamos de 17Gb a 20Gb

[AIXServer].root:/ > bc
35651584/2                                        (dividimos por 2 por el tema de los bloques de 512)
17825792
17825792/1024                                  (para mostrar el tamaño en Mb)
17408
17408/1024                                        (para mostrar el tamaño de Gb)
17                                                       (los 17Gb que tenemos tendremos que calcular el tamaño nuevo)
20*1024*1024*2                               (queremos 20Gb y vamos a pasarlo en bloques de 512)
41943040 (este es el nuevo tamaño)

Ampliaremos el FS por smitty desde la opción de HACMP. si lo hicieramos directamente en la maquina, el nodo pasivo no se daria cuenta del cambio y al balancear el servicio tendriamos problemas

Vamos a Smitty HACMP
[AIXServer].root:/ > smitty hacmp

Vamos a System Management (C-SPOC)

HACMP Logical Volume Management

Shared File Systems

Enhanced Journaled File Systems

Nota! Tal y como dice Carlos-Vindobona en los comentarios, si el FS es JFS en vez de JFS2 (que es con el que trabajamos ahora) marcariamos “Journaled File Systems”

Change / Show Characteristcs of a Shared Enhanced Journaled File Systems

Ahora ponemos en SIZE of file system el resultado de 20Gb*1024*1024*2=41943040

 

Enter y…

Ya tenemos el resultado, el nuevo FS tiene 20Gb de espacio

Vamos a verlo;

[AIXServer].root:/ > df -m
Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4         256.00    140.58   46%     3021     3% /
/dev/hd2        2688.00    740.54   73%    34655     6% /usr
/dev/hd9var     5120.00   1277.39   76%     2043     1% /var
/dev/hd3         512.00    477.04    7%     1053     1% /tmp
/dev/hd1         128.00     97.62   24%      412     2% /home
/proc                 –         –    –         –     –  /proc
/dev/hd10opt     256.00     91.47   65%     3065     5% /opt
/dev/inst_lv    1920.00    617.22   68%      402     1% /usr/sys/inst.images
/dev/admin    128.00     73.79   43%      102     1% /usr/local/admin
/dev/tempinglv   1920.00    593.36   70%      753     1% /temping
/dev/loglv      1024.00    251.10   76%      977     1% /logs
/dev/securitelv   2432.00      0.00  100%      938     1% /tools/securite
/dev/rcu_lv    20480.00   6143.82   71%    65214     5% /home/app
/dev/lv1         496.00    495.60    1%       10     1% /nfs1test

Nagios Operations Dashboard

Posted on 23 junio 2011 in Linux, Nagios, Otros by

Buscando cosas de nagios he encontrado un Nagios Operations Dashboard

Es un dashboard pensado para entornos de Operación. Simplicidad al maximo.  Muestra solo las alertas Critical y Warning

Este Dashboard se basa en 2 ficheros;

nagios.php (que te muestra la web)

nagios_get.php (que revisa el estado de Nagios por el fichero status.dat, este es llamado por nagios.php)

Lo unico que tenemos que hacer es modificar el fichero nagios_get.php indicando donde tenemos el fichero status.dat

En la sección nagios dejo colgada la versión para la web. En caso de tener alguna alerta aparecerá en dicha sección Link

Dejo aqui un link de descarga del software dash y su web oficial

P.D. Parece que hay una versión 2 de esta herramienta, pero esta nueva versión es para Nagios con Mysql, ya que la ultima usa el status.dat. Nueva Versión