viernes, 14 de abril de 2017

20 de los comandos imprescindibles para un Sysadmin

/PROC: Como podréis comprobar no es un comando, sí, está en la lista de los 20 que he comentado pero veo muy interesante comentar que aquí se encuentran archivos muy interesantes para el sistema como 'meminfo' o 'cpuinfo' por mencionar un par de ellos, que nos mostrarán información muy relevante sobre los componentes de nuestro equipo. Un simple 'cat' a estos archivos y podremos ver toda la información que contienen sin salir del prompt de la consola.

CACTI: Realizará gráficas de rendimiento en los diferentes dispositivos que envíen información vía SNMP.

FREE: Este comando mostrará el estado y uso de la memoria de nuestro equipo o sistema.

GNOME SYSTEM MONITOR: Monitoriza el rendimiento de nuestro sistema, y nos lo muestra en una interfaz muy amigable.

IOSTAT: Informa de los datos en entrada/salida de nuestra CPU y discos.

IPTRAF: Monitoriza todo el tráfico que entra y sale de nuestro equipo (interfaces, puertos, etc...). Es algo más que un comando, en realidad se trata de una aplicación muy lograda.

JFFNMS: Genera gráficas para monitorizar equipos a gran escala.

MPSTAT: Muy útil para procesadores Multi-Core, ya que permite ver el rendimiento de cada núcleo del procesador de forma independiente. 

NAGIOS: Sistema de monitorización muy versátil, puesto que por la cantidad de comandos que acompañan a la aplicación, y la infinidad de plugins existentes para la misma, se puede llevar el seguimiento de grandes cantidades de equipos, servidores y redes. Además mediante un SMS gateway podremos configurar el sistema para que nos alerte al móvil de cualquier incidencia.

NETSTAT: Muestra las conexiones abiertas en nuestro equipo.

PMAP: Informa sobre el rendimiento de la memoria del sistema, tanto en general como la memoria que consume un proceso concreto.

PS: Muestra los procesos que se están ejecutando en nuestro sistema, y según los parámetros que le pasemos al comando, también el consumo de memoria y procesador de cada uno de los listados.

SAR: Realiza reportes de la actividad del sistema.

SS: Muestra diferentes estadísticas de los sockets de nuestro equipo. Su función es similar a Netstat.

STRACE: Realiza debugs de servidores web, Apache, Httpd, lighthttp, entre otros.

TCPDUMP: Muestra todo el tráfico que circula por un puerto concreto en tiempo real.

TOP: Nos informa en tiempo real del estado de nuestro servidor. Por defecto si no le pasamos ningún parámetro nos mostrará el uso de CPU, con un muestreo cada 5 segundos.

UPTIME: Muestra información similar a la del comando TOP, además de otros datos interesantes como el tiempo que lleva encendido el equipo, la carga de procesos, el número de usuarios, etc.

VMSTAT: Informa del estado del equipo o sistema, tanto el hardware como los procesos que se están ejecutando, y todo en tiempo 'casi' real.

W: Muestra qué usuarios están conectados al equipo y además, podremos saber qué están haciendo en ese momento.

Monitorizar cambios en las carpetas Linux con Pyinotify

Qué es Pyinotify
Pyinotify es un paquete de Python el cual provee herramientas, entre las cuales tenemos variables, señales y condiciones, las cuales harán de la tarea de gestión algo mucho más específico sobre los posibles cambios efectuados en un directorio. Estas tres herramientas cumplen un rol fundamental así:
  • Variables: Contienen objetos Python
  • Señales: Son básicamente listas de manejadores los cuales son activados al momento de emitirse una señal.
  • Condiciones: Estas son variables booleanas ligadas a una señal que se emite cuando su estado cambia.

Requisitos para la instalación de Pyinotify

Para que pyinotify funcione de la forma correcta será necesario contar con dos requisitos fundamentales los cuales son:
Linux kernel 2.6.13 o superior
Python 2.4 o superior

Para conocer que versión tenemos de cada uno de estos requisitos ejecutaremos los siguientes comandos:
uname -r (Versión del kernel)
python -V (Versión de Python)

root@debian# uname -r
3.16.0-4-amd64
root@debian# python -V
Python 2.7.9

1. Cómo instalar y ejecutar Pyinotify en Linux
Paso 1

Para instalar la aplicación haremos uso de pip y para ello ejecutaremos los siguientes comandos dependiendo de la distro de Linux usada:
CentOS
sudo yum install python-pip
Debian / Ubuntu
sudo apt install python-pip
Fedora
sudo dnf install python-pip

Aceptamos la descarga y se procede a instalar pyinotify

Instalacion de Pyinotify

Para respectiva instalación de pyinotify ejecutamos el siguiente comando para la instalación de la aplicación:

sudo pip install pyinotify

2. Cómo usar Pyinotify 
Paso 1

Para usar pyinotify en el monitoreo de un determinado directorio ejecutaremos el siguiente comando:

python -m pyinotify -v /home/Kim

Paso 2

Con esto analizaremos los cambios en el directorio /home.

Paso 3

Podemos ver que la estructura de pyinotify es:
Fecha y hora del evento.
Tamaño del evento.
Tipo de evento.
Ruta donde ocurrió el evento.

Paso 4

Para salir del monitoreo de pyinotify usaremos la combinación de teclas siguiente. Si no especificamos un directorio a analizar la herramienta usara el directorio /tmp por defecto.
ctrl + c