CTOP: herramienta de línea de comandos para supervisar el rendimiento de los contenedores de Linux
ctop es una nueva herramienta basada en la línea de comandos disponible para monitorear los procesos a nivel de contenedor. Los contenedores proporcionan un entorno de virtualización a nivel de sistema operativo al hacer uso de la funcionalidad de administración de recursos de cgroups. Esta herramienta recopila datos relacionados con la memoria, CPU, IO de bloque y metadatos como propietario, tiempo de actividad, etc. de cgroups y los presenta en un formato legible por el usuario para que uno pueda evaluar rápidamente el estado general del sistema. Según los datos recopilados, intenta adivinar la tecnología de contenedores subyacente. ctop es útil para detectar quién está usando grandes cantidades de memoria en situaciones de poca memoria.
Capacidades
Algunas de las capacidades de ctop son:
-
Recopile métricas para cpu, memoria y blkio
-
Recopile información sobre el propietario, la tecnología del contenedor y el recuento de tareas.
-
Ordene la información usando cualquier columna
-
Mostrar la información usando la vista de árbol
-
Doblar / desplegar cgroup tree
-
Seleccionar y seguir un cgroup / container
-
Seleccione un período de tiempo para actualizar los datos mostrados
-
Pausar la actualización de datos
-
Detecta contenedores basados en systemd, Docker y LXC
-
Funciones avanzadas para contenedores basados en Docker y LXC
Cómo instalar CTOP
ctop está escrito usando Python y no hay otras dependencias externas aparte de tener que usar Python versión 2.6 o superior (con soporte de cursor incorporado). La instalación con pip de Python es el método recomendado. Instale pip si aún no lo ha hecho e instale ctop usando pip.
Nota: Los ejemplos que se muestran en este artículo son de un sistema Ubuntu (14.10)
$ sudo apt-get install python-pip
Instalación de ctop usando pip:
poornima@poornima-Lenovo:~$ sudo pip install ctop [sudo] password for poornima: Downloading/unpacking ctop Downloading ctop-0.4.0.tar.gz Running setup.py (path:/tmp/pip_build_root/ctop/setup.py) egg_info for package ctop Installing collected packages: ctop Running setup.py install for ctop changing mode of build/scripts-2.7/ctop from 644 to 755 changing mode of /usr/local/bin/ctop to 755 Successfully installed ctop Cleaning up...
Si usar pip no es una opción, también puede instalarlo directamente desde github usando wget:
poornima@poornima-Lenovo:~$ wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop --2015-04-29 19:32:53-- https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 199.27.78.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|199.27.78.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 27314 (27K) [text/plain] Saving to: ctop 100%[======================================>] 27,314 --.-K/s in 0s 2015-04-29 19:32:59 (61.0 MB/s) - ctop saved [27314/27314]
poornima@poornima-Lenovo:~$ chmod +x ctop
Es posible que reciba un mensaje de error al iniciar ctop si el paquete cgroup-bin no está instalado. Se puede resolver instalando el paquete requerido.
poornima@poornima-Lenovo:~$ ./ctop [ERROR] Failed to locate cgroup mountpoints. poornima@poornima-Lenovo:~$ sudo apt-get install cgroup-bin
Aquí hay una pantalla de salida de muestra de ctop:
Opciones de uso
ctop [--tree] [--refresh=] [--columns=] [--sort-col=] [--follow=] [--fold=, ...] ctop (-h | --help)
Una vez que esté dentro de la pantalla ctop, use las teclas de flecha hacia arriba (↑) y hacia abajo (↓) para navegar entre contenedores. Al hacer clic en cualquier contenedor, se seleccionará ese contenedor en particular. Presionando q o Ctrl + C sale del contenedor.
Veamos ahora cómo utilizar cada una de las opciones enumeradas anteriormente.
-h / –help: muestra la pantalla de ayuda
poornima@poornima-Lenovo:~$ ctop -h Usage: ctop [options] Options: -h, --help show this help message and exit --tree show tree view by default --refresh=REFRESH Refresh display every <seconds> --follow=FOLLOW Follow cgroup path --columns=COLUMNS List of optional columns to display. Always includes 'name' --sort-col=SORT_COL Select column to sort by initially. Can be changed dynamically.
–tree: muestra la vista de árbol de los contenedores
De forma predeterminada, se muestra la vista de lista
Una vez que esté dentro de la ventana ctop, puede usar el botón F5 para alternar la vista de árbol / lista.
–fold =
Esta opción debe usarse en combinación con –tree.
Por ejemplo: ctop –tree –fold = / user.slice
Dentro de la ventana ctop, use las teclas + / – para alternar el plegado de cgroup secundario.
Nota: En el momento de escribir este artículo, el repositorio de pip no tenía la última versión de ctop que admite la opción ‘–fold’ a través de la línea de comandos.
–follow = – Seguir / Resaltar la ruta de cgroup.
Por ejemplo: ctop –follow = / user.slice / user-1000.slice
Como puede ver en la pantalla de abajo, el cgroup con la ruta dada «/user.slice/user-1000.slice» se resalta y hace que sea más fácil para el usuario seguirlo incluso cuando se cambia la posición de visualización.
También puede usar el botón ‘f’ para permitir que la línea resaltada siga al contenedor seleccionado. De forma predeterminada, el seguimiento está desactivado.
–refresh = – Actualiza la pantalla a la velocidad indicada. Predeterminado 1 segundo
Esto es útil para cambiar la frecuencia de actualización de la pantalla según los requisitos del usuario. Use el botón ‘p’ para pausar la actualización y seleccione el texto.
–columns =
Por ejemplo: ctop –columns = nombre, propietario, tipo, memoria
-sort-col =
Por ejemplo: ctop –sort-col = blkio
Si hay contenedores adicionales compatibles como Docker y LXC, también estarán disponibles las siguientes opciones:
presione ‘a’ – adjuntar a la salida de la consola
presione ‘e’ – abra un shell en el contexto del contenedor
presione ‘s’ – detener el contenedor (SIGTERM)
presione ‘k’ – matar el contenedor (SIGKILL)
Versión de Python de ctop se encuentra actualmente en desarrollo activo por Jean-Tiare Le Bigot. Con suerte, veremos más funciones en esta herramienta, como nuestro comando superior nativo :-).
** Actualización del artículo el 12/03/2017 **
Herramienta Ctop escrita en Golang
Encontramos otra herramienta interesante llamada same ctop escrita en go lang para ver y monitorear las métricas en tiempo real del contenedor en la terminal. También proporciona una descripción general concisa y condensada de métricas en tiempo real de varios contenedores. Cubrimos sus usos en un host Docker basado en Linux.
Instalación
ctop actualmente viene con soporte integrado para Docker; Los conectores para otros sistemas de clústeres y contenedores están previstos para versiones futuras. Obtenga lo último versión de ctop y muévalo a cualquier ubicación señalada por la variable de entorno PATH.
# wget https://github.com/bcicen/ctop/releases/download/v0.4/ctop-0.4-linux-amd64 -O ctop # sudo mv ctop /usr/local/bin/ # sudo chmod +x /usr/local/bin/ctop
Eso es todo, ahora está listo para ver las métricas del contenedor en su terminal.
Usos de la herramienta de monitoreo ctop
ctop no requiere ningún argumento para ejecutarse y se configurará usando la variable de entorno DOCKER_HOST. Para ejecutarlo, simplemente escriba ctop en el shell.
# ctop
Una vez que haya ejecutado el comando anterior, todo el contenedor se listará con su nombre, ID de contenedor, usos de CPU, usos de memoria y tráfico de red.
Con las siguientes combinaciones de teclas, puede administrar la pantalla ctop.
Llave | Acción |
---|---|
a | Alternar la visualización de todos los contenedores (en ejecución y no en ejecución) |
F | Filtrar contenedores mostrados |
H | Alternar encabezado ctop |
h | Abrir diálogo de ayuda |
s | Seleccionar campo de clasificación de contenedores |
r | Orden de clasificación de contenedores inverso |
q | Salir de ctop |
Ejecute ctop desde el shell, puede ver todos los contenedores (en ejecución / detenidos) con su ID, usos de CPU, usos de memoria y datos recibidos / transmitidos.
# ctop
Presione ‘f’ para filtrar la vista y escriba una letra / palabra. Para este ejemplo, escribiremos ‘g’ para filtrar todos los contenedores cuyo nombre comience con ‘g’
Una vez que haya filtrado la vista, usando la tecla de retroceso, borre la casilla de filtro y presione enter, se lo llevará a la vista principal superior. Para obtener ayuda, presione ‘h’. Prensa
‘ESC’ para volver a la vista principal.
Presione ‘H’ para alternar el encabezado ctop
Para seleccionar el campo de clasificación para la vista principal ctop presione ‘s’ y seleccione el campo y presione enter.
Para una vista ampliada, seleccione el contenedor usando la tecla de flecha arriba / abajo en la vista principal de ctop y presione enter. Podrá ver las métricas de contenedores seleccionados en detalle.
Ahí lo tiene: supervise el contenedor desde el shell y vea algunos parámetros básicos a través de él. Aunque no es robusto, pero el desarrolladores He planeado algunas mejoras como el gráfico en las versiones futuras.