Actualizado el martes, 18 diciembre, 2018
Instalación y uso de Sysstat monitoring.
En este artículo vemos cómo instalar así como el uso de sysstat (sar), que por si no la conocías es un poderoso paquete de herramientas de monitoreo del sistema para Linux.
En el paquete se incluyen las siguientes herramientas:
- sar: Recopila la información sobre la actividad del sistema.
- iostat: Informa sobre el uso de la CPU y las estadísticas E/S del disco.
- mpstat: Estadísticas globales por procesador.
- pidstat: Estadísticas de los procesos de Linux.
- sadf: Muestra los datos recopilados por sar en varios formatos.
En la información sobre la actividad del sistema se incluye el uso de la red, memoria, disco, etc…, como veis es una herramienta interesante.
Vamos a instalar y usar la herramienta.
Instalación de Sysstat
Vemos las variantes de instalación en CentOS, Debian, Ubuntu y derivados.
CentOS 7:
yum install sysstat -y
systemctl start sysstat
systemctl enable sysstat
Debian, Ubuntu:
sudo apt-get install sysstat
sudo service sysstat restart
Ya lo tenemos instalado y activo, vamos a conocer el uso de Sysstat.
Puedes comprobar la versión instalada con:
mpstat -V
ejemplo…
[root@ns3367391 ~]# mpstat -V
sysstat versión 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
Uso de Sysstat
Mpstat
mpstat
ejemplo de salida…
[root@ns3xxxxxx ~]# mpstat Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxx.ip-xx-xxx-78.eu) 14/12/18 _x86_64_ (8 CPU) 14:32:28 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 14:32:28 all 6,62 0,24 1,00 0,10 0,00 0,35 0,00 0,00 0,00 91,68
Si lo queremos ver por cpu, sería…
mpstat -P ALL
ejemplo de salida…
[root@ns3xxxxxx ~]# mpstat -P ALL Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxx.ip-xx-xxx-xx.eu) 14/12/18 _x86_64_ (8 CPU) 14:34:54 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 14:34:54 all 6,62 0,24 1,00 0,10 0,00 0,35 0,00 0,00 0,00 91,68 14:34:54 0 6,73 0,29 0,98 0,15 0,00 1,26 0,00 0,00 0,00 90,60 14:34:54 1 6,94 0,30 1,02 0,11 0,00 0,53 0,00 0,00 0,00 91,10 14:34:54 2 6,83 0,28 1,04 0,09 0,00 0,31 0,00 0,00 0,00 91,46 14:34:54 3 6,75 0,26 1,02 0,07 0,00 0,18 0,00 0,00 0,00 91,71 14:34:54 4 6,51 0,30 1,00 0,12 0,00 0,19 0,00 0,00 0,00 91,87 14:34:54 5 6,26 0,18 0,97 0,11 0,00 0,15 0,00 0,00 0,00 92,33 14:34:54 6 6,50 0,18 0,97 0,09 0,00 0,11 0,00 0,00 0,00 92,16 14:34:54 7 6,47 0,15 0,97 0,09 0,00 0,09 0,00 0,00 0,00 92,23
Pidstat
En este ejemplo vemos el uso del proceso «mysql«.
pidstat -C "mysql"
ejemplo de salida…
[root@ns3xxxxxxxx ~]# pidstat -C "mysql" Linux 4.9.78-xxxx-std-ipv6-64 (nsxxxxxxxxx.ip-xxxxxxxx8.eu) 14/12/18 _x86_64_ (8 CPU) 14:38:01 UID PID %usr %system %guest %CPU CPU Command 14:38:01 27 8091 0,07 0,00 0,00 0,07 2 mysqld
Visualizar en formato arbol.
pidstat -t -C "mysql"
ejemplo de salida…
Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxx.ip-xxxxxxxx.eu) 14/12/18 _x86_64_ (8 CPU) 14:42:43 UID TGID TID %usr %system %guest %CPU CPU Command 14:42:43 27 8091 - 0,10 0,00 0,00 0,11 6 mysqld 14:42:43 27 - 8091 0,00 0,00 0,00 0,00 6 |__mysqld 14:42:43 27 - 8096 0,00 0,00 0,00 0,00 1 |__mysqld 14:42:43 27 - 8099 0,00 0,00 0,00 0,00 6 |__mysqld 14:42:43 27 - 8100 0,00 0,00 0,00 0,00 6 |__mysqld 14:42:43 27 - 8101 0,00 0,00 0,00 0,00 3 |__mysqld 14:42:43 27 - 8102 0,00 0,00 0,00 0,00 4 |__mysqld 14:42:43 27 - 8103 0,00 0,00 0,00 0,00 5 |__mysqld 14:42:43 27 - 8104 0,00 0,00 0,00 0,00 3 |__mysqld 14:42:43 27 - 8105 0,00 0,00 0,00 0,00 7 |__mysqld 14:42:43 27 - 8108 0,00 0,00 0,00 0,00 7 |__mysqld 14:42:43 27 - 8110 0,00 0,00 0,00 0,00 6 |__mysqld 14:42:43 27 - 8113 0,00 0,00 0,00 0,00 0 |__mysqld 14:42:43 27 - 8114 0,00 0,00 0,00 0,00 3 |__mysqld 14:42:43 27 - 8115 0,00 0,00 0,00 0,00 1 |__mysqld 14:42:43 27 - 8116 0,00 0,00 0,00 0,00 2 |__mysqld 14:42:43 27 - 8117 0,00 0,00 0,00 0,00 4 |__mysqld 14:42:43 27 - 8289 0,01 0,00 0,00 0,01 6 |__mysqld 14:42:43 27 - 8292 0,00 0,00 0,00 0,00 3 |__mysqld 14:42:43 27 - 8294 0,01 0,00 0,00 0,01 5 |__mysqld 14:42:43 27 - 8296 0,02 0,00 0,00 0,02 7 |__mysqld 14:42:43 27 - 8298 0,01 0,00 0,00 0,02 0 |__mysqld 14:42:43 27 - 9120 0,02 0,00 0,00 0,02 5 |__mysqld 14:42:43 27 - 9297 0,01 0,00 0,00 0,01 0 |__mysqld 14:42:43 27 - 9299 0,01 0,00 0,00 0,01 3 |__mysqld
Añadimos el uso en el disco.
pidstat -t -C "mysql" -d
ejemplo de salida…
[root@ns3xxxxxx ~]# pidstat -t -C "mysql" -d Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxxxx.ip-xxxxxxx.eu) 14/12/18 _x86_64_ (8 CPU) 14:45:11 UID TGID TID kB_rd/s kB_wr/s kB_ccwr/s Command 14:45:11 27 8091 - 3,97 3,75 0,97 mysqld 14:45:11 27 - 8091 0,20 0,00 0,00 |__mysqld 14:45:11 27 - 8105 0,00 2,67 0,00 |__mysqld 14:45:11 27 - 8110 0,01 0,03 0,00 |__mysqld 14:45:11 27 - 8111 0,00 0,00 0,00 |__mysqld 14:45:11 27 - 8113 0,00 0,00 0,00 |__mysqld 14:45:11 27 - 8117 0,67 0,00 0,00 |__mysqld 14:45:11 27 - 8121 0,00 0,00 0,00 |__mysqld 14:45:11 27 - 8122 0,00 0,00 0,00 |__mysqld 14:45:11 27 - 8289 0,22 0,15 0,14 |__mysqld 14:45:11 27 - 8292 1,04 0,02 0,02 |__mysqld 14:45:11 27 - 8294 0,87 0,16 0,15 |__mysqld 14:45:11 27 - 8296 0,22 0,16 0,15 |__mysqld 14:45:11 27 - 8298 0,42 0,16 0,15 |__mysqld 14:45:11 27 - 9120 0,12 0,14 0,13 |__mysqld 14:45:11 27 - 9297 0,08 0,13 0,12 |__mysqld 14:45:11 27 - 9299 0,12 0,13 0,12 |__mysqld
Iostat
iostat
ejemplo de salida…
[root@ns3xxxxxxxx ~]# iostat Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxxx.ip-xxxxxxx.eu) 14/12/18 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 6,63 0,24 1,35 0,10 0,00 91,68 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 52,95 358,63 1077,27 50147591 150636149 sdb 42,89 27,94 1077,27 3907475 150636149 md2 65,97 377,93 1014,90 52847009 141915236 md1 9,68 8,53 44,34 1192886 6200064
Sar
Con «sar» disponemos de varios parámetros:
- Disco: -d
- RAM: -r
- Red: -n
- CPU: Sin parámetros
- Todos los modos: -A
sar
ejemplo de salida…
[root@ns3xxxxx ~]# sar Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxx.ip-xxxxxxx.eu) 14/12/18 _x86_64_ (8 CPU) 14:31:15 LINUX RESTART 14:40:01 CPU %user %nice %system %iowait %steal %idle 14:50:01 all 7,40 0,00 1,49 0,04 0,00 91,06 Media: all 7,40 0,00 1,49 0,04 0,00 91,06
Ahora como ejemplo medimos la red.
sar -n DEV
ejemplo de salida…
[root@ns3xxxxxxx ~]# sar -n DEV Linux 4.9.78-xxxx-std-ipv6-64 (ns3xxxxxxx.ip-3xxxxxxx.eu) 14/12/18 _x86_64_ (8 CPU) 14:31:15 LINUX RESTART 14:40:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 14:50:01 gretap0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 dummy0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 ifb0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 ip6tnl0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 eth0 790,16 1622,69 64,62 2257,69 0,00 0,00 0,02 14:50:01 bond0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 teql0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 gre0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 tunl0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 ifb1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 14:50:01 lo 784,85 784,85 175,16 175,16 0,00 0,00 0,00 14:50:01 sit0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: gretap0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: dummy0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: ifb0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: ip6tnl0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: eth0 790,16 1622,69 64,62 2257,69 0,00 0,00 0,02 Media: bond0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: teql0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: gre0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: tunl0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: ifb1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Media: lo 784,85 784,85 175,16 175,16 0,00 0,00 0,00 Media: sit0 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Configuración de Sysstat
Al instalar y activar sysstat se crean unas tareas cron para que guarde los registros, las puedes revisar con este comando:
cat /etc/cron.d/sysstat
salida…
[root@ns3xxxxx ~]# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
Si quieres revisar el archivo de configuración, ejecuta el comando:
cat /etc/sysconfig/sysstat
salida…
[root@ns3xxxxxxx ~]# cat /etc/sysconfig/sysstat
# sysstat-10.1.5 configuration file.
# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS=»-S DISK»
# Compression program to use.
ZIP=»bzip2″
Espero que lo pruebes.
Puedes revisar su Github oficial aquí.