Archivo de la categoría: Monitorización

Monitorizar temperatura de disco duro con hddtemp

hddtemp es un comando de Linux que permite monitorizar la temperatura del disco duro de vuestro equipo. Es un comando que hay que ejecutar como root (o con sudo). Hay que pasarle como parámetro el disco duro que queremos monitorizar. Ejemplo:

[ user ] [~] > /usr/sbin/hddtemp /dev/sdb
/dev/sdb: ST9750420AS: 39°C

Si lo queréis ejecutar con vuestro usuario debéis aplicarle el setuid bit de esta forma:

chmod u+s /usr/sbin/hddtemp

Con esto se consigue que el programa hddtemp adquiera los permisos el propietario del mismo (root).

Yendo un paso más allá, podéis incorporar esta información en conky. Conky es un programa para monitorizar cosas en vuestro PC y, en general, mostrar información al respecto. En este caso particular, nos mostraría constantemente la temperatura del disco duro.

Configurando nuestro SAI en Linux

Introducción

En un anterior artículo os comenté las ventajas de disponer de un SAI conectado a vuestro equipo (es decir, entre la toma de corriente y vuestro PC). En este artículo os comento cómo configurar vuestro equipo Linux (*) para tener en cuenta los eventos que recibe nuestro SAI y poder actuar en consecuencia. El software que en Linux se encarga de gestionar estas cositas se llama NUT (Network UPS Tools). A continuación veremos cómo instalarlo y configurarlo. NOTA: partimos de que tenemos nuestro PC conectado ya al SAI tanto con el cable de corriente como por cable USB para la comunicación del software con el mismo.

Instalación

Este software lo podéis encontrar en los repositorios de vuestra distro favorita casi con total seguridad (si no, podéis descargarlo de la web oficial). En nuestro caso (openSUSE) haremos esto:

zypper in nut

Configuración

Una vez tenemos instalado el software en nuestro sistema tenemos que configurar unos cuantos ficheros, ubicados todos en /etc/ups, a saber:

  • nut.conf
  • ups.conf
  • upsd.conf
  • upsd.users
  • upsmon.conf

Investigando en Internet una buena guía para configurar NUT encontré esta web, en la que el autor explica perfectamente no sólo cómo configurar NUT sino como probarlo e incluso tratar los posibles errores. Os recomiendo encarecidamente que le echéis un vistazo, sobre todo si usáis openSUSE. A continuación os indico las líneas de los ficheros de configuración que tenéis que tener para que os funcione bien. El resto de líneas que aquí se omiten podéis dejarlas con los valores por defecto. En la guía que os comentaba antes tenéis bastante bien explicado para qué sirven. Pondré una breve descripción y directamente las líneas a añadir/modificar.

nut.conf

Aquí configuramos el modo de funcionamiento del software:

MODE=standalone

ups.conf

Aquí se especifica el SAI (o SAIs) que vamos a monitorizar. Lo más importante aquí es el driver que se elige (**):

[eaton]
driver = usbhid-ups
port = auto
desc = "Eaton SAI en skywalker"

upsd.conf

IP y puerto donde va a escuchar peticiones el demonio upsd. Aquí también configuraríamos si debemos conectarnos a máquinas remotas para que se apaguen si es que la principal ha detectado corte de suministro eléctrico. El PC conectado al SAI sería el master (maestro) y los demás equipos serían slaves (esclavos). En nuestro caso sólo controlamos una máquina, la nuestra, por tanto:

LISTEN 127.0.0.1 3493

upsd.users

Usuarios que podrán conectarse al servicio upsd (***):

[upsmaster]
password = mipassword
upsmon master

upsmon.conf

Aquí se configura la cadena de conexión al SAI y el comando a lanzar para realizar el shutdown del equipo entre otras cosas (lo más importante son estos dos valores, el resto se pueden quedar con las opciones por defecto):

MONITOR eaton@localhost 1 upsmaster mipassword master
SHUTDOWNCMD "/sbin/shutdown -h +0"

upssched.conf

 

CMDSCRIPT /usr/sbin/upssched-cmd

PIPEFN /var/lib/ups/upssched.pipe
LOCKFN /var/lib/ups/upssched.lock

AT ONBATT * START-TIMER two-minute-warning-timer 5
AT ONBATT * START-TIMER one-minute-warning-timer 65
AT ONBATT * START-TIMER shutdown-timer 125

AT ONLINE * CANCEL-TIMER two-minute-warning-timer
AT ONLINE * CANCEL-TIMER one-minute-warning-timer
AT ONLINE * CANCEL-TIMER shutdown-timer
AT ONLINE * EXECUTE ups-back-on-line

AT LOWBATT * EXECUTE ups-low-battery
AT LOWBATT * START-TIMER shutdown-timer 35

Primera prueba

Para ver que todo va OK podemos ejecutar:

upsc NOMBRE_SAI

que es el nombre que hemos definido en ups.conf y que también podemos ver con el comando:

upsc -L

Otro comando interesante es:

upscmd -l NOMBRE_SAI

que muestra los comandos que podemos usar con nuestro SAI (no todos los modelos permiten esto).

Ejemplo de comando:

upscmd -u USER -p PASSWORD NOMBRE_SAI beeper.disable

el cuál deshabilita el pitido del SAI (suponiendo que en el listado de comandos que se muestran con «upsc -l» aparece dicho comando).

 

Si va todo Ok ya lo tenemos. Si da algún fallo mirad la sección siguiente.

Posibles fallos

Si tras terminar de configurar todo falla algo a la hora de arrancar el servicio, un problema muy frecuente es que se los permisos de los archivos estén mal. Para corregirlo mirad aquí (apartado 2) cómo tienen que estar. Más errores son tratados y explicados en el apartado 10 de dicho artículo.

Conclusiones

Si no tenéis ningún sistema que proteja vuestros equipos contra problemas con el suministro eléctrico (sobre todo picos de corriente) no deberíais dejarlo así mucho más tiempo. Tenéis la opción de poner una regleta con protección o bien un SAI como vimos en el anterior artículo. Si ponéis un SAI, como habéis podido ver en el artículo, le podéis sacar bastante partido haciendo, por ejemplo, que vuestro equipo se apague de forma controlada si hay un apagón. Espero que os sirva.

(*) Particularizaré para mi distro (openSUSE) pero esto es válido para prácticamente cualquier otra distro.

(**) Para saber cuál es el que se necesita tenemos que saber primero qué SAI tenemos (esto lo podemos ver con un lsusb -v). Una vez que lo sabemos (tanto marca como modelo) consultaremos aquí cuál es el que corresponde. En nuestro caso tenemos un Eaton Protection Station, por lo que el driver a elegir es usbhid-ups. También podemos consultar la página del manual de nutupsdrv (al final de la misma aparecen todos los drivers y consultando su manual se pueden ver los modelos y comandos soportados).

(***) No son usuarios del sistema sino usuarios del propio software; estas credenciales se usan en el fichero upsmon.conf.

Analizando logs fácilmente con logwatch

Para mantener nuestro PC en buen estado, tenemos que estar pendientes de lo que está ocurriendo en el mismo. No nos va a hablar directamente (aunque se podría conseguir algo parecido) pero nos lo va a mostrar en un registro. Hablo del log.

Mirar el log todos los días es tedioso, sobre todo si no haces grandes cambios en el PC ni nada que pueda alterar el buen funcionamiento del mismo.

En cualquier caso, si pudiéramos echar un vistazo rápido de lo que ocurre, es decir, un resumen de las cosas más importantes del log, podríamos anticiparnos ante problemas posteriores y/o solucionar cositas que nos pasan con frecuencia (porque el sistema te está diciendo en el log por qué suceden).

Esta función de resumir los logs la hacen programas como logwatch. Este software se instala fácil y rápidamente y con sólo ejecutarlo ya nos muestra un resumen de las cosas más importantes del sistema:

################### Logwatch 7.4.0 (03/01/11) #################### 
 Processing Initiated: Fri Sep 19 00:25:30 2014
 Date Range Processed: yesterday
 ( 2014-Sep-18 )
 Period is day.
 Detail Level of Output: 0
 Type of Output/Format: stdout / text
 Logfiles for Host: skywalker
 ################################################################## 
 
 --------------------- Selinux Audit Begin ------------------------
**Unmatched Entries** 
 type=1400 audit(1411071917.719:2): apparmor="STATUS" operation="profile_load" nam
="/{usr/,}bin/ping" pid=529 comm="apparmor_parser"
 type=1400 audit(1411071917.733:3): apparmor="STATUS" operation="profile_load" nam
="/sbin/klogd" pid=537 comm="apparmor_parser"
 type=1400 audit(1411071917.742:4): apparmor="STATUS" operation="profile_load" nam
="/sbin/syslog-ng" pid=541 comm="apparmor_parser"
 type=1400 audit(1411071917.753:5): apparmor="STATUS" operation="profile_load" nam
="/sbin/syslogd" pid=545 comm="apparmor_parser"
 type=1400 audit(1411071917.768:6): apparmor="STATUS" operation="profile_load" nam
="/usr/lib/apache2/mpm-prefork/apache2" pid=550 comm="apparmor_parser"
 type=1400 audit(1411071917.769:7): apparmor="STATUS" operation="profile_load" nam
="/usr/lib/apache2/mpm-prefork/apache2//DEFAULT_URI" pid=550 comm="apparmor_parser

 type=1400 audit(1411071917.769:8): apparmor="STATUS" operation="profile_load" nam
="/usr/lib/apache2/mpm-prefork/apache2//HANDLING_UNTRUSTED_INPUT" pid=550 comm="ap
armor_parser"
 type=1400 audit(1411071917.770:9): apparmor="STATUS" operation="profile_load" name="/usr/lib/apache2/mpm-prefork/apache2//phpsysinfo" pid=550 comm="apparmor_parser"
 type=1400 audit(1411071917.779:10): apparmor="STATUS" operation="profile_load" na
me="/usr/lib/dovecot/anvil" pid=554 comm="apparmor_parser"
 type=1400 audit(1411071917.790:11): apparmor="STATUS" operation="profile_load" name="/usr/lib/dovecot/auth" pid=558 comm="apparmor_parser"
---------------------- Selinux Audit End -------------------------

--------------------- iptables firewall Begin ------------------------
Listed by source hosts:
 Dropped 89 packets on interface enp2s0
 From fe80:0000:0000:0000:1e6f:aa22:aa22:2122 - 2 packets to udp(5353) 
 From 192.168.1.33 - 87 packets to udp(32951,34298,35537,35639,36732,37794,39042,3
485,43827,46363,47490,48232,48262,49410,51155,54326,54679,56707,57796,59073,59619,
982) 
 ---------------------- iptables firewall End -------------------------

 --------------------- pam_unix Begin ------------------------
su:
 Sessions Opened:
 root -> user: 2 Time(s)
 
 systemd-user:
 Unknown Entries:
 session opened for user user by (uid=0): 1 Time(s)
 session opened for user root by (uid=0): 1 Time(s)
 ---------------------- pam_unix End -------------------------
 --------------------- SSHD Begin ------------------------
 SSHD Started: 2 Time(s)
 ---------------------- SSHD End -------------------------

 --------------------- Disk Space Begin ------------------------
Filesystem Size Used Avail Use% Mounted on
 /dev/sda1 30G 12G 17G 42% /
 devtmpfs 1.9G 28K 1.9G 1% /dev
 ---------------------- Disk Space End -------------------------
 ###################### Logwatch End #########################

Podemos ejecutarlo con el parámetro –detail high si queremos más detalles. También podemos usar –range para decir qué franja del log queremos (ayer, todos, etc.).

Por último, es interesante que se nos envíe esto por mail. Esto lo podéis hacer fácilmente con la forma que os expliqué aquí.

También se podría usar la propia función de enviar mail que tiene logwatch, pero para ello tendríamos que usar un cliente smtp que se conecte a un servidor de correo de forma correcta (autenticándose) y nos envíe un mail (*). Por ejemplo, se podría usar ssmtp o msmtp. Lo mismo un día os hablo de uno de estos programas, que son interesantes para mandar mails usando el comando mail desde la línea de comandos.

En cualquiera de los dos casos, lo suyo es automatizar este chequeo y que, por ejemplo, cada mañana nos envíe un mail con el resumen de las cositas que han ocurrido en el día de ayer (parámetro –range yesterday).

 

(*) Alguien pensará en usar su propia MTA en su equipo usando postfix o sendmail. Funcionar es posible que funcione, pero tarde o temprano os van a banear de servidores de correo e incluso meter vuestra IP en listas negras porque no corresponde con el servidor autorizado de un dominio. Por eso recomiendo usar cositas como ssmtp o msmtp para estos menesteres.

Monitorizando el consumo de red en nuestro equipo GNU/Linux (III)

Hemos hablado ya de las utilidades iftop iptraf. En esta entrada os quiero mostrar una muy sencilla y muy práctica que permite saber rápidamente qué procesos están consumiendo más ancho de banda sin necesidad de usar otras terceras aplicaciones.

La aplicación se llama nethogs. Se encuentra disponible en las distribuciones más importantes y para ejecutarla, simplemente pondremos:

nethogs INTERFACE

Por ejemplo:

nethogs eth0

o en mi caso:

nethogs enp2s0

Al arrancar la aplicación se muestra con este aspecto:

nethogs

Ejecución de nethogs (*)

Como se aprecia, se puede ver fácilmente qué procesos están usando la red y la velocidad con la que lo están haciendo.

Poco más que decir sobre esta aplicación. Muy sencilla y muy fácil de usar.

 

(*) Imagen descargada de la web -sourceforge-.

Monitorizando el consumo de red en nuestro equipo GNU/Linux (II)

En el anterior artículo vimos cómo usar iftop para monitorizar el consumo de ancho de banda en nuestro equipo GNU/Linux.

Hoy vamos a ver otro comando interesante: iptraf.

iptraf es una utilidad muy completa para monitorizar el consumo de ancho de banda actual en nuestras interfaces de red así como mostrar estadísticas de uso de las mismas.

Al arrancarlo sale una interfaz tipo curses, que permite seleccionar con los cursores del teclado la opción que queremos. Una opción que muestra bastante información es la de Detailed interface statistics, que muestra algo así:

Ejecución de iptraf

Ejecución de iptraf (*)

También es interesante la primera opción IP traffic monitor, que muestra las conexiones TCP junto con las estadísticas de paquetes y bytes enviados tanto en un sentido como en otro.

Espero que os resulte útil.

 

(*) Imagen descargada desde la web oficial de iptraf.

Monitorizando el consumo de red en nuestro equipo GNU/Linux (I)

Si nos interesa saber qué ancho de banda se está consumiendo en nuestro equipo Linux podemos hacerlo de forma muy sencilla usando la aplicación iftop.

iftop es una sencilla aplicación que funciona en modo texto y que, por tanto, podemos lanzar en cualquier sesión de terminal que tengamos abierta.

Está disponible para las distribuciones más importantes. Al arrancar la aplicación tiene este aspecto:

Ejecución de iftop (screenshot de la web oficial)

Ejecución de iftop (*)

Como vemos, nos muestra una lista de IPs origen e IPs destino que detecta nuestra tarjeta de red y qué cantidad de tráfico estamos enviando/recibiendo. Nos muestra 3 columnas a la derecha, en las cuáles nos informa el tráfico enviado/recibido en los últimos 2, 10 y 40 segundos.

Es algo parecido a lo que hace top con los recursos del sistema pero ésta aplicación lo hace con el consumo de ancho de banda.

En las dos últimas líneas nos muestra el tráfico acumulado (tanto recibido como enviado) desde que hemos arrancado la aplicación, los picos de tráfico y también el total de enviado y recibido en los últimos 2, 10 y 40 segundos.

Una vez que lo arrancamos tenemos varias opciones útiles, como por ejemplo:

t: Cambia el aspecto (sólo tráfico enviado, sólo recibido, ambos en una línea, ambos en 2 líneas)
p: Muestra los números de puerto
n: No resuelve los nombres de host (muestra las IPs)
T: muestra una columna adicional con los totales acumulados para ese tráfico
l: permite hacer filtros introduciendo la cadena por la cuál queremos filtrar
?: muestra la ayuda (todas las teclas y sus funciones)

Usad la opción «?» para ver todas porque hay muchas más opciones. Por ejemplo, también son útiles las que permiten ordenar el resultado por una u otra columna (con «<» y «>»).

Se puede arrancar ya la aplicación con unos parámetros. Por ejemplo, si sabemos que no queremos que resuelva los nombres podemos arrancarlo con la opción -n. Con el comando man podéis indagar más sobre todas las opciones disponibles.

Es muy útil para poder saber, en un momento en el que notáis que las descargas o la navegación web -por ejemplo- van más lentas de lo normal.

 

(*) Imagen descargada de la wikipedia.

Monitorizando vuestro equipo con «saidar»

En GNU/Linux existen muchas utilidades para monitorizar los distintos parámetros que miden la actividad y el estado del sistema, como consumo de CPU, de memoria, lectura/escritura en discos, uso de la red, etc.

Normalmente, cada una de estas utilidades monitoriza unos parámetros en concreto, por lo que si queremos ver otros tenemos usar otras utilidades. Esto no tiene por qué ser un problema, porque a uno le puede interesar consultar unos parámetros en un momento y otros en otro. Sin embargo, si queremos ver todos (*) podemos usar una herramienta como «saidar».

Saidar nos muestra en un formato de texto aunque fácilmente legible, consumo de CPU, de memoria, de red, uso de disco duro, entre otros. Para instalarlo, simplemente usar el gestor de paquetes de vuestra distro y lo tendréis. Si no os lo encuentra pensad en cambiar de distro ;-P. Ubuntu y OpenSuse, por ejemplo, lo tienen.

Al ejecutar el comando «saidar», aparecerá algo así:

Salida del comando saidar

Salida del comando saidar

Como vemos, con esta utilidad podemos observar, de un vistazo, algunos de los parámetros más importantes que muestran el estado de nuestro equipo.

Un aspecto a tener en cuenta respecto a la información suministrada sobre la memoria usada/libre: la información es correcta, por supuesto, pero hay que tener en cuenta que Linux usa memoria libre para optimizar procesos del sistema como vimos en el anterior artículo.

El comando se puede dejar lanzado en una terminal y va actualizando cada 2 segundos.

 

(*) Realmente no son todos los parámetros del sistema, sino algunos de los parámetros más significativos.

Consultar memoria usada/libre en GNU/Linux con comandos

Existe una forma sencilla de consultar la memoria ocupada/libre de nuestro sistema GNU/Linux desde la línea de comandos. Para ello tenemos el comando free.

Si lo ejecutamos nos mostrará la cantidad de memoria ocupada/libre que hay en el sistema, pero lo hará en bytes, lo cuál es difícil de leer. Para solucionar esto usaremos el parámetro -m. De esta forma (con «free -m») lo vemos en MB. Ejemplo:

Salida del comando free

Salida del comando free

Si nos fimajos en la segunda fila (-/+ buffers/cache) tenemos 1137 MB de memoria en uso y libres 2818 MB. De estos 2818 MB, 845 se están usando para caché de procesos, 72 MB para buffers de I/O y 1900 MB están libres (el sistema no los está usando para nada). Los 72 MB de «buffers» y los 845 MB de «cached» se pueden usar cuando se necesite memoria para algún programa, por lo que se pueden considerar como libres, sumándolos a los otros 1900 MB (lo que nos dán los 2818 MB que nos indica dicha línea (*)).

GNU/Linux usa toda la memoria para cachear procesos y datos de forma que se le saque partido a la misma. De esta forma se aceleran el uso del sistema y la memoria se considera libre al mismo tiempo, pasando a disposición de cualquier proceso que la necesite.

 

(*) La columna «shared», según se indica en la página del manual, es una información obsoleta y se puede obviar.