Cómo instalar y usar Sysdig desde la línea de comandos de Linux
Sysdig es una herramienta que brinda a los administradores y desarrolladores una visibilidad sin precedentes del comportamiento de sus sistemas. El equipo que lo desarrolla desea mejorar la forma en que se realiza el monitoreo y la resolución de problemas a nivel del sistema ofreciendo una visibilidad unificada, coherente y granular de los subsistemas de almacenamiento, procesamiento, red y memoria, lo que hace posible crear archivos de seguimiento para la actividad del sistema puede analizarlo fácilmente en cualquier momento. También han construido un lenguaje de filtrado para profundizar en la información de una manera natural e interactiva y también una rica biblioteca de scripts Lua para resolver problemas comunes, que ellos llaman cinceles. Piense en esta aplicación como strace + tcpdump + lsof con esteroides. En resumen, es una poderosa herramienta de monitoreo del desempeño para analizar el estado del sistema y sus actividades.
Cómo instalar Sysdig
Sysdig fue probado y es compatible con las siguientes distribuciones de Linux Debian, Ubuntu, CentOS, RHEL, Fedora, Amazon Linux, Oracle Linux y Linux Mint.
Se puede instalar en un solo paso usando el script de instalación automática, puede hacerlo ejecutando el siguiente comando:
# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
La salida debería verse así:
Nota: En caso de que curl no esté instalado, se le pedirá que lo instale usando el comando «sudo apt-get install curl»
Esto es todo lo que tiene que hacer para instalar la aplicación en su sistema.
Uso básico
En la forma más simple, puede ejecutar el programa sin ningún argumento, esto generará como salida estándar cada llamada al sistema. El formato es el número del evento, la hora del evento, el número de la CPU del evento, el nombre del proceso (PID), la dirección del evento para la salida, el tipo de evento, los argumentos del evento. La salida se ve así:
Nota: sysdig no decodifica actualmente todas las llamadas al sistema. Las llamadas al sistema no decodificadas todavía se muestran en la salida, pero sin argumentos.
Filtración
Todo este resultado es enorme y, en su mayoría, no es muy útil por sí mismo, por lo que puede filtrar los resultados utilizando el potente y versátil sistema de filtrado. Por ejemplo, para filtrar el proceso vim, puede usar el argumento proc.name como este:
# sysdig proc.name=vim
Puede utilizar una combinación de argumentos utilizando operadores como «o» y «y». Por ejemplo, para enumerar todas las conexiones entrantes que no son atendidas por apache, puede usar:
# sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
O para mostrar los directorios que el usuario «root» visita, puede utilizar:
# sysdig evt.type=chdir and user.name=root
La salida se verá así:
Para una referencia rápida, tenga en cuenta que puede usar el argumento -l para enumerar todos los campos que puede usar y -L para una lista de todos los eventos:
# sysdig -l # sysdig -L
Algunos ejemplos más
Estos son algunos ejemplos populares tomados de la wiki del sitio web:
1) Enumere los procesos principales en orden de uso del ancho de banda de la red
# sysdig -c topprocs_net
2) Enumere los principales puertos del servidor local en términos de conexiones establecidas:
# sysdig -c fdcount_by fd.sport "evt.type=accept"
3) Enumere todas las conexiones entrantes que no son atendidas por apache.
# sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
4) Enumere los procesos principales en términos de uso de ancho de banda de disco:
# sysdig -c topprocs_file
5) Enumere los procesos que utilizan una gran cantidad de archivos
# sysdig -c fdcount_by proc.name "fd.type=file"
6) Opensnoop básico: el archivo snoop se abre a medida que ocurren
# sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open
7) Vea los principales procesos en términos de uso de CPU
# sysdig -c topprocs_cpu
8) Ver los principales procesos para CPU 0
# sysdig -c topprocs_cpu evt.cpu=0
9) Mostrar los directorios que visita el usuario «root»
# sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"
10) Muestra todos los archivos abiertos que ocurren en / etc
# sysdig evt.type=open and fd.name contains /etc
Las posibilidades de usar sysdig son infinitas y dependen de lo que quieras averiguar, pero es una herramienta muy útil y versátil.
Para más información puede visitar el sitio web sysdig.