meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
aplicaciones:servidor_de_logs [232010/08/ 12:38] lcaplicaciones:servidor_de_logs [182023/01/ 13:10] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag> rsyslog}}
 +====== Rsyslog ======
  
 +En la instalación del servidor remoto de log’s se han usado las siguientes herramientas.
 +
 +  * CentOS 5.2
 +  * Rsyslog
 +  * Mysql
 +  * PHP
 +  * Apache
 +  * Phplogcon
 +
 +===== Instalación =====
 +
 +Desde la consola introducimos lo siguiente:
 +
 +  # yum –y install rsyslog rsyslog-mysql mysql-server php httpd php-mysql
 +
 +Se instalarán automáticamente los paquetes arriba mencionados (menos el phplogcon) y además todas sus dependencias.
 +
 +===== Configuración =====
 +
 +Añadimos al sistema el usuario syslog que lo usaremos en la base de datos.
 +   # useradd syslog
 +
 +Empezamos por arrancar y configurar el mysql.
 +
 +   # chkconfig mysqld on
 +
 +   # service mysqld start
 +
 +Añadimos una clave para el root del mysql.
 +
 +   # mysqladmin –u root password nueva-clave
 +
 +rsyslog-mysql trae preparada una base de datos llamada syslog para crearla en mysql y meter ahí los datos que obtenemos. Para crearla hacemos lo siguiente:
 +
 +   # cd /usr/share/doc/rsyslog-mysql-2.0.0
 +   # mysql –p < createDB.sql
 +
 +Una vez creada la base de datos nos logeamos como root en mysql y le damos permiso al usuario syslog para que pueda escribir en la base de datos.
 +
 +   # mysql –u root –p
 +   mysql> grant all on Syslog.* to syslog@localhost identified by ‘syslogpwd’;
 +   mysql> flush privileges;
 +   mysql> exit
 +
 +Ahora tenemos que modificar los dos ficheros de configuración del rsyslog.
 +
 +/etc/rsyslog.conf  -> ejemplo para este fichero:
 +
 +   # Log all kernel messages to the console.
 +   # Módulos para la comunicación con la base de datos en mysql
 +   $ModLoad ommysql.so
 +   $ModLoad imudp.so
 +   $UDPServerRun 514
 +   *.* :ommysql:127.0.0.1,Syslog,syslog,syslogpwd
 +   # Logging much else clutters up the screen.
 +   #kern.*                                                 /dev/console
 +   # Log anything (except mail) of level info or higher.
 +   # Don't log private authentication messages!
 +   *.info;mail.none;authpriv.none;cron.none                /var/log/messages
 +   # The authpriv file has restricted access.
 +   authpriv.*                                              /var/log/secure
 +   # Log all the mail messages in one place.
 +   mail.*                                                  -/var/log/maillog
 +   # Log cron stuff
 +   cron.*                                                  /var/log/cron
 +   # Everybody gets emergency messages
 +   *.emerg                                                 *
 +   # Save news errors of level crit and higher in a special file.
 +   uucp,news.crit                                          /var/log/spooler
 +   # Save boot messages also to boot.log
 +   local7.*                                                /var/log/boot.log
 +
 +
 +/etc/sysconfig/rsyslog à ejemplo para este fichero:
 +
 +   # Options to syslogd
 +   # -m 0 disables 'MARK' messages.
 +   # -rPortNumber Enables logging from remote machines. The listener will      
 +   listen    
 +   to the specified port.
 +   # -x disables DNS lookups on messages recieved with -r
 +   # See syslogd(8) for more details
 +   SYSLOGD_OPTIONS="-r -t514 -m 0"
 +   # Options to klogd
 +   # -2 prints all kernel oops messages twice; once for klogd to decode, and
 +   #    once for processing with 'ksymoops'
 +   # -x disables all klogd processing of oops messages entirely
 +   # See klogd(8) for more details
 +   KLOGD_OPTIONS="-x"
 +
 +El CentOS trae por defecto el syslog instalado para generar los log’s, así que antes de arrancar el rsyslog tenemos que parar y deshabilitar el syslog para que no de problemas.
 +
 +   # service syslog stop
 +   # chkconfig syslog off
 +
 +   # service rsyslog start
 +   # chkconfig rsyslog on
 +
 +También arracamos el apache.
 +
 +   # service httpd start
 +   # chkconfig httpd on
 +
 +
 +Ya tenemos el rsyslog funcionando y grabando los log’s en el mysql. 
 +
 +Lo siguiente será instalar el phplogcon, un frontal web que nos permitirá tener acceso de una forma cómoda a esos log’s. Vamos a instalar la version 2.4.0 ques es la última estable a fecha de hoy ( enero 2009)
 +
 +
 +Lo descargamos en el directorio tmp.
 +
 +   # cd /tmp
 +   # wget http://www.phplogcon.org/Downloads-req-getit-lid-36.phtml
 +
 +Lo descomprimimos:
 +
 +   # tar xvzf phplogcon-2.4.0.tar.gz
 +
 +Creamos una carpeta dentro de var/www para alojarlo y lo copiamos alli:
 +
 +   # mkdir /var/www/phplogcon
 +   # cp -R /tmp/phplogcon-2.4.0/ /var/www/phplogcon 
 +
 +
 +Nos situamos ahora en la carpeta /var/www/phplogcon/contrib y copiamos el configure.sh a la carpeta /var/www/phplogcon/src y lo ejecutamos para que nos cree el config.php que nos hace falta.
 +
 +   # cd /var/phplogcon/contrib
 +   # copy configure.sh /var/www/phplogcon/src
 +   # ./configure.sh
 +
 +Reiniciamos el apache.
 +
 +   # service httpd restart
 +
 +
 +Ahora nos vamos a un navegador e introducimos la siguiente dirección  -> http://nuestra_ip/phplogcon/src
 +
 +Esto lanzará un asistente que nos guiará en la configuración del phplogcon.
 +
 +==== FAQ ====
 +A vece son tantos lo eventos que la base de datos acaba llenando el disco. Para liberar espacio necesitamos borrar algunos logs para llo ejecutamos lo siguiente;
 +
 +<code>
 +#mysql -u usuario -p
 +#mysql> use Syslog;
 +#mysql> DELETE FROM SystemEvents WHERE ReceivedAt < date_add(current_date, interval -30 day)
 +#mysql> optimize table SystemEvents; 
 +#mysql> exit
 +</code>