Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Levantando un servidor Nagios en UBUNTU

Hola a todos,

bueno, estos ultimos dos dias estuve levantando un servidor Nagios en mi oficina, y como producto de eso, logre hacer este pequeño articulo que lo comparto con todos. El contenido de este post fue tomado del enlace a seguir:

Levantar servidor nagios en Ubuntu


http://adf.ly/1eUMuh

Como levantar un Servidor Nagios en Ubuntu

Nagios es un sistema open source de monitorización de redes ampliamente utilizado, que vigila los equipos (hardware) y servicios (software) que se especifiquen, alertando cuando el comportamiento de los mismos no sea el deseado. Entre sus características principales figuran la monitorización de servicios de red (SMTP, POP3, HTTP, SNMP, FTP, etc), la monitorización de los recursos de sistemas hardware (carga del procesador, uso de los discos, memoria, estado de los puertos, etc.), independencia de sistemas operativos, posibilidad de monitorización remota mediante túneles SSL cifrados ó SSH, y la posibilidad de programar plugins específicos para nuevos sistemas.
Se trata de un software que proporciona una gran versatilidad para consultar prácticamente cualquier parámetro de interés de un sistema, y genera alertas, que pueden ser recibidas por los responsables correspondientes mediante (entre otros medios) correo electrónico y mensajes SMS, cuando estos parámetros exceden de los márgenes definidos por el administrador de red.
Nagios fue originalmente diseñado para ser ejecutado en GNU/Linux, pero también se ejecuta bien en variantes de Unix. Está licenciado bajo la GNU General Public License Version 2.
Este manual de instalación y configuración básica para monitorizar la maquina donde instalemos el mismo Nagios (localhost) esta extraído de la guía oficial de Nagios, asi como de diversas paginas web, la guia de net-SNMP y la guia de NRPE entre otros.

Instalacion del Servidor Nagios

Primero instalaremos Apache2 y las librerías necesarias para utilizar Nagios.
Instalamos Apache2 y el paquete essential con librerías para compilar y desarrollar:
   #apt-get install apache2
   #apt-get install build-essential
Instalamos la librería gd2:
   #apt-get install libgd2-xpm-dev
Creamos una cuenta de usuario ‘nagios’ y le modificamos la contraseña:
   #useradd -m nagios
   #passwd nagios
Crearemos la cuenta de usuario para comandos externos subministrados a través de la interfaz web. Añadiremos al usuairo ‘nagcmd’ al grupo ‘nagios’ y al ‘www-data’:
   #groupadd nagcmd
   #usermod -a -G nagcmd nagios
   #usermod -a -G nagcmd www-data
Ahora vamos al directorio /home/mi_home/ para realizar las descargas de nagios y los plugins de la página http://www.nagios.org/download/:
   #cd /home/mi_home/
   #wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz
   #wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
Desempaquetamos el tar y accedemos a la carpeta del mismo:
   #tar xzf nagios-3.0.6.tar.gz
   #cd nagios-3.0.6
Ejecutamos el script para configurar con los siguientes parámetros:
   #./configure --with-command-group=nagcmd
Compilamos el código fuente de nagios e instalamos:
   #make all
   #make install
   #make install-init
   #make install-config
   #make install-commandmode
Personalizamos nuestra configuración insertando nuestra dirección de correo para que nagios se pueda comunicar con nosotros y podamos recibir las alertas en el fichero /usr/local/nagios/etc/objects/contacts.cfg
   #vi /usr/local/nagios/etc/objects/contacts.cfg
Configuramos la interfaz Web e instalamos el fichero de configuración de Apache2 en conf.d:
   #make install-webconf
Creamos la cuenta de usuario ‘nagiosadmin’ para hacer login al interfaz web y nos pida autenticación:
   #htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Recargamos Apache2 para que modifique los cambios realizados:
   #/etc/init.d/apache2 reload
Desempaquetamos los plugin e ingresamos en el directorio:
   #cd /home/mi_home/
   #tar xzf nagios-plugins-1.4.11.tar.gz
   #cd nagios-plugins-1.4.11
Antes de compilar e instalar los plugins, nagios por defecto no tiene los plugins de SNMP (los cuales son muy importante para revisar equipos por la red), entonces debemos bajarlos de su web: http://www.net-snmp.org/download.html (ojo, son paquetes binarios en rpm, no importa ya que no debemos hacerles nada a los paquetes)
Los copiamos al directorio donde desempaquetamos los plugins.
Compilamos e instalamos los plugins:
   
   #./configure --with-nagios-user=nagios --with-nagios-group=nagios
   #make
   #make install
Configuramos Nagios para que arranque automaticaménte:
   #ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Verificamos que la configuración que tenemos es toda correcta con el siguiente comando:
   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Finalmente, y si todo ha salido bien, procedemos a arrancar Nagios:
   #/etc/init.d/nagios start
Con todo esto, ya tenemos instalado y configurado Nagios para funcionar y recibir alarmas del mismo servidor nagios (localhost). Abrimos un explorador e ingresamos la dirección ‘http://localhost/nagios/’ (o http://IP_maquina/nagios/) y cuando nos pida autenticación, ingresamos el usuario creado anteriormente ‘nagiosadmin’ con su correspondiente contraseña.
Una vez dentro, podemos realizar un click en “Service Detail” y monitorizar nuestro servidor. Recordatorio: La ubicación de todos los ficheros de configuración están ubicados en “/usr/local/nagios”.
Entonces, hasta ahora tenemos un servidor nagios, levantado, pero solo podemos ver los servicios de nuestro localhost (servidor o desktop) con el nagios instalado, debemos hacer ciertas configuraciones para poder monitorear servicios de hardware de Red asi como de otros Servidores (en Linux, Unix o Windows) y podemos monitorizar varias cosas, como ser uso de la CPU, uso de Memoria, uso de Disco Duro, etc.

Monitorizando un Servidor en Linux

Para monitorizar otros servidores o maquinas con Linux que no sea nuestra Localhost, debemos usar el plugin NRPE, esre plugin, tiene dos partes:
El plugin NRPE check_nrpe que reside en el Servidor Nagios. el demonio NRPE, que reside en la maquina a monitorizar.
La forma en que funcionan es la siguiente:
  • Nagios ejecuta check_nrpe y le dice que servicio necesita revisar.
  • check_nrpe se contacta con el demonio NRPE en el host remoto (una opcion es hacerlo por SSL.
  • El demonio NRPE corre y revisa el servicio requerido
  • El resultado es pasado del demonio NRPE a check_nrpe y este enviado y procesado a Nagios.
Ahora continuaremos con la Instalacion del Host Remoto.
Entramos a la consola y tomamos privilegios de root.
   $sudo -s
creamos un usuario nagios con su contraseña:
   #/usr/sbin/useradd nagios
   #passwd nagios
Instalamos los plugins de nagios (los mismos que instalamos en el Servidor Nagios).
   #cd /home/mi_home/
   #wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
   #tar xzf nagios-plugins-1.4.11.tar.gz
   #cd nagios-plugins-1.4.11
Compilamos e Instalamos los plugins
   #./configure
   #make
   #make install
Los permisos al directoria del plugin deben ser configurados de la siguiente manera
   #chown nagios.nagios /usr/local/nagios
   #chown -R nagios.nagios /usr/local/nagios/libexec
Ahora instalamos en demonio NRPE, para eso lo debemos bajar, lo estraemas
   #cd ~/downloads
   #wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz
   #tar xzf nrpe-2.8.tar.gz
   #cd nrpe-2.8
Antes de compilarlo, vemos si tenemos todo lo necesario y hacemos:
  #apt-get install build-essential
  #apt-get install xinetd
  #apt-get install libssl-dev
Lo compilamos
   #./configure
   #make all
Instalamos el pulgin NRPE (para pruebas), el demonio y el archivo de configuracion del demonio
   #make install-plugin
   #make install-daemon
   #make install-daemon-config
Instalamos el demonio NRPE como un servicio en xinetd
   #make install-xinetd
editamos el archivo /etc/xinetd.d/nrpe y le añadimos la direccion IP del servidor Nagios en la linea only_from
   only_from=192.168.0.205 <nagios_ip_address>
Añadimos la siguiente entrada del demonio NRPE a /etc/services
   nrpe  5666/tcp  #nrpe
Reiniciamos el servicio xinetd
   #/etc/init.d/xinetd restart
Ahora probamos de manera local el demonio NRPE
primero verificamos que el demonio NRPE este corriendo en xinetd
   #netstat -at | grep nrpe
la salida deberia ser:
   tcp  0  0 *:nrpe  *:*  LISTEN
Si esa es la salida, perfecto, esta funcionando el demonio. Si no, se debe revisar lo siguiente: haber añadido nrpe en el archivo /etc/services Que la directiva only_from rn /etc/xinetd.d/nrpe contenga una direccion IP valida que xinetd este instalado y corriendo
Ahora, revisamo que el demonio NRPE este funcionando correctamente
   #/usr/local/nagios/libexec/check_nrpe -H ip_de_la_maquina_local
deberiamos tener el siguiente resultado
   NRPE v2.8
Ahora nos aseguramos de que el firewall deje que el demonio NRPE sea accesado de forma remota abriendo el puerto tcp 5666 dentro de iptables
Cabe recalcar que se puede editar el archivo de configuracion por el cual corre el nrpe en la maquina local:
   #vi /usr/local/nagios/etc/nrpe.cfg
Asi como esta la actualizacion lo que hara el NRPE es el monitoreo de usuarios, carga del Procesador, uso del Disco Duro, Listar los Todos los Procesos y ver si existen procesos “Zombies”
Ahora, pasemos a la configuracion del Servidor Nagios:
debemos instalar el plugin check_nrpe
   $sudo -s
nos vamos al directorio con los archivos bajados
   #cd  ~/downloads
   #wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz
Extraemos el NRPE
   #tar xzf nrpe-2.8.tar.gz
   #cd nrpe-2.8
Compilamos el NRPE
   #./configure
   #make all
instalamos el plugin
   #make install-plugin
Nos aseguramos que el check_nrpe se puede comunicar con el demonio NRPE en el linux remoto, (La IP de mi maquina linux remota es 192.168.0.1)
   #/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1
Deberia respondernos:
   NRPE v2.8
Si no da esa respuesta, debemos revisar de que el firewall del host remoto no nos bloquee, verificar que el demonio este instalado en xinetd (Ver todo eso mas arriba)
Ahora debemos crear definiciones de comandos (command definitions), para eso editamos el commands.cfg Nagios ejecuta check_nrpe y le dice que servicio necesita revisar.
  • check_nrpe se contacta con el demonio NRPE en el host remoto (una opcion es hacerlo por SSL.
  • El demonio NRPE corre y revisa el servicio requerido
  • El resultado es pasado del demonio NRPE a check_nrpe y este enviado y procesado a Nagios.
   #vi /user/local/nagios/etc/commands.cfg
y añadimos:
   define command{
 command_name  check_nrpe
 command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 }
ya estamos listos para añadir servicios que seran monitorizados por la configuracion de Nagios
Entonces creamos las definiciones del servicio para maquinas Linux/Unix, esto crando un archivo con TODO lo que pondra a continuacion en:
#vi /usr/local/nagios/etc/objects/linux-box.cfg
Donde ponemos:
   Define host{
name linux-box ;name of this template
 use     generic-host  ;Inherit default values
 check_period    24x7
 check_interval   5
 retry_interval    1
 max_check_attemps   10
 check_command   check-host-alive
 notification_period   24x7
 notification_interval   30
 notification_options   d, r
 cotact_groups    admins
 register    0   ;DONT REGISTER THIS – ITS A TEM
 }
cabe recalcar que las definiciones que usa este template (linux-box), hereda los valores por defecto del template generic-hosts, el cual esta definido en localhost.cfg
Ahora definimos el el nuevo host (podemos definir varios hosts, dependiendo el numero de servers Linux que necesitemos monitorear)
   define host{
 use   linux-box   ;Inherit default values from tempate
 host_name  host_remoto_1  ;The name we're giving this server
 alias    Firewall   ;A longer name for the Server
 address   192.168.0.1   ;IP address of the Server
 }
Ahora definimos las funciones que se monitorizaran, por ejemplo empecemos con el CPU. Recuerden que check_load es enviado a check_nrpe y este le dice al demonio NRPE que corra un comando “check_load” definido en el archivo nrpe.cfg, y asi, esto se hace a todos los servicios que revisemos que esten dentro del nrpe.cfg
   define service {
 use    generic-service
 host_name   host_remoto_1
 service_description  CPU Load
 check_command  check_nrpe!check_load
 }
Ahora para saber el numero de usuarios conectados:
   define service{
 use    generic-service
 host_name   host_remoto_1
 service_description  Current Users
 check_command  check_nrpe!check_users
 }
Ahora para saber el espacio de disco en /dev/hda1
   define service{
 use    generic-service
 host_name   host_remoto_1
 service_description  /dev/hda1 Free Space
 check_command  check_nrpe!check_hda1
 }
Ahora para saber el numero total de procesos
   define service{
 use    generic-service
 host_name   host_remoto_1
 service_description  Total Processes
 check_command  check_nrpe!check_total_procs
 }
Ahora para saber el numero de procesos zombies
   define service{
 use    generic-service
 host_name   host_remoto_1
 service_description  Zombie Processes
 check_command  check_nrpe!check_zombie_procs
 }
Finalmente, añadimos la siguiente linea al archivo nagios.cfg
   cfg_file=/usr/local/nagios/etc/objects/linux-box.cfg
Esto para que nagios sepa que cosas hacer correr.
Revisamos que todo este bien
   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Si hay errores, los arreglamos, si todo esta bien, reiniciamos Nagios
   #/etc/init.d/nagios restart
Listo, esa es la configuracion para monitorizar Servidores Linux de forma basica, tambien se pueden añadir mas comandos como el check_swap
Debemos ingresar al host remoro como usuario nagios (que se creo en la instalacion del NRPE), y digamos que queremos que nos de un Warning con el 25% de espacio disponible y que nos de un Critical con el 10% entonces:
   #/usr/local/nagios/libexec/check_swap -w 25% -c 10%
entonces, añadimos ese comando al nrpe:
   #vi /usr/local/nagios/etc/nrpe.cfg
y añadimos:
   command[check_swap]=/usr/local/nagios/libexec/check_swap -w 25% -c 10%
Ahora, volvemos a nuestro servidor Nagios y ahi definimos el servicio en linux-box.cfg
   define service{
 use    generic-service
 host_name   host_remoto_1
 service_description  Swap Usage
 check_command  check_nrpe!check_swap
 }
 
Listo, nos aseguramos que no hayan errores y reiniciamos nagios
   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
   #/etc/init.d/nagios restart

Monitorizando Servidores en Windows

Ahora, como se vio en algun momento, no solo podemos monitorizar maquinas en Linux/Unix, sino tambien en Windows.
Nagios recomienda usar el plugin NSClient++, asi como en Linux hay que instalar ciertas cosas en la maquina a ser monitorizada, lo mismo pasa con windows.
La forma de funcionar es la siguiente, en los paquetes de plugin de Nagios viene por defecto el check_nt, este se comunica con el host remoto (mas especificamente al NSClient++) y este ultimo, es el que revisa informacion como ser CPU, Memoria, Espacio de Disco, etc.
Primero debemos abrir para editar:
   #vi /usr/local/nagios/etc/nagios.cfg
Ahi descomentamos (borramos) numeral (#) de la siguiente linea.
   #cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Guardamos y salimos.
Ahora debemos instalar el agente en Windows, para eso vamos y descargamos de la pagima http://sourceforge.net/projects/nscplus.
Descargamos la ultima version, la que es RC (realise candidate), ya que hice pruebas con la mayoria, y el ultimo realise candidate fue el que menos bugs tiene (NSClient 0.3.6 RC8)
Lo Instalamos (una interfac grafica), elegimos que la carpeta sea C:\NSClient++, todas las demas opciones las dejamos en blanco.
Una vez instalado, abrimos el archivo NSC.INI y lo editamos:
  • Descomentando (borrando ;) todos los modulos en la seccion [modules], menos CheckWMI.dll
  • En la seccion [setting], ponemos un password, ya que si se lo deja en blanco, el bug se activa y el agente no funciona.
  • En la misma seccion [setting], si queremos dejamos en blanco la ip de allowed_hosts (para que cualquier server se conecte) o ponemos la IP del Servidor Nagios (mejor).
  • Y en la seccion [NSClient], nos aseguramos de descomentar el puerto y que este en 12489
Guardamos los cambios y Salimos
Ahora paramos el servicio con
   nsclient++ /stop
y lo iniciamos con
   nsclient++ /start
Ahora todos los cambios surtieron efecto.
De vuelta a nuestro servidor Nagios ahora definimos los objetos editando el windows.cfg en
   #vi /usr/local/nagios/etc/objects/windows.cfg
Donde ponemos:
   define host{ 
      use         windows-server  ; Inherit default values from a Windows server template 
      host_name        winserver   ;Nombre que le damos al host
      alias       Servidor Windows SQL
      address     192.168.0.2 
      } 
Listo, ahora podemos añadir definiciones de servicio en el mismo archivo
Monitoreamos la version del NSClient
   define service{ 
        use                        generic-service 
 host_name                 winserver 
 service_description            NSClient++ Version 
 check_command                 check_nt!CLIENTVERSION 
        }  
Monitoreamos el tiempo que el Servidor esta “en linea” (up time)
   define service{ 
        use                            generic-service 
        host_name                      winserver 
        service_description          Uptime 
        check_command                 check_nt!UPTIME 
        } 
Monitorizamos la carga del CPU, donde nos dara un Warning al 80% y Critico al 90% si se mantienen con esa carga por mas de 5 minutos
   define service{ 
         use                         generic-service 
        host_name                        winserver 
    service_description                  CPU Load 
    check_command                         check_nt!CPULOAD!-l 5,80,90 
      } 
Monitorizamos el uso de memoria, donde nos da un warning con el 80% alcanzado un Critical con el 90 %
   define service{
         use                         generic-service
         host_name                          winserver
         service_description         Memory Usage
         check_command                        check_nt!MEMUSE!-w 80 -c 90
         }
Monitorizamos el uso del Disco C:\ (nota, esto se puede hacer para todos los discos que necesitemos)
   define service{
          use                       generic-service
          host_name                          winserver
          service_description       C:\ Drive Space
          check_command             check_nt!USEDDISKSPACE!-l c -w 80 -c 90
 }
Finalmente revisamos si el proceso Explorer.exe esta corriendo
   define service{ 
        use                 generic-service 
        host_name                       winserver 
        service_description             Explorer 
        check_command                   check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe 
        } 
Ahora, le ponemos el password al archivo commands.cfg para que el NSClient pueda ser accedido:
   #vi /usr/local/nagios/etc/commands.cfg
Donde:
   define command{ 
       command_name check_nt 
       command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s Contraseña_Configurada -v $ARG1$ $ARG2$ 
    } 
Listo, nos aseguramos que no hayan errores y reiniciamos nagios
   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
   #/etc/init.d/nagios restart

Monitorizando Hardware de Red

Ahora pasaremos al monitoreo de Hardware de Red, como ser Switches y Routers. Cabe recalcar que este hardware debe poder soportar SNMP, generalmente, el hardware al que se le asigna una IP, soporta SNMP, ya que se usa este protocolo y plugins del net-SNMP (que se instalaron al principio del tutorial).
En caso de que nuestro Hardware no Soporte SNMP, verificar si con un upgrade al firmware lo puede hacer y si no, solo nos limitaremos a saber que esta en linea mediante PING.
Primero debemos editar:
   #vi /usr/local/nagios/etc/nagios.cfg
ahi, descomentamos borrando el numeral (#) de la siguiente fila
   #cfg_file=/usr/local/nagios/etc/objects/switch.cfg
Guardamos y salimos.
Ahora, debemos crear la definicion del objeto para monitorear un switch o un router
abrimos para editar
   #vi /usr/local/nagios/etc/objects/switch.cfg
y ahi modificamos
   define host{ 
       use          generic-switch           ; Inherit default values from a template 
         host_name         Switch_1          ; The name we’re giving to this switch 
       alias   TrendNet TEG-240WS      ; A longer name associated with the switch 
         address  192.168.0.20            ; IP address of the switch 
        hostgroups  allhosts,switches         ; Host groups this switch is associated with 
       } 
(hay que añadir la cantidad de switches, routers o hubs que tengamos en esta seccion, un “define host” para cada uno)
Listo, ahora podemos añadir servicios a ser monitorizados, como ser la perdida de paquetes y el Round Trip Average:
   define service{ 
       use                    generic-service      ; Inherit values from a template 
 host_name                  Switch_1             ; The name of the host the service is associated with 
 service_description        PING                 ; The service description 
 check_command              check_ping!200.0,20%!600.0,60% ; The command used to monitor the service 
 normal_check_interval      5                    ; Check the service every 5 minutes under normal conditions 
 retry_check_interval       1                    ; Re-check the service every minute until its final/hard state is determined 
        } 
Si el hardware soporta SNMP, podemos monitorear el Status de dicho protocolo:
   define service{ 
       use                   generic-service ; Inherit values from a template 
 host_name                       Switch_1
 service_description          Uptime 
 check_command                check_snmp!-C public -o sysUpTime.0 
      } 
Tambien podemos monitorizar un puerto o interface en especifico del switch:
   define service{ 
       use                   generic-service ; Inherit values from a template 
 host_name                       Switch_1 
 service_description      Port 12 Link Status 
 check_command            check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB 
      } 
(Hay que añadir la cantidad de servicios a ser monitorizados por cada host que hayamos añadido, todo eso dentro de este archivo).
Listo, nos aseguramos que no hayan errores y reiniciamos nagios
   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
   #/etc/init.d/nagios restart
Ahora, lo que tenemos es un Servidor Nagios de monitorizacion un poco basico, el cual nos da informacion medianamente basica, leyendo el Manual de Nagios (www.nagios.org) podemos hacer mas cosas o aumentarle mas cosas.
Pero, hay una partecita que no se ve bien, que es la del mapa, ya que en todos los dispositivos que pongamos, nos saldra un horrible signo de interrogacion.
Pero eso lo podemos cambiar.
Bueno, esto es facil, basicamente, entramos a www.nagiosexchange.org , buscamos los packs o el pack de imagenes que mas nos guste, por ejemplo a mi me gusta Fnagios, ya que puedo personalizar incluso la imagen de cada una de mis maquinas Linux, segun su distribucion, impresoras, wi-fi, etc.
Lo bajo, lo desempaqueto (porque es un .tar.gz) y copio todas las imagenes que quiro en:
   /usr/local/nagios/share/images/logos
Cada icono suele venir en formatos .png, .jpg, .gif y .gd2, esto porque se usan diferentes formatos para diferentes lugares.
Ahora enlazamos la imagen que queremos con cada uno de nuestros hosts, esto en donde este defino el host, por ejemplo
   #vi /usr/local/nagios/etc/objects/localhost.cfg
y ponemos:
   define host{
       use                      linux-server            ; Name of host template to use
         host_name                localhost
   alias                    localhost
   icon_image             ubuntu.gif
   statusmap_image            ubuntu.gd2
   address                    127.0.0.1
     }
Asi, ahora podre tener el Logo de Ubuntu en mi Servidor Ubuntu.
Y asi en cada uno de los hosts que estemos monitorizando, saldra su logo, en el mapa asi como en la lista.
Creo que con eso se termino este pequeño tutorial, cualquier consulta, revisen la documentacion de Nagios que esta disponible en el sitio web oficial www.nagios.org.

Como descargar y actualizar CDs y DVDs de GNU/Linux

He añadido una página al wiki de softwarelibre.org.bo acerca de como utilizar Jigdo para descargar y actualizar CD/DVDs de GNU/Linux:

http://adf.ly/1eUMre

Hay varios otros articulos allí acerca de GNU/Linux:


http://adf.ly/1eUMsY

Virtual Server

Pregunta

En este momento estoy comprando 2 servers para mi oficina, pero quiero virtualizar varios servicios, entre ellos es mantener un Win2003 Server ya que parte de nuestro sistema actual esta asi... :S

Mi pregunta va, que experiencias tuvieron con virtualizacion de Servidores ?, yo maneje VMWare y VirtualBox, pero lei en el Internet que Xen Server es muy bueno para Virtualizar Servidores, que experiencias tuvieron?, como les fue?, tienen algun how to o sitio web?... Avisenme porfa

Respuesta

Yo he probado con todos ellos, para empezar Xen es muy diferente a VMWare y VirtualBox ya que ellos corren en la capa de aplicaciones del SO (excepto VMWare ESX que es similar a Xen); Xen en cambio corre a muy bajo nivel, se mezcla con el sistema operativo anfitrión (Kernel) lo cuál lo hace más rápido y hasta podría decirse que los OS invitados corren casi con hardware nativo; seguramente tus servidores tendrán tecnología Intel-VT o AMD-V es un requisito para para virtualizar descentemente.

Si quieres probar Xen aquí hay un excelente manual:


http://adf.ly/1eUMXS

Otra respuesta

Mi recomendación es que uses KVM, si el sistema operativo primario de
la máquina va a ser Linux. Xen opera bajo un modelo de hipervisor puro
(esto es, Xen corre por debajo del núcleo incluso del sistema
primario), por lo cual hace falta portar cada versión de Linux a Xen
como si fuera una arquitectura nueva, y esto no es sencillo. Desde el
núcleo 2.6.18 (de hace cosa de dos años) hasta el 2.6.27, Xen no
soportó lanzar como kernel primario (Dom0) a ningún Linux. Mientras
tanto, KVM (que sigue un modelo muy distinto - las máquinas virtuales
son sólo procesos que corren dentro de un Linux fundamentalmente sin
cambios) es parte oficial del kernel desde 2.6.21.

Xen te da una ventaja de rendimiento si tus máquinas virtuales son
también Linux (u otros sistemas operativos libres), dado que puedes
correrlos bajo entornos paravirtualizados (modificando cada uno de los
sistemas huésped, donde saben que no corren en una arquitectura real y
delegan expresamente todas las llamadas a hardware al hipervisor). Sin
embargo, para correr Windows, tienes que hacer una virtualización
completa, y Xen no te da ninguna ventaja.

Comentario sobre la respuesta

Discrepo, si vas a virtualizar sistemas Windows entonces es mejor que
uses Xen de alguna de las distros "Enterprise".

¿ por qué razón ?

Es cierto que originalmente Windows no tiene buen rendimiento (disco y
red principalmente) con Xen, pero Red Hat Enterprise Linux y Suse
Enterprise proporcionan un juego de controladores paravirtualizados que
incrementan el rendimiento de Windows, y también deberían permitir usar
sistemas Linux sin modificación, es decir que no estén preparados para
Xen. Aunque esto último no lo he probado, mis sistemas virtualizados
siempre han sido Linux modificados (CentOS y Red Hat). Tienes que tener
en cuenta que tus servidores deben tener un procesador con tecnología
Intel Virtualization (Intel VT) o AMD Virtualization (AMD-V).

Mira este enlace para leer lo que te menciono


http://adf.ly/1eUMZC

Pregunta aclaratoria


Una consulta ¿cual es la carga de trabajo de tus aplicaciones finales? me refiero a la demanda de las aplicaciones finales, olvida las bases de datos, por parte del usuario.
en mi humilde opinion si tu demanda es reducida no te hagas tanto problema y ve por la solucion que menos trabajo de soporte requiera, caso contrario deberias apoyarte en las sugerencias que apuntan a una virtualizar mas intima que incluso demanada tecnologia en el mismo hardware.


Respuesta a la pregunta aclaratoria

Gracias por las respuestas, bueno, revisando el hardware que tengo, no
estoy seguro que mi micro soporte VT, no encuentro informacion alguna
al respecto. Por si acaso, es un Intel Xeon Quad Core E5504 de 2GHz.

Comentario a esa respuesta
http://adf.ly/1eUMbX
específicamente,

http://adf.ly/1eUMdJ

Sí tiene lo necesario.

Pero hay otra forma más fácil. Arranca con RHEL/CentOS 5 o posterior y
ve a una consola. Para si el CPU soporta Intel-VT (vmx) o AMD-V (svm)
usa la siguiente orden:

egrep "vmx|svm" /proc/cpuinfo

No he probado con Ubuntu pero supongo que debería funcionar

Recomendación:

Instala tu Windows con dos discos duros. El disco
primario ("C"), para tus programas y aplicaciones. Pon tu base de
datos en el disco secundario ("D"). Corre KVM con el disco primario en
modo "snapshot" (esto es, para que descarte al finalizar la sesión
cualquier cambio que le hayas hecho). Será el Windows más estable y
ágil de la historia de la humanidad.

Otra pregunta aclaratoria

Entonces me voy hacia la idea de usar KVM, algun comentario al
respecto, alguien uso KVM en Ubuntu?? mi idea es usar Ubuntu 8.04 por
ser LTS.

Respuesta a esa pregunta aclaratoria

¿ KVM ? ...no se como anda la virtualización en Ubuntu 8.04. Yo lo probé
hace tiempo con Xen pero me quedo con CentOS/RHEL+Xen. ¿ Por
qué ? ...porque esos sujetos están metidos en el tema de virtualización
hace tiempo y tienen documentación al respecto y cosas como
controladores paravirtualizados que ya mencioné.

Otra respuesta a pregunta aclaratoria

Esos controladores están también disponibles, y de una manera mucho
más sencilla y amigable, bajo KVM. Por poner un ejemplo, yo estoy
corriendo una serie de máquinas WinXP y Win7 con las siguientes líneas
de comando:

$ /usr/bin/kvm -name base_001 -m 256 -localtime -pidfile /var/run/labvirt/base_001.pid -usb -usbdevice tablet -net nic,macaddr=00:11:ec:00:00:01,model=virtio -net tap,ifname=tap_base_001,script=/etc/kvm/kvm-ifup -boot c -drive index=1,media=disk,if=ide,snapshot=on,file=/var/lib/vhosts/wxp.disk.kvm.qcow2 -daemonize -nographic -monitor unix:/var/run/labvirt/base_001.socket,server,nowait
$ /usr/bin/kvm -name base_015 -m 512 -localtime -pidfile /var/run/labvirt/base_015.pid -usb -usbdevice tablet -net nic,macaddr=00:11:ec:00:00:15,model=rtl8139 -net tap,ifname=tap_base_015,script=/etc/kvm/kvm-ifup -boot c -drive index=1,media=disk,if=ide,snapshot=on,file=/var/lib/vhosts/win7.qcow2 -daemonize -nographic -monitor unix:/var/run/labvirt/base_015.socket,server,nowait

Puedes ver que en el primer caso estoy usando una interfaz de red de
tipo paravirtualizado (model=virtio) mientras que en el segundo no
(model=rtl8139), porque no quise meterme en la bronca de montar
controladores de paravirtualización con Win7 (que recién había salido
cuando monté este script). En este caso estoy usando los dispositivos
de disco tradicionales (emulados), pero está también ya disponible
paravirtualizado - no sabría en este instante darte la referencia.

Toma en cuenta que tanto KVM como Xen usan el modelo (y código) de
dispositivos de QEMU, así que el desarrollo va a ir casi de la mano en
uno y en el otro.

¡Ah! Y no olvides que quien más estaba impulsando a Xen (RedHat)
compró a Qumranet, los desarrolladores primarios de KVM. Y la
información que han dado apunta a que Xen quedará en estado
semi-congelado de mantenimiento a largo plazo, pero incluso ellos
recomiendan el salto a KVM.

Sólo como recomendación

Aunque ya sé que la opinión va cargada de
otros muchos factores :) Recuerda que Ubuntu, por más que sea un LTS,
toma un subconjunto de los paquetes inestables de Debian. ¿Qué tienes
por resultado? Un magnífico escritorio, actualizado (aunque con
requisitos de hardware bastante más altos, incluso en su versión
"light" XFCE), pero un servidor... más bien deficiente - Encontrarás
que le faltan varios paquetes que usas frecuentemente. Sí, claro, son
parte de MOTU - pero MOTU es un depósito con el mínimo posible de
control de calidad o garantías.

Si para un servidor estás evaluando Ubuntu LTS... Vale la pena dar un
par de pasos para trás y ver si realmente es lo que quieres. Dudo que
esté entre tus intenciones el pagar el soporte técnico a Canonical (y
con LTS te refieres más bien a recibir actualizaciones).

Problema con disco tras usar e2fsck

Pregunta

Espero alguien pueda ayudarme con el siguiente problema.

La instalacion GNU/Linux es Fedora Core 9 y presentaba problemas con
el disco duro, incluso el disco hacia ruidos extraños y se colgaba
cuando los ruidos comenzaban, esto paso recurrentemente asi que el
dueño del equipo uso el siguiente comando

e2fsck -p /dev/sda8

Donde /dev/sda8 es la particion donde esta instalado el Fedora, luego
se listaron una infinidad de mensajes de bloques dañados, hasta que
llego un punto donde los numeros de sector se repetian y parecia que
entro en un ciclo y nunca terminaba la acción.

Se intento detener el proceso pero los comandos ya no funcionaban,
revisando los comando ya nada funcionaba ni ls, cd, ps, nada, entonces
se reinicio el equipo y se entra a la consola del grub y ahi se queda.

Puedo arrancar el sistema operativo Windows XP con comandos del grub,
pero se necesita la información que estaba en la partición linux, asi
que intente reinstalar el grub usando el instalador de fedora 9 pero
no reconoce la particion linux existente y solo tengo la opcion de
formatearla.

Use CD's Live de Ubuntu y Knoppix y no me permite montar la particion
linux, el error que me sale es que debo especificar el tipo de
partición, asi que probe usando el parametro -t con los valores ext2 y
ext3, pero no me permite montar la partición mostrando el mensaje de
que el tipo de particion no es reconocido. Haciendo un fdisk -l me
muestra el tipo de particion como "Linux".

Respuesta

por lo que veo, se te daño el disco, porque no pruebas con la herramienta GParted, es un live cd que te lo puedes bajar de: http://adf.ly/1eQzBx ahi tienes muchas herramientas para Discos Duros, con el gparted yo pude rescatar y reparar problemas de varios HDD's.

Otra respuesta

puedes probar la herramienta TestDisk

http://adf.ly/1eQzFc ).


 A mi me soluciono un problema cuando se perdieron todas las particiones, tal vez te puede servir, no estoy seguro


Software para inventarios en Linux

Pregunta

Estimados, alguien conoce alguna aplicación para inventario de hardware,
toda sugerencia y/o experiencia es bienvenida



Respuesta

Esta te puede ayudar

http://adf.ly/1eQz7L


tambien esto  Software de inventario de equipos de red

http://adf.ly/1eQz8s

Problemas al cargar páginas webs en ubuntu

Pregunta


Tengo un problema raro en ubuntu 8.04, cuando intento cargar una pagina (ej. www.haldhelds.org, www.facebook.com, www.neoteo.com y otras mas) resuelve la direccion pero se queda bloqueado en "Transfiriendo datos desde ...". Otras paginas como www.google.com, www.softwarelibre.org.bo, etc cargan sin problemas. Probe con firefox, epiphany y da lo mismo. Tengo unas cuantas maquinas virtuales (en la misma maquina) con windows o linux y ahi cargan sin problemas.

Respuesta


Causas posibles:

a) modificaste (o alguien como un rootkit) modificó tus parámetros TCP
b) un rootkit te está ocupando puertos
c) firewall/rutas mal configurado/as, por eso una cosa funciona bien y
las otras no
d) es una casualidad que tus máquinas virtuales funcionen bien y la máquina huesped no, es decir que el error sería pérdida de paquetes.

En los casos a, b y c, las soluciones son obvias. En el caso C, puedes hacer un análisis con tethereal/mtr para hallar el foco del problema.
Con las canas que tengo, aprendí y te puedo sugerir que resuelvas el problema por capas. ej,

capa 1 y 2: verifica al 100% que no es un problema de cableado / ruidos;
capa 3, verifica con tracert/mtr que las rutas son correctas;
capa 4, verifica con tethereal / tcpdump que el handhake y las petticiones son apropiadas;
capas 5 y 6, no se aplican en casos de problemas de tráfico
capa 7, verifica que no tienes problemas de aplicaciones, rootkits,virus, navegador, proxy, etc.

Otra respuesta


No estoy seguro, pero quizás ¿sea problema con la autonegociación?

# ethtool -s eth0 speed 100 duplex half autoneg off

Y volvio el problema

La solución solo sirve por un rato, despues vuelve a estar como antes, En general me da la sensación que no puede enviar formularios grandes, pude hacer muchas cosas, pero luego quise mandar codigo por dpaste.com y se quedo, ya lleva 20 minutos leyendo el formulario, luego termino en una pagina en blanco, de ahi en todos los sitios comenzo a pasar lo mismo, no puedo enviar formularios ni usar ajax, otra ves...

Respuesta



¿qué tarjeta de red tienes?
Probá deshabilitando NetworkManager y/o buscando si es un bug del kernel:

http://adf.ly/1eQz4E

Otra respuesta



El problema es muy curioso, solo como un ejemplo, mira mi salida, en el hop 11 tengo 5% de pérdida. Esa suele ser intencional (algunos routers detectan los ping floods y descartan respuestas repetidas). Probablemente puedes tener pérdidas en los hops 1 a 4, es decir, en la misma ciudad donde estás.

# mtr -c 20 -r facebook.com
HOST: xx.padep.org.bo
Loss% Snt Last Avg Best Wrst StDev
1. static-200-105-132-193.acele 0.0% 20 0.8 0.7 0.7 0.8 0.0
2. static-200-105-128-21.aceler 0.0% 20 10.3 13.0 5.1 25.0 4.6
3. static-200-105-128-10.aceler 0.0% 20 25.4 20.7 5.9 26.8
4.9 4. 12.118.175.9 0.0% 20 97.5 104.3 92.4 114.4 5.4
5. cr2.ormfl.ip.att.net 0.0% 20 114.1 121.9 114.1 135.6 5.2
6. cr1.attga.ip.att.net 0.0% 20 128.9 125.0 106.1 157.9 9.8
7. ggr4.attga.ip.att.net 0.0% 20 117.0 155.8 116.7 333.9 67.8
8. 192.205.35.90 0.0% 20 117.5 121.5 107.1 132.7 5.3
9. 64.215.24.182 0.0% 20 177.4 182.2 166.6 245.1 17.0
10. xe-4-0-0.br01.sf2p.tfbnw.net 0.0% 20 177.2 184.4 164.6 247.7 19.1
11. te-6-0.csw05a.sf2p.tfbnw.net 5.0% 20 179.7 187.0 165.2 274.7 22.6
12. www.04.05.sf2p.facebook.com 5.0% 20 190.2 181.6 173.6 190.2 4.7

Y es probable que el problema sea en esta capa o en las 2/1. Lo curioso fue lo de la autonegociación.

Por ejemplo, en mi firewall local hago:

# tethereal host www.padep.org.bo
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0

Luego, desde mi PC, hago

telnet www.padep.org.bo 80
Trying 192.168.1.10...Connected to www.padep.org.bo.
Escape character is '^]'.

En el firewall debes ver el triple handshake (SYN, SYN/ACK, ACK, con lo que la conexión TCP está establecida):

0.000000 10.0.0.141 -> 192.168.1.10 TCP 40743 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=10180183 TSER=0 WS=6 0.000521 192.168.1.10 -> 10.0.0.141 TCP http > 40743 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=3049829983 TSER=10180183 WS=4 0.000922 10.0.0.141 -> 192.168.1.10 TCP 40743 > http [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=10180184 TSER=3049829983

Ahora establecida la conexión, nuevamente en mi PC hago:

GET /-estoy pidiendo la página principal, y me debe responder algo como...

script language="JavaScript"
location.href = "www/index.php";

Connection closed by foreign host.-

Eso, para mi propia página. En el Firewall debo ver lo siguiente:-

Mi solicitud: 7.035641 10.0.0.141 -> 192.168.1.10 TCP [TCP segment of a reassembled PDU]-

La respuesta del servidor (la página web que ves arriba, un javascript):
7.036135 192.168.1.10 -10.0.0.141 TCP http
59222 [ACK] Seq=1 Ack=8 Win=5792 Len=0
TSV=3050182569 TSER=10532862 7.036885 192.168.1.10 -> 10.0.0.141 HTTP Continuation or non-HTTP traffic 7.037134 192.168.1.10 -> 10.0.0.141 TCP http > 59222 [FIN, ACK] Seq=81 Ack=8 Win=5792 Len=0 TSV=3050182571 TSER=10532862_

Mi acknowledge y cierre de conexión:

7.037298 10.0.0.141 -> 192.168.1.10 TCP 59222 > http [ACK] Seq=8 Ack=81 Win=5888 Len=0 TSV=10532863 TSER=3050182570 7.037407 10.0.0.141 -> 192.168.1.10 TCP 59222 > http [FIN, ACK] Seq=8 Ack=82 Win=5888 Len=0
TSV=10532863 TSER=3050182571 7.037634 192.168.1.10 -> 10.0.0.141 TCP http > 59222 [ACK] Seq=82 Ack=9 Win=5792 Len=0 TSV=3050182571 TSER=10532863

Te sugiero leer en wikipedia cómo es una conexión TCP, y conociéndola y sabiéndola trazar con tethereal, puedes hallar problemas viendo el comportamiento a bajo nivel de tu conexión.

Aparte de la sugerencia que te dieron, rootkits (rkhunter/chkrootkit), y que no hayas tocado los MANGLE de tu firewall, creería que el problema son los parámetros de conexión de tu TCP, por cómo se comportó la conexión tras un cambio de parámetros de autonegociación. Entonces,puede ser un bug, que afecte a la capa 3, ya sea del kernel, del driver de tu tarjeta, o hasta de tu switch. Talvez con mi ejemplo puedes trazar tus conexiones y ver comportamientos extraños en las conexiones TCP, porejemplo.

Otra respuesta más



Y si bajas la velocidad? Yo tuve un problema así con un cable de 70 mts en un edificio alto, que resolvimos bajando la velocidad a 10mbps...

ethtool -s eth0 speed 10 duplex half autoneg off

Y otra respuesta más


Dudo que sean rootkits, me imagino que mantienes tu sistema parchado yal día?

Sugerencia: Deshabilita el servicio NetworkManager habilita el servicio
de network y configura manualmente.

Sugerencia2: últimas versiones de todos los softwares involucrados en elproblema.

Sugerencia3: habilita el log en los programas involucrados, checa losdel sistema y busca ayuda en google encontrando algo raro.


Y finalmente y aclarando la pregunta


www.google.com funciona sin problemas, pero:

ronald@ROQUENDOMDH02:~$ sudo mtr -c 20 -r google.com> HOST: ROQUENDOMDH02 Loss% Snt Last Avg Best Wrst
StDev
1. 10.31.16.1 0.0% 20 0.4 0.3 0.2 1.2
0.2
2. ??? 100.0 20 0.0 0.0 0.0 0.0
0.0

ronald@ROQUENDOMDH02:~$ sudo mtr -c 20 -r facebook.com
HOST: ROQUENDOMDH02 Loss% Snt Last Avg Best Wrst
StDev
1. 10.31.16.1 0.0% 20 0.3 0.3 0.2 0.4
0.0
2. ??? 100.0 20 0.0 0.0 0.0 0.0
0.0

Ultima respuesta

Eso está horrible!!! Claramente es un problema de capa 3 - ruteo - que no puede resolver tu gateway. También me huele a DNS phishing -técnica muy común de robar passwords, a la que los administradores tenemos fácil acceso-. Un servidor DNS/windows con virus en la cercanía? un script-kiddie en tu ISP? Resuelve este problema cuanto antes! La salida que debes obtener desde una conexión AXS, por ejemplo debería ser:

# mtr -c 20 -r google.comHOST: xx.padep.org.bo
Loss% Snt Last Avg Best Wrst StDev
1. static-200-105-153-137.acele 0.0% 20 88.8 93.8 0.4 541.8 153.3
2. 192.168.3.137 5.0% 20 320.6 702.7 199.2 1485. 375.3
3. static-200-105-128-3.acelera 5.0% 20 255.9 732.5 231.7 1371. 310.4
4. sl-st20-mia-8-5.sprintlink.n 5.0% 20 815.0 805.9 380.8 1407. 277.2
5. 144.232.18.231 5.0% 20 748.7 798.2 434.9 1395. 278.8
6. sl-crs1-orl-0-15-3-0.sprintl 5.0% 20 682.5 816.4 369.2 1279. 270.3
7. sl-crs2-ffx-0-12-0-0.sprintl 5.0% 20 708.7 880.9 341.2 1521. 306.3
8. sl-crs2-dc-0-5-3-0.sprintlin 5.0% 20 642.7 779.5 356.4 1420. 295.1
9. sl-st30-ash-0-8-0-0.sprintli 5.3% 19 1165. 750.9 369.0 1165. 257.3
10. sl-googl11-219203-0.sprintli 5.3% 19 1159. 765.4 302.7 1307. 285.0
11. 216.239.48.108 5.3% 19 1170. 770.2 257.7 1261. 292.5
12. 72.14.238.136 5.3% 19 1128. 723.7 191.7 1187. 292.7
13. 209.85.254.247 5.3% 19 1072. 708.2 232.6 1136. 286.3
14. 209.85.255.194 5.3% 19 1085. 741.7 274.0 1268. 301.8
15. gw-in-f100.google.com 10.5% 19 671.2 888.3 450.9 1325. 266.6

Transacciones en PostgreSQL

Pregunta

Necesito saber cómo controlar el consecutivo para varias terminales usando php y postgreSQL 8.3.

Problema:
(...)
Supongamos que el consecutivo lo tengo en 1230
Caja 1: nueva factura.
Lee el consecutivo: 1230.
(...)
Caja 2: nueva factura.
Lee el consecutivo: 1230.
(...)
Caja 3: nueva factura.
Lee el consecutivo: 1230.
(...)

Y cuando quieren guardar el sistema se quiebra porque no acepta 3 facturas con el mismo número y tal vez en uno de los casos, solo uno de ellos logre guardar y los otros no. Luego pensé en vez de consultarlo antes y presentarlo en pantalla, mejor no lo muestro y lo genero al momento de guardar.

Respuesta


Claro, es que estás pensando en consecutivos ;-) Y eso va en contra de la realidad. En PostgreSQL, para evitar este tipo de situaciones tienes las secuencias. Las secuencias son "empujadas" hacia adelante _fuera_ de las transacciones - y esto se sostiene tanto en PostgreSQL como en cualquier otro RDBMS. En este caso, un SELECT nextval ('num_factura') como el que mencionas habría respondido 1230, 1231 y 1232 a cada unade las cajas. Pero, sí, si la transacción de la caja #2 se aborta,entonces quedará un agujero en 1232. ¿Y qué haces con eso? Nada, así es el universo.

Otra respuesta


Hola, no se de PostgreSQL pero una vez utilicé algo así

al momento de guardar entra en un bucle de n segundos que revisa si la tabla es escribible. Si la tabla es escribible: 1) lookeo la tabla (nadie mas puede escribir) 2) Releo el consecutivo 3) grabo los datos 4) des-lookeo la tabla bueno es una posibilidad desde el codigo.

y otra respuesta más


en realidad para este tipo de transacciones, no solo por comodidad,sino principalmente por seguridad se utiliza el nextval ...cuando creas una secuencia, esta permanece con un valor inicial,esperando a que alguien consulte su valor.... el uso optimo por consiguiente es similar a insert into person (P_id,lastname,firstname) values (PersonSN.nextval,'Lastname','Firstname') donde person es tu tabla , P_id es el campo unico secuencial consecutivo y PersonSN es la secuencia... de esta forma ante cualquier insert se llama a nextval. Nextval nunca tendrá el mismo valor dos veces, por ejemplo en la primera inserción el currentval es 1 en la siguiente, la llamada a nextval será 2. De esta forma aunque tengas 50 terminales siempre se llamará a Nextval, lo que te garantiza que no existirán duplicados. Esto es más simple, más seguro y más optimo que bloquear y desbloquear una tabla. y si por alguna razón necesitas conocer el numero que tiene la secuencia solo llamas aPersonSN.currval Obviamente necesitas crear previamente la secuencia. El principal problema que tiene este método independientemente que si falla una secuencia se perderá un valor del nextval es que alguien semeta a hacer inserts directamente en base... tal que si insertas diez registros tu secuencia se queda atrás por diez y en consecuencia no podrás insertar... mientras no modifiques la secuencia :p

MP3 en Debian

Pregunta

Me instale debian Lenny (beta), y por defecto no tiene soporte para reproducir archivos mp3 (amarok o xmms). Despues de un rato buscando no pude encontrar el codec necesario. Alguien me podria dar una mano?

Respuesta


Probá instalando amarok-xine

Otra respuesta


En Debian la cosa está en los repositorios.No uso ninguno de los que mencionas -con lenny-, pero rhythmbox, y no tuve problemas. Te paso mi /etc/apt/sources.list . Si alguien tiene más repos, porfa compartir!

deb http://ftp.us.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.us.debian.org/debian/ lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb http://ftp.iitm.ac.in/debian lenny main non-free contrib
deb http://www.backports.org/debian lenny-backports main contrib non-free
deb http://www.debian-multimedia.org lenny main

Otra respuesta


Debian Lenny ya no es beta :) (de hecho, nunca lo fue - Fue testing que es algo muy distinto).

Lo que no encontraras en Debian son programas que _generen_ archivos.mp3, dado que el Instituto Fraunhofer ha hecho denuncias bastante agresivas respecto a los codecs utilizados para la codificacion. Sin embargo, hay una cantidad tremenda de programas que te permiten_reproducir_ mp3. Yo casi siempre uso mocp (si, me encanta vivir en la consola, y que?), aunque muchas veces uso amarok (que si tal vez no esta instalado en tu sistema ahora, esta a un apt-get de distancia). xmms, en efecto, desaparecio ya de Debian. Por que? Porque es una aplicacion escrita para Gtk 1.2 - Para una biblioteca que tiene seis años (me parece) declarada como abandonada. Existe xmms2, aunque a mucha gente -acostumbrada a la interfaz de xmms- no le acomoda. Pero... Bueno, veamos rapidito que me responde una maquina Lenny:

$ aptitude search mp3
p asterisk-mp3 - MP3 format support (format_mp3) for the As
p checkmp3 - Identify MP3s that do not follow the MP3 f
p distmp3 - A Perl client and daemon for distributed a
p gstreamer0.10-fluendo-mp3 - Fluendo mp3 decoder GStreamer plugin
p irmp3 - A Multimedia Audio Jukebox application
p irmp3-ncurses - irmp3 control frontend
p libgmp3-dev - Multiprecision arithmetic library develope
p libgmp3-doc - Multiprecision arithmetic library example
i A libgmp3c2 - Multiprecision arithmetic library
p libmp3-info-perl - Perl MP3::Info - Manipulate / fetch info f
p libmp3-tag-perl - Module for reading tags of MP3 audio files
p libmp3info-ruby1.8 - a pure ruby library for access to mp3 file
p libmp3spi-java - interface to support MP3 (MPEG 1/2/2.5 Lay
p libmp3tag-ruby1.8 - Reading and writing ID3V1.1 tags in MP3 fo
p libmp3tag-ruby1.9 - Reading and writing ID3V1.1 tags in MP3 fo
v libmpeg-mp3info-perl -
p libpacketdump3 - network trace processing library supportin
p libpacketdump3-dev - development headers for the libtrace netwo
p libsox-fmt-mp3 - SoX MP3 format library
p libxcomp3 - NX X compression library
v mp3-decoder -
v mp3-encoder -
p mp32ogg - Converts MP3fileto Ogg Vorbis
p mp3blaster - Full-screen console mp3 and Ogg Vorbis pla
p mp3burn - burn audio CDs directly from MP3, Ogg Vorb
p mp3c - MP3Creator - Creator for MP3/OGG-files
p mp3cd - Burns normalized audio CDs from lists of M
p mp3check - tool to check mp3 files for consistency
p mp3gain - Lossless mp3 normalizer with statistical a
p mp3info - An MP3 technical info viewer and ID3 1.x t
p mp3info-gtk - MP3 info viewer and ID3 1.x tag editor --
p mp3rename - Rename mp3 files based on id3tags
p mp3report - Script to create an HTML report of MP3 fil
p mp3roaster - A Perl hack for burning audio CDs out of M
p mp3splt - Splits MP3 and Ogg Vorbis files without re
p mp3val - A program for MPEG audio stream validation
p mp3wrap - Utility for MP3 wrapping (rolling multiplep playmp3list - Another front-end to mpg123 with theme sup
v python-pysnmp3 -
p vdr-plugin-mp3 - MP3 playback plugin for VDR

Y si bien no todos son lo que buscas, dentro de estos encontrarasvarios que te sirvan. Asomate (con "apt-cache show ") a los detalles de los que te interesen.

Otra respuesta

Arnold, con este (tabién en lenny),

# apt-cache search mp3 sort less

verás que hay muchos mas, pues no solo busca el patrón "mp3" en el nombre del paquete.

GPG

Pregunta


Instale Debian en un equipo portátil nuevo (mio) el otro portátil que era mio también, tenia mi llave GPG la cual podía editar sin problemas, pero por algún motivo olvide por completo migrar esa llave a la portátil nueva y lo peor es que la portátil antigua ya esta formateada a bajo nivel (cosa de que no pueda recuperar nada de nada) y solo me quedo el asc que exporte una vez para subirla aun servidor de llaves publicas. Ahora mi cuestionante es, como puedo importar mi llave gpg (la que exporte en .asc) a mi nueva portátil y poder editarla y firmar con ella (nuevamente).

Respuesta

Si has exportado tu secret key (gpg --export-secret-keys) entoncespuedes utilizar gpg --import

Suscribir feeds RSS a Mailman

Pregunta

Estoy curioso de alguna forma de subscribir un feed rss a una lista de correo. Por ejemplo para recibir todos los posts de un blog y los envie a una lista de correo. Estuve googleando pero no encuentro nada especifico. Recuerdo que alguna ves integraron mailman con un bugtracker, oi el comentario en una reunión de ubunteros. No espero que sea imposible, seguramente alguien ya tiene una idea de como hacerlo.

Respuesta

Mira en:

http://adf.ly/1eQywa

Ubuntu no levanta en forma gráfica

Pregunta

Buenas noches amigos de la lista, alguien me puede dar una mano en solucionar mi problema, mi ubuntu no levanta en forma grafica solo se queda despues de logearme y listo me salen los siguientes errores:
[...]
y no puedo usar mi ubuntu en forma grafica, tal ves a alguien le paso lo mismo me da una manito por favor...

Respuesta

Intenta crear una cuenta nueva de usuario y luego ingresa con esta cuenta. Si el modo gráfico se inicia correctamente entonces significa que algunos de los archivos de inicialización de Gnome de tu usuario habitual tiene problemas, algún archivo está corrompido y por eso Gnome  muere. Saca una copia de tus datos y luego vuelve a crear tu usuario

Otra respuesta

Otra razon podria ser que el disco duro esta lleno y por esa razon no consigue cargar la parte grafica

Problema de permisos en Linux

Pregunta


Hola a todos, el otro dia me paso lo siguiente, mientras estaba ejecutando un comando (sudo chmod -R 777 *) dentro de un mp4 tardaba mucho y cuando termino no cambio los permisos, pero bueno eso fue lo de menos, despues inserte un dvd y no puedo montarlos automaticamente porque no tengo los permisos, sin embargo en USUARIOS he revisado y los tengo todos. además cuando intento montarlos manualmente me di cuenta que el comando sudo no puedo ejecutarlo y me lanza el siguiente mensaje:

sudo: /etc/sudoers is mode 0777, should be 0440mauriciovan@mauriciovan-desktop:~$ 2009-01-23 09:30:55 Exim configuration file /var/lib/exim4/config.autogenerated has the wrong owner, group, or mode

por curiosidad abrí el archivo ese, pero es largo y no he visto nada conocido y para no fregarlo mas, prefiero preguntar o alguien que sabe mas; no se como solucionarlo, no se si les sirva o no, pero les adjunto ese archivo que indica ahi, ok? y tambien una imagen del mensaje de la terminal. desde ya muchas gracias por su ayuda y hasta pronto.


Respuesta


me parece que uno de tus problemas es que tu sudoers esta mal ejecuta lo siguiente

vladimir@nimsay:~$ ls -All /etc grep sudoer
-r--r----- 1 root root 557 2008-10-08 16:20 sudoers

revisa los permisos de usuario y la pertenencia a root y al grupo root no debe ser 777

Otra respuesta


No quisiera pensar que estuviste en / e hiciste chmod -R 777 * =P
Pienso eso por que:

/etc/sudoers esta 777
/var/lib/exim4/config-autogenerated esta 777

Fijate ls -l /etc o ls -l /

asi todo sale rwxrwxrwx entonces ¡cambiaste los permisos de todo tu sistema! Lo más fácil sería reinstalar, lo otro es restaurar permisos.. pero es más tedioso por que tienes que saber que permisos tienen los diferentes archivos/directorios

Proyecto ARNIE

Estimados miembros de la comunidad de software libre, entusiastas informáticos y demás personas a las que les llega este mensaje: Hace algunos meses estuve desarrollando un pequeño sistema para poder estudiar métodos de entrada de datos de movimiento (joysticks u otrotipo de forma de controlar algo), traducir los movimientos naturales del ser humano (especificamente el brazo) hacia dispositivos robóticos articulados, y también es de mi inquietud hacer todo este trabajo totalmente libre, público y cooperativo, por tanto esta de mas decirque estoy liberando el proyecto con licencia GPL .El programa esta siendo desarrollado en C ++ utilizando conceptos y técnicas propias de la orientación a Objetos, con apoyo de las herramientas estandard GNU de desarrollo de software para compilacion, etc. Se que el nombre suena gracioso, como no encontraba un nombre"apropiado", decidi ponerle mi nombre, bueno, el diminutivo de minombre. Las librerías sobre las que se apoya este sistema son :OGRE 3D -- Una api para gestionar las gráficas y los contenidos OIS -- Sistema de dispositivos de entrada.CEGUI, MyGUI - para tener una interfaz de usuario integrado aprovechando la aceleracion 3D de tarjetas graficas. Aún no decidi que libreria usar para obtener datos de entrada del Wiimote.  En vista de esto, acabo de crear mi primer release público disponible en el siguiente link:

http://adf.ly/1eQyk7 


Por el momento solo pueden bajarse las fuentes. Seria genial si alguien crea un .deb o rpm ;) La página principal del proyecto es:

 http://adf.ly/1eQym0


 (clic en la imagen) Es posible bajar el programa directamente desde:

http://adf.ly/1eQyoO

Si usted desea unirse a la lista de desarrollo:

http://adf.ly/1eQyq5

Por el momento esta en googlegroups, hasta que consiga otra cosa : Si desean hacer un seguimiento exhaustivo pueden entrar al repositorio publico y ver todos los cambios hechos que se actualizan constantemente:

http://adf.ly/1eQysG

y descargar la ultima version de desarrollo utilizando el control de versiones mercurial. Como pueden ver, faltan un trabajo inmenso por hacer, asi que cualquier aporte es bienvenido, desde criticas constructivas o hacer un nuevo logo hasta escribir un nuevo sistema de rendering.

Ads by CJ - Linux Foundation

Share This