Archivo de la etiqueta: logs

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.