Syslog-NG példa konfiguráció (parser, filter)

Egy példa Syslog-NG konfigurációval szolgálok, ami arra hivatott, hogy a több proxy szervertől megkapott access logokat ip cím tartományaként külön könyvtárba bontsa. Ehhez a logokat fel kell dolgozni sorról sorra. Ehhez parser-t és filtert használtam.

Íme a syslog-ng konfigráció

cat /etc/syslog-ng/syslog-ng.conf
@version: 3.1
options {
    create_dirs(yes);
    long_hostnames(off);
    flush_lines(0);
    use_dns(no);
    use_fqdn(no);
    keep_hostname(yes);
    keep_timestamp(yes);
    owner("root");
    group("log");
    perm(0640);
    stats_freq(0);
        bad_hostname("^gconfd$");
        dns_cache (yes);
        dns_cache_size (1000);
        dns_cache_expire (43200);
};
source s_localhost {
    unix-dgram("/dev/log");
    internal();
        file("/proc/kmsg" program_override("kernel"));
};
source s_network {
    tcp(max-connections(5000));
        udp();
};
parser squid_IP{
    csv-parser(columns("SQUID.UNIXTIME","SQUID.SIZE","SQUID.REMOTEIP","SQUID.SQUIDCMD",
"SQUID.GETPOST","SQUID.URL","SQUID.LINE","SQUID.DESTINATION","SQUID.DATATYPE")

    flags(escape-double-char,strip-whitespace)
    delimiters(" ")
    quote-pairs('""[]'));
};
parser squid_NETWORK{
    csv-parser(
    columns("SQUID.FIRSTOCTET","SQUID.SECONDOCTET","SQUID.THIRDOCTET","SQUID.FOURTHOCTET")
    delimiters(".")
    flags(escape-none)
    template("${SQUID.REMOTEIP}")
    );
};
filter proxy_servers {
    host ("10.5.1.1") or 
    host ("10.5.1.2") or
    host ("10.5.1.3") or
    host ("10.5.1.4") or
    host ("10.5.1.5");
};
filter squidlog{
    message ("[0-9]{10}\.[0-9]{3}") and not facility ("kern");
};
filter not_squidlog{
    not message ("[0-9]{10}\.[0-9]{3}");
};
destination localhost {
           file ("/var/log/syslog-ng/localhost/syslog");
};
destination d_file {
    file("/var/log/syslog-ng/squid-${SQUID.FIRSTOCTET:-0}.${SQUID.SECONDOCTET:-0}.0.0/access.log");
};
destination default {file ("/var/log/syslog-ng/$HOST.log");};
log {
    source(s_localhost);
    destination(localhost);
};
log {
    source(s_network);
    filter(proxy_servers);
    filter(squidlog);
    log {
    parser(squid_IP);
    parser(squid_NETWORK);
    destination (d_file);
    };
};
log {
    source(s_network);
    filter( not_squidlog);
    destination ( default );
};

A téma folytatódni fog hamarosan az alábbiakkal:

  • Squid syslogba való logolása
  • Távoli naplózás beállítása
  • Squid log feldolgozás, megjelenítés


Kulcsszavak: Linux, Syslog-NG, log, elemzés

Új hozzászólás: