Instalación y uso de Sysstat monitoring

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 y uso de Sysstat monitoring 1

 

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)

Instalación y uso de Sysstat monitoring 2

 

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í.

 

Agregar comentario