manuales:nagios:capacitacion:correlacion_de_eventos
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
manuales:nagios:capacitacion:correlacion_de_eventos [2015/10/22 17:40] – creado cayu | manuales:nagios:capacitacion:correlacion_de_eventos [2017/07/21 16:06] (actual) – [Sistemas de Syslog Centralizado] cayu | ||
---|---|---|---|
Línea 163: | Línea 163: | ||
Puede logguear tanto por UDP como por TCP, teniendo compatibilidad con el viejo syslog, soportando a su vez muchas mas opciones y tareas que el syslog comun. | Puede logguear tanto por UDP como por TCP, teniendo compatibilidad con el viejo syslog, soportando a su vez muchas mas opciones y tareas que el syslog comun. | ||
- | ==== Sobre Syslog-NG ==== | + | ==== Sistemas de Syslog |
+ | * [[manuales: | ||
+ | * [[manuales: | ||
+ | * [[manuales: | ||
- | Syslog-NG es un sistema para el envío de mensajes de registro en una red. | ||
- | |||
- | Es útil registrar, por ejemplo: | ||
- | |||
- | * Un intento de acceso con contraseña equivocada | ||
- | * Un acceso correcto al sistema | ||
- | * Anomalías: variaciones en el funcionamiento normal del sistema | ||
- | * Alertas cuando ocurre alguna condición especial | ||
- | * Información sobre las actividades del sistema operativo | ||
- | * Errores del hardware o el software | ||
- | |||
- | También es posible registrar el funcionamiento normal de los programas; por ejemplo, guardar cada acceso que se hace a un servidor web, aunque esto suele estar separado del resto de alertas. | ||
- | |||
- | Puede logguear tanto por UDP como por TCP, teniendo compatibilidad con el viejo syslog, soportando a su vez muchas mas opciones y tareas que el syslog comun. | ||
- | |||
- | |||
- | == Explicacion tecnica simple == | ||
- | |||
- | Syslog-NG se compone en capas de funcionamiento | ||
- | |||
- | |||
- | {{ : | ||
- | |||
- | Osea tengo en primer lugar opciopnes generales, luego fuentes de donde obtener datos de los registros, ya sean locales, externos por red (udp, tcp, archivos de texto), y luego tenemos destinos y filtros configurados, | ||
- | |||
- | |||
- | |||
- | ==== Tareas ==== | ||
- | |||
- | Se instalo el software syslog-ng dentro de un servidor Debian. | ||
- | |||
- | < | ||
- | apt-get install syslog-ng | ||
- | </ | ||
- | |||
- | En la instalacion como resultante se tiene el siguiente archivo de configuracion principal | ||
- | |||
- | **/ | ||
- | |||
- | |||
- | |||
- | |||
- | == Clientes == | ||
- | |||
- | En los clientes se procedió a configurar el syslog convencional para que loggueara por UDP hacia el servidor syslog. | ||
- | |||
- | **syslog-ng.conf** | ||
- | <file ini syslog-ng.conf> | ||
- | destination syslog_server { | ||
- | tcp( " | ||
- | }; | ||
- | |||
- | filter | ||
- | |||
- | filter f_auth { | ||
- | facility(auth, | ||
- | }; | ||
- | log { | ||
- | source(src); | ||
- | filter(f_auth); | ||
- | destination(syslog_server); | ||
- | }; | ||
- | |||
- | log { | ||
- | source(src); | ||
- | filter(f_local6); | ||
- | destination(syslog_server); | ||
- | }; | ||
- | </ | ||
- | |||
- | **syslog.conf** | ||
- | <file ini syslog.conf> | ||
- | auth.*; | ||
- | local6.* | ||
- | </ | ||
- | |||
- | **/ | ||
- | |||
- | <note important> | ||
- | Esto es para logguear todos los comandos que ejecutan los usuarios, funciona aunque ejecuten un sudo o un su sin perder el rastro del usuario original, siempre y cuando no modifiquen la variable de entorno. | ||
- | </ | ||
- | <code bash> | ||
- | export PROMPT_COMMAND=' | ||
- | </ | ||
- | |||
- | ==== Configuración del Servidor ==== | ||
- | Debian GNU/Linux Etch | ||
- | |||
- | Archivo / | ||
- | |||
- | |||
- | |||
- | Opciones generales, fuentes de donde obtener información, | ||
- | |||
- | |||
- | < | ||
- | options { | ||
- | long_hostnames(off); | ||
- | # doesn' | ||
- | log_msg_size(8192); | ||
- | # buffer just a little for performance | ||
- | # sync(1); <- Deprecated - use flush_lines() instead | ||
- | flush_lines(1); | ||
- | # memory is cheap, buffer messages unable to write (like to loghost) | ||
- | log_fifo_size(16384); | ||
- | # Hosts we don't want syslog from | ||
- | # | ||
- | # The time to wait before a dead connection is reestablished (seconds) | ||
- | time_reopen(10); | ||
- | #Use DNS so that our good names are used, not hostnames | ||
- | use_dns(no); | ||
- | dns_cache(yes); | ||
- | #Use the whole DNS name | ||
- | use_fqdn(no); | ||
- | keep_hostname(no); | ||
- | chain_hostnames(no); | ||
- | #Read permission for everyone | ||
- | perm(0644); | ||
- | # The default action of syslog-ng 1.6.0 is to log a STATS line | ||
- | # to the file every 10 minutes. | ||
- | # Change it to every 12 hours so you get a nice daily update of | ||
- | # # how many messages syslog-ng missed (0). | ||
- | stats(43200000); | ||
- | }; | ||
- | |||
- | # Log Interno | ||
- | source interno { | ||
- | # message generated by Syslog-NG | ||
- | internal(); | ||
- | # standard Linux log source (this is the default place for the syslog() | ||
- | # function to send logs to) | ||
- | unix-stream("/ | ||
- | # messages from the kernel | ||
- | file("/ | ||
- | }; | ||
- | |||
- | # Create destination to LogZilla | ||
- | destination d_logzilla { | ||
- | | ||
- | | ||
- | ); | ||
- | }; | ||
- | source externo { | ||
- | # use the following line if you want to receive remote UDP logging messages | ||
- | # (this is equivalent to the " | ||
- | # Ampliamos el limite de conexiones para recibir gran cantidad de datos de LOGS externos | ||
- | udp(ip(0.0.0.0) port(514)); | ||
- | tcp(ip(0.0.0.0) port(514) | ||
- | }; | ||
- | |||
- | # Tell syslog-ng to log to our new destination | ||
- | log { | ||
- | source(externo); | ||
- | destination(d_logzilla); | ||
- | }; | ||
- | |||
- | # Alertas de Nagios Eventdb | ||
- | |||
- | destination d_eventdb { | ||
- | pipe( | ||
- | "/ | ||
- | template(" | ||
- | template_escape(no) | ||
- | ); | ||
- | }; | ||
- | |||
- | log { | ||
- | source(externo); | ||
- | destination(d_eventdb); | ||
- | }; | ||
- | </ | ||
- | |||
- | ==== PHP-Syslog-ng ==== | ||
- | |||
- | //Para la visualizacion de los logs via web, busqueda y demas operaciones para su administracion se instalo, configuro y modifico a necesidad parte de codigo del sofware php-syslog-ng que provee de una interfaz web con soporte de busquedas y que servia para cubrir la necesidad planteada.// | ||
- | |||
- | |||
- | |||
- | Una vez instalado se configuro el apache para su puesta en marcha de la siguiente manera (se omitieron las directivas de autenticacion). | ||
- | |||
- | < | ||
- | Alias /syslog "/ | ||
- | < | ||
- | Options All | ||
- | Order allow,deny | ||
- | Allow from all | ||
- | SSLRequireSSL | ||
- | AllowOverride None | ||
- | </ | ||
- | </ | ||
- | |||
- | === Integración con Nagios === | ||
- | |||
- | {{: | ||
- | ==== Eventdb ==== | ||
- | |||
- | === ¿Que es Eventdb? === | ||
- | |||
- | EventDB es una herramienta para facilitar el tratamiento de los datos basados en eventos de Syslog para herramientas de monitoreo como Nagios o Icinga y su integración con los mismos se logra a través de un plug-in de chequeo. Cuenta con varios plugins para diferentes fuentes de datos. La interfaz web permite a los usuarios buscar, filtrar y reconocer todos los eventos. | ||
- | |||
- | === ¿Cómo funciona? === | ||
- | |||
- | El EventDB toma los eventos recibidos y los almacena en una base de datos MySQL. Se tomando los datos de syslog-ng desde un pequeño demonio perl (syslog-ng2mysql.pl). syslog-ng2mysql.pl abre una unix-pipe por un lado desde donde recibe los mensajes de syslog-ng, y utiliza DBI en el otro para escribir datos en MySQL. | ||
- | |||
- | |||
- | {{: |
manuales/nagios/capacitacion/correlacion_de_eventos.txt · Última modificación: 2017/07/21 16:06 por cayu