Syslog-NG to ulepszony system zbierania i zarządzania logami systemowymi. Potrafi zbierać logi z różnych źródeł, przez udp i tcp i zapisywać je w różnych formatach i miejscach (pliki, bazy danych itp.).
Poniżej zapis sesji konfiguracji i kompilacji Syslog-ng 3.1.2 (wyższe wersje nie kompilują się przy użyciu Sun Studio, opisałem to wcześniej i polecam lekturę aby wiedzieć co należy doinstalować i poprawić). Skrypt, którego użyłem do kompilacji jest w załączeniu.
soft@wega:~/syslog-ng% ./drf_syslog-ng-3.1.2_conf
cc: Sun C 5.10 SunOS_sparc 2009/06/03
usage: cc [ options] files. Use 'cc -flags' for details
MANPATH=/usr/local/share/man:/usr/local/man:/usr/share/man
PATH=/usr/local/bin:/usr/bin:/opt/SUNWspro/bin:/usr/ccs/bin
CFLAGS=-fast
CPPFLAGS=-I/usr/local/include
CXXFLAGS=-fast
LDFLAGS=-L/usr/local/lib -R/usr/local/lib
=============================================
gmake clean [y|n] ?
n
=============================================
configure [y|n] ?
y
...
syslog-ng Open Source Edition 3.1.2 configured
Compiler options:
compiler : cc -xc99=all
compiler options : -fast -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/eventlog -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
linker flags : -L/usr/local/lib -R/usr/local/lib -lpthread
prefix : /usr/local/syslog-ng-3.1.2
linking mode : dynamic
Features:
Sun STREAMS support : yes
Sun Door support : yes
Debug symbols : no
GCC profiling : no
Memtrace : no
IPV6 support : yes
spoof-source support : no
tcp-wrapper support : no
SSL support : no
SQL support : no
Linux capability support : no
PCRE support : no
Env wrapper support : no
=============================================
Przechodzimy do kompilacji:
gmake [y|n] ?
y
gmake all-recursive
gmake[1]: Entering directory `/home/soft/syslog-ng/syslog-ng-3.1.2'
Making all in src
gmake[2]: Entering directory `/home/soft/syslog-ng/syslog-ng-3.1.2/src'
source='misc.c' object='misc.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
cc -xc99=all -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/eventlog -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fast -c misc.c
source='utils.c' object='utils.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
cc -xc99=all -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/eventlog -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fast -c utils.c
source='messages.c' object='messages.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
cc -xc99=all -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/eventlog -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fast -c messages.c
"nvtable.h", line 106: warning: zero or negative subscript
"nvtable.h", line 114: warning: zero or negative subscript
"nvtable.h", line 100: warning: anonymous union declaration
"nvtable.h", line 170: zero or negative subscript
"nvtable.h", line 171: zero or negative subscript
"nvtable.h", line 167: warning: anonymous union declaration
"logmsg.h", line 135: warning: anonymous struct declaration
cc: acomp failed for messages.c
gmake[2]: *** [messages.o] Error 1
gmake[2]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2'
gmake: *** [all] Error 2
W tej wersji również pojawia się błąd, o którym wspominałem w poprzednim opisie
"nvtable.h", line 170: zero or negative subscript
"nvtable.h", line 171: zero or negative subscript
Ale już wiem gdzie poprawić, tyle tylko, że plik nvtable.h znajduje się w src.
soft@wega:~/syslog-ng% cd syslog-ng-3.1.2
soft@wega:~/syslog-ng/syslog-ng-3.1.2% cp -a src/nvtable.h src/nvtable.h.orig
soft@wega:~/syslog-ng/syslog-ng-3.1.2% vi src/nvtable.h
soft@wega:~/syslog-ng/syslog-ng-3.1.2% diff -u src/nvtable.h.orig src/nvtable.h > ../drf_syslog-ng-nvtable.h.diff
soft@wega:~/syslog-ng/syslog-ng-3.1.2% cat ../drf_syslog-ng-nvtable.h.diff
--- src/nvtable.h.orig 2009-12-01 16:59:31.000000000 +0100
+++ src/nvtable.h 2011-05-24 12:58:02.411053700 +0200
@@ -167,8 +167,8 @@
union
{
guint32 __dummy_for_alignment;
- guint16 static_entries[0];
- gchar data[0];
+ guint16 static_entries[1];
+ gchar data[1];
};
};
Kompilujemy ponownie:
gmake [y|n] ?
y
...
gmake[2]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2'
gmake[1]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2'
Compilation successful
=============================================
Skompilowało się do końca, spróbujmy testów:
Test (gmake test || gmake check) [y|n] ?
y
gmake: *** No rule to make target `test'. Stop.
Making check in src
...
===================
All 21 tests passed
===================
...
gmake check-TESTS
gmake[3]: Entering directory `/home/soft/syslog-ng/syslog-ng-3.1.2/tests/functional'
/usr/bin/env: No such file or directory
FAIL: func_test.py
==================
1 of 1 test failed
==================
gmake[3]: *** [check-TESTS] Error 1
gmake[3]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2/tests/functional'
gmake[2]: *** [check-am] Error 2
gmake[2]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2/tests/functional'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/home/soft/syslog-ng/syslog-ng-3.1.2/tests'
gmake: *** [check-recursive] Error 1
Część przechodzi, ale dla innych brakuje w systemie Pythona, którego jeszcze nie zainstalowałem, więc zainstaluję Syslog-ng bez tego.
# gmake install
Making install in src
gmake[1]: Entering directory `/home/soft/syslog-ng/syslog-ng-3.1.2/src'
...
# cd /usr/local
# ln -s syslog-ng-3.1.2 syslog-ng
# /usr/local/syslog-ng/sbin/syslog-ng -V
syslog-ng 3.1.2
Installer-Version: 3.1.2
Revision: ssh+git://bazsi@git.balabit//var/scm/git/syslog-ng/syslog-ng-ose--mainline--3.1#master#8bf13c304b6ab5fc1a372b49d55c78370efe14ca
Compile-Date: May 24 2011 13:01:52
Enable-Threads: off
Enable-Debug: off
Enable-GProf: off
Enable-Memtrace: off
Enable-Sun-STREAMS: on
Enable-Sun-Door: on
Enable-IPv6: on
Enable-Spoof-Source: off
Enable-TCP-Wrapper: off
Enable-SSL: off
Enable-SQL: off
Enable-Linux-Caps: off
Enable-Pcre: off