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