Difference between revisions of "Syslog-ng"

From PostgreSQL_wiki
Jump to: navigation, search
(syslog-ng.conf)
(mysql aansturing)
Line 67: Line 67:
 
};.
 
};.
 
</pre>
 
</pre>
=== mysql aansturing ===
+
=== mysql pipe ===
 
De loggegevens gaan via het pipe mechanisme naar de mysql daemon. Het script syslog2mysql.sh verzorgt het doorsturen van loggegevens via de pipe naar mysql.
 
De loggegevens gaan via het pipe mechanisme naar de mysql daemon. Het script syslog2mysql.sh verzorgt het doorsturen van loggegevens via de pipe naar mysql.
 
<pre>
 
<pre>

Revision as of 22:53, 5 February 2010

Syslog Next Generation

Syslog-ng heeft uitgebreide mogelijkheden om systemen te beheren op basis van een centrale logging. Het is mogelijk om op basis van events signaleringen te doen. php-syslog-ng biedt een webinterface voor de syslog-ng server. De configuratie is gecompliceerd en luistert nauw, het duurt even voordat de zaak loopt.

OVerzicht van de opzet van de configuratie

Op de centrale server draaien:

  • syslog-ng
  • mysql
  • php-syslog-ng

Algemene installatie

Installeer de syslog-ng applicatie. Het systeem verwijdert de reeds aanwezige logging daemon, syslog of rsyslog.

# apt-get update && apt-get install syslog-ng

Server configuratie

De centrale server verzamelt loggegevens over vpn van aangesloten machines. De voorlopige instelling is vanaf log-level "error".

syslog-ng.conf

De syslog configuratie van de server bestaat uit:

  • options
  • source, met daarin het statement voor luisteren op protocol udp poort 514
  • destination, met de mysql koppeling voor de webinterface syslog-ng
  • het filter voor doorlaten van logmeldingen vanaf niveau "error"
  • log, legt de relatie tussen source en destionation via filer
options {
	chain_hostnames(0);
        time_reopen(10);
        time_reap(360);
        log_fifo_size(2048);
        create_dirs(yes);
        group(adm);
        perm(0640);
        dir_perm(0755);
        use_fqdn(yes);.
        use_dns(yes);.
        dns_cache(yes);.
        keep_hostname(yes);
	stats_freq(0);
	bad_hostname("^gconfd$");
};

source s_all {
#        unix-dgram("/var/run/log");
#        unix-dgram("/var/run/logpriv" perm(0600));
        internal();
        unix-stream("/dev/log");
        udp( ip(10.20.31.34) port(514));
#                ip(127.0.0.1)
#                port(514)
#        );
        tcp( ip(10.20.31.34) port(5140) keep-alive(yes));
#                ip(127.0.0.1)
#                port(5140) keep-alive(yes));
};

destination d_mysql {
    pipe("/var/log/mysql.pipe"
    template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg)
     VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC','$PROGRAM', '$MSG' ); \n")
    template-escape(yes) );
};

filter f_at_least_err { level(err..emerg); };

#	Log-level vanaf error is voor productie interessant

log {
   source(s_all);
   filter(f_at_least_err);
   destination(d_mysql);
};.

mysql pipe

De loggegevens gaan via het pipe mechanisme naar de mysql daemon. Het script syslog2mysql.sh verzorgt het doorsturen van loggegevens via de pipe naar mysql.

#!/bin/bash
/bin/rm /var/log/mysql.pipe
/usr/bin/mkfifo /var/log/mysql.pipe
#/usr/bin/mysql -usyslogfeeder -p5y5l09 tlog </var/log/mysql.pipe>/dev/null
if [ -e /var/log/mysql.pipe ] ; then
    while [ -e /var/log/mysql.pipe ]
    do
        /usr/bin/mysql -usyslogfeeder -p<password> tlog </var/log/mysql.pipe>/dev/null
    done
else
    /usr/bin/mkfifo /var/log/mysql.pipe
fi

php-syslog-ng

Client configuratie

syslog-ng client

De configuratie is betrekkelijk eenvoudig. De source is /dev/log, logging met een niveau vanaf error gaat ook naar syslog-ng.uwork.nl.

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

destination loghost {
        udp("syslog-ng.uwork.nl");
};

filter f_at_least_err { level(err..emerg); };

#	Het log statement knoopt de source en de destination via het filter aan elkaar.

log { source(s_all) ; filter(f_at_least_err) ; destination(loghost) ; };

rsyslog client

syslog


Terug naar: Uwork Support Infrastructuur