Difference between revisions of "Syslog-ng"
(→syslog-ng.conf) |
(→mysql aansturing) |
||
Line 67: | Line 67: | ||
};. |
};. |
||
</pre> |
</pre> |
||
− | === 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. |
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
Contents
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