Tras instalar syslog-ng hay que entender el fichero de configuración (/etc/syslog-ng/syslog-ng.conf).

Sources

Esta sección dice de dónde se van a sacar los logs. Cada sistema tiene su manera de permitir a las aplicaciones la comunicación con el sistema de logs. En caso de GNU/Linux, se utiliza unix-stream.

source src { unix-stream("/dev/log"); internal(); };

internal se refiere a que sólo escuchará en nuestra máquina.

source kernsrc { file("/proc/kmsg"); };

El método por el cual el kernel muestra sus mensajes.

Filters

Aquí definimos que filtros utilizaremos para cada log. Es decir, si quiero un log separado para named, aquí crearé el filtro específico:

filter f_ssh { program("sshd.*");};
filter f_auth { facility(auth); };

El primero dice que el filtro es el programa sshd. El segundo utiliza facility, una marca interna de los logs:

**Facility names are: "auth", "authpriv", "cron", "daemon", "ftp", "kern", "lpr", "mail", "news", "security", "syslog", "user", "uucp", "local0", "local1" ... "local7"


Destinations

Este apartado simplemente dice donde queremos guardar los logs.

destination ssh { file("/var/log/ssh/ssh.log"); };


Log paths

Bueno, esta sección relaciona las secciones anteriores y crea el fichero de log:

log { source(src); filter(f_ssh); destination(ssh); };

Define el origen, el filtro que utilizamos y dónde queremos que guarde el log.

Options

Aquí se definen las opciones generales de syslog-ng.

options {
sync (0);
stats (0);
chain_hostnames(no);
create_dirs (yes);
dir_perm(0755);
dns_cache(yes);
keep_hostname(yes);
log_fifo_size(2048);
long_hostnames(on);
perm(0644);
time_reopen (10);
use_dns(yes);
};


Syslog facilities

El argumento facility se emplea para especificar qué tipo de programa está registrando el mensaje. Esto permite que en el fichero de configuración se especifique qué mensajes de diferentes programas se manejen de forma diferente.

  • kern: mensajes del kernel.
  • user: mensajes genéricos a nivel de usuario.
  • mail: mensajes de mail.
  • lpr: sistema de impresión.
  • auth: mensajes de seguridad o autorización.
  • daemon: demonios del sistema.
  • news: sistema de anuncios.
  • uucp: sistema UUCP.
  • local0 / local7: reservado para uso local.
  • mark: timestamp que envía un mensaje cada 20 minutos.


Syslog Priorities

Esto determina la importancia del mensaje. Los niveles son, en orden de importancia decreciente:

  • emer: el sistema está inutilizable.
  • alert: debe tomarse una acción correctora inmediatamente (por ejemplo un crash de la base de datos).
  • crit: condiciones críticas (por ejemplo un error de hardware).
  • err: condiciones de error.
  • warning: condiciones de warning.
  • notice: condiciones normales.
  • info: mensajes informativos.
  • debug: mensajes utilizado para debugar programas.
  • none: no enviar mensajes.