sábado, 21 de julio de 2012

Herramientas para monitorear un servidor linux


La mayoría del tiempo de un sysadmin (administrador de sistemas) se la pasa monitoreando. Especialmente si se estas a cargo de muchos servidores necesitamos herramientas que te hagan la tarea mas facil; a continuación varias herramientas que nos facilitaran eltrabajo.

Monitoreo de ancho de banda

Esto es muy importante, ya que al monitorear cuanto ancho de banda consume un servidor en tiempo real podemos determinar cuales son sus horas pico y así optimizarlo.

 Para monitorear ancho de banda  iptraf nos puede ayudar a verificar todo lo que esta sucediendo en nuestra interface de red. Les adjunto algunas imágenes:








Monitoreo de consumo de CPU y Memoria

Otra de las tareas de un sysadmin es monitorear el consumo de CPU y Memoria (RAM y SWAP), linux viene con el comando “top”. A mi en lo personal no me gusta, así que uso el programa htop. Este programa es muy completo ya que nos detalla el consumo de CPU y Memoria por proceso, así como el consumo general de los recursos del sistema. Es mucho mas amigable a comparación del top normal. Incluso conforme se va usando el procesador o los núcleos del procesador el programa lo indica de una manera “gráfica” tal como lo muestra la siguiente imagen que tome de un servidor en producción:






Monitoreo de consumo de disco duro


Cada cierto tiempo necesitamos saber cuanto espacio en disco hay libre en los servidores que manejamos. Para saber el espacio en disco duro se ejecuta el comando “df” en linux. A mi en lo personal no me gusta, prefiero uno mas amigable así que utilizo uno llamado discus. Este programa es que te indica cuanto espacio esta usado y cuando espacio hay libre, así como los porcentajes de los mismos. Aquí les adjunto una foto con la comparación del “df” con el “discus”. 



Monitoreo de peticiones de DNS

Si administras un servidor de DNS, en alguna ocasión vas a querer saber cuantas peticiones tu servidor de DNS tu servidor recibe. Para monitorear esto utilizo el programa dnstop con este se puede monitorear cuantas peticiones esta teniendo tu servidor ya sea por clase de dominio .net .org, direcciones ip, por dominio o por sub dominios.
Para ejecutarlo solo ejecutas el comando:
dnstop eth1
Tienes que especificar la interface en la cual quieres que “escuche” el programa. Presionando los botones de 1 2 3 4 puedes ver los diferentes tipos de reportes que tiene.
Adjunto imagen del programa:
          

                             dnstop

Monitoreo de trafico WEB
La mayoría de nosotros estamos a cargo de un servidor que sirve paginas web, es muy importante el monitoreo en tiempo real para saber que archivos estamos sirviendo, cuantas peticiones por segundo estamos manejando y el trafico que estamos teniendo (en megas). El servidor web mas usado es apache, yo utilizo la herramienta llamada “apachetop“.
Con este programa podemos monitorear que archivos servimos con mayor frecuencia, cuantos bytes/kylobytes/megabytes servimos, cuantas peticiones por segundo, peticiones totales y un promedio general de todo lo que sirve el apache.
Adjunto una imagen del apachetop corriendo en un servidor en producción:

                                     apachetop

Monitoreo de puertos abiertos

Otra de las tareas de un sysadmin es estar al tanto de que puertos hay abiertos en un servidor. Como lo dice la regla, si un servicio no te sirve, quitalo del sistema. Para monitorear puertos uso la herramienta llamada nmap.
Con el comando:
nmap -v 127.0.0.1
Saque un listado de puertos abiertos en el servidor. Si su servidor tiene varias direcciones IP es importante que hagan un escaneo de puertos a todos los IP.
Adjunto imagen del resultado que muestra nmap:


Estas herramientas basicas pero poderosas nos ayudaran en la tarea de mantener nuestros servidores linux al dia así como estas herramientas hay miles de herramientas e incluso pueden haber mejores.

Compartir archivos entre Debian Squezee y Windows con Samba

 Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.

Samba fue desarrollado originalmente para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block.

En un principio, Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell buscó en el diccionario de su máquina Unix alguna palabra que incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba.

Samba configura directorios Unix-Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente.

En este caso la instalacion sera en una red de hogar con un grupo de trabajo.

Para llevar a cabo la instalacion se necesitaran los siguientes paquetes:

samba
samba-client
samba-common


Para la configuración en Windows sólo hay que tener en cuenta el nombre del grupo de trabajo y el nombre de cada equipo en la red.

Comenzamos instalando Samba en Debian, Abrimos la terminal como root, colocamos:

apt-get install samba smbfs samba-common samba-client

Editamos el fichero de configuración de samba en la siguiente ruta:
vim /etc/samba/smb.conf


Buscamos la linea que dice workgroup = MSHOME, y la cambiamos por:

workgroup = nombre del grupo de trabajo


el nombre de nuestro grupo de trabajo deberá ser el mismo que usamos en la red de Windows.


Guardamos cambios y salimos.


Antes de crear los usuarios de Samba, deberemos crearlos en nuestro Debian.

 adduser nesalpa


Después creamos el usuario para Samba:

  smbpasswd -a nesalpa


el usuario deberá ser el mismo el cual creamos en  Grupos y Usuarios en Debian.

Pedirá la contraseña a utilizar, en donde también pondremos la misma del usuario que creamos en Debian, y pedirá finalmente repetir la contraseña.

Crearemos otro archivo con la lista de los usuarios:

 vim  /etc/samba/smbusers

Ahí, agregaremos lo siguiente: usuario debian = equipo  windows

usuario debian se refiere al usuario que acabamos de crear, equipo winodws se refiere al nombre del equipo con windows con el que deseamos compartir.

Volveremos a editar samba.conf:  vim  /etc/samba/smb.conf

Buscamos la linea que dice:

; security = user

Y le quitamos el ;

Además, en una siguiente linea agregamos lo siguiente:

username map = /etc/samba/smbusers

Deberá quedar así:

security = user
username map = /etc/samba/smbusers






Con esto estamos diciéndole a Samba que vamos a autentificar por usuario y donde está la lista de los usuarios permitidos.


Ahora, para compartir archivos, deberemos dar persmisos al directorio de usuarios de samba. Para esto, tecleamos en la terminal de root lo siguiente:

 chmod 777 /var/lib/samba/usershares

Y por último sólo queda elegir los directorios que deseamos compartir.
Para dar acceso a los usuario a los directorios home o personales, hacemos lo siguiente editamos

vim  /etc/samba/smbusers


[homes]
comment = Home Directories;
browseable = no
valid users = %S
writable = no

Quitamos el ";" para descomentarlos, y en writable cambiamos "no" por "yes" para que el usuario pueda escribir en el directorio.

En servicios de red de nuestro Debian, podremos acceder a la red de Windows y en Mis sitios de red de Windows, se podrá acceder a los directorios que seleccionamos para compartir en Debian.