Existen diversas herramientas que han sido desarrolladas con el fin de ayudarnos a gestionar de una forma mucho más completa los equipos administrados y esto es algo vital ya que nos permite tener un control mucho más directo y saber en tiempo real el verdadero estado de cada sistema.
Al administrar ambientes Linux disponemos de una herramienta práctica y simple que nos ayuda al análisis del sistema y ésta es Sysdig.
En esta ocasión Solvetic analizará cómo instalar y usar Sysdig en Ubuntu 17.04 Server pero esta aplicación será de gran ayuda para cualquier distro de Linux a usar.
Sysdig ha sido escrita en Lua e incluye una interfaz de línea de comandos y una interfaz de usuario interactiva de gran alcance, csysdig, la cual puede ser ejecutada en la terminal. Actualmente contamos con utilidades de gestión como:
Strace: Descubre las llamadas y señales del sistema a un proceso.
- Tcpdump: Monitoreo del tráfico de la red.
- Netstat: Monitoreo de conexiones de red.
- Htop: Monitoreo de procesos en tiempo real.
- Lftop: Monitoreo de ancho de banda de red en tiempo real.
- Lsof: Permite visualizar qué archivos se abren por qué proceso.
Con sysdig tendremos integradas todas estas herramientas y muchas más, ofreciendo un programa simple y contando con soporte de contenedor.
- Es rápido, estable y fácil de usar con amplia documentación.
- Incluye soporte nativo para tecnologías de contenedores, incluyendo Docker, LXC y mas.
- Es programable en Lua; ofrece cinceles (scripts Lua ligeros) para procesar eventos del sistema capturados.
- Soporta el filtrado de salida.
- Soporta el rastreo de sistemas y aplicaciones.
- Se puede integrar con Ansible, Pupe y Logstash.
- Habilita el análisis de registro avanzado de ejemplo.
- Cuenta con características de análisis de ataques de servidores Linux (forenses) para hackers éticos y mucho más.
1. Instalar Sysdig en Linux
Para instalar Sysdig en Ubuntu 17.04 Server, ejecutaremos alguno de los siguientes comandos los cuales verificarán todos los requisitos; si todo está correcto, descargará e instalará el paquete desde el repositorio Draios APT / YUM:
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
Una vez el proceso de instalación concluya veremos lo siguiente:
2. Usar de Sysdig en Linux
Después de instalarlo, necesita ejecutar sysdig como root, ya que este requiere acceso a áreas críticas como el sistema de archivos /dev/sysdig* y necesitara cargar automáticamente el módulo kernel de sysdig-probe, ejecutaremos lo siguiente:
sudo sysdig
Allí podemos ver una serie de datos poco complejo, si deseamos obtener una vista mucho más simple deberemos hacer uso de la interfaz csysdig. Ejecutamos lo siguiente:
sudo csysdig
El resultado será el siguiente. Podemos ver los datos de una forma mucho más organizada. Es importante aclarar que el objetivo es usar el comando sysdig para obtener el verdadero potencial de la herramienta.
3. Comprender los filtros y parámetros de Sysdig en Linux
A simple vista pudimos ver que los datos generados por sudo sysdig son complejos y de difícil comprensión, pero en si son secuencias de comandos Lua mínimas para examinar el flujo de eventos sysdig y así llevar a cabo acciones útiles de resolución de problemas del sistema en general.
Al ejecutar el siguiente comando podremos ver los filtros disponibles:
sudo sysdig -cl
Allí podemos ver las diferentes categorías disponibles con sus respectivas opciones. Si desea obtener más información sobre un filtro en particular, usaremos el indicador -i:
sudo sysdig -i topprocs_cpu
Los filtros Sysdig añaden más detalles al tipo de salida que podemos obtener de los flujos de eventos, los cuales permiten personalizar la salida. Un filtro sencillo y común es una comprobación básica de "class.field = value". Para ver una lista de clases de campo disponibles, campos y sus descripciones, ejecutaremos lo siguiente:
sudo sysdig -l
4. Crear el archivo de monitoreo del sistema Linux
Para volcar la salida sysdig en un archivo para su análisis posterior, debemos usar el parámetro -w y será posible leer el archivo de volcado de seguimiento con el parámetro -r.
La opción -s es usada para especificar la cantidad de bytes de datos que se van a capturar para cada evento del sistema. En este caso, estamos filtrando eventos para el proceso mongod.
Por ejemplo podemos ejecutar lo siguiente:
sudo sysdig -s 10 -w trace.scap
Para su análisis ejecutaremos lo siguiente:
sudo sysdig -r trace.scap proc.name=mongod
5. Monitorizar procesos de Linux
Si deseamos listar todos los procesos del sistema ejecutaremos lo siguiente:
sudo sysdig -c ps
Podemos ver un completo resumen indicando PID, usuario, uso de memoria, etc.
6. Monitorizar procesos por uso de CPU en Linux
Con Sysdig es posible supervisar procesos por porcentaje de uso de CPU, para ello ejecutamos lo siguiente:
sudo sysdig -c topprocs_cpu
7. Monitorizar conexiones de red y dispositivos I/O en Linux
Con Sysdig podremos supervisar todas las conexiones de red ejecutando lo siguiente:
sudo sysdig -c netstat
Podremos ver todas las direcciones, protocolo usado, estado y PID. El siguiente comando nos permite desplegar las conexiones de red superiores por una cantidad definida de bytes:
sudo sysdig -c topconns
También podremos listar los procesos principales por I/OS de red con el siguiente comando:
sudo sysdig -c topprocs_net
8. Monitorizar sistemas de archivos de I/O en Linux
Será posible emitir los datos leídos y escritos por procesos en el sistema usando la siguiente línea:
sudo sysdig -c echo_fds
Para enumerar los procesos principales mediante bytes de disco (de lectura y escritura), usaremos la siguiente línea:
sudo sysdig -c topprocs_file
9. Solucionar problemas de rendimiento en Linux
Sysdig nos ofrece una oportunidad para supervisar errores en las llamadas del sistema (cuellos de botella) con la ejecución del siguiente comando:
sudo sysdig -c bottlenecks
Ctrl + C
10. Descubrir redes lentas en Linux
Con el siguiente comando será posible analizar que dispositivo I/O de red esta lento en el sistema:
sudo sysdig -c netlower
11. Monitorizar consultas HTTP en Linux
Si contamos con un servidor HTTP como Apache o Nginx en el sistema, podremos buscar en el registro de solicitudes del servidor usando el siguiente comando:
sudo sysdig -c httplog
O si deseamos visualizar las consultas ejecutaremos:
sudo sysdig -c httptop
12. Despliegue de shells e interactividad de los usuarios en Linux
El siguiente comando nos permitirá ver todos los ID de shell de inicio de sesión:
sudo sysdig -c list_login_shells
Para ver la actividad de los usuarios ejecutaremos el siguiente:
sudo sysdig -c spy_users
13. Ayuda de sysdig en Linux en Linux
Finalmente podemos acceder a la ayuda de sysdig ejecutando alguno de los siguientes comandos:
man sysdig man csysdig
De esta forma sysdig se convierte en una alternativa funcional a la hora de administrar, supervisar y llevar un control mucho más preciso sobre diversos aspectos del sistema.