@version:3.6
@include "scl.conf"

# syslog-ng configuration file.
#
# This should behave pretty much like the original syslog on RedHat. But
# it could be configured a lot smarter.
#
# See syslog-ng(8) and syslog-ng.conf(5) for more information.
#
# Note: it also sources additional configuration files (*.conf)
#       located in /etc/syslog-ng/conf.d/

###############################################
#
# options
#
options {
  time_reopen(10);
  time_reap(360);

  flush_lines(0);
#  sync(2048);
  log_fifo_size(4096);
  log_msg_size(4096);
  stats_freq(600);

  chain_hostnames(no);
  keep_hostname (yes);
  chain_hostnames(off);
  bad_hostname("^gconfd$");
  use_dns(no);
  use_fqdn(no);

  dir_perm(0750);
  perm(0640);
  owner(root);
  group(adm);
  create_dirs(yes);
};

###############################################
#
# source
#
source s_sys {
    system();
    internal();
    # udp(ip(0.0.0.0) port(514));
};

###############################################
#
# destination
#
destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog" flush_lines(10)); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_kern { file("/var/log/kern"); };
destination d_mlal { usertty("*"); };
destination d_mongodb {
  mongodb(
    servers("192.168.56.12:27017")
    database("syslog")
    collection("messages")
    value-pairs(
      scope("selected-macros" "nv-pairs" "sdata")
    )
  );
};

###############################################
#
# filter
#
filter f_kernel     { facility(kern); };
filter f_default    { level(info..emerg) and
                        not (facility(mail)
                             or facility(authpriv) 
                             or facility(cron)
                             or facility(local5)
                             or facility(local6)
                        );
                    };
filter f_auth       { facility(authpriv); };
filter f_mail       { facility(mail); };
filter f_emergency  { level(emerg); };
filter f_news       { facility(uucp) or
                        (facility(news) 
                        and level(crit..emerg)); };
filter f_boot   { facility(local7); };
filter f_cron   { facility(cron); };

###############################################
#
# outputs
#
#log { source(s_sys); filter(f_kernel); destination(d_cons); };
log { source(s_sys); filter(f_kernel); destination(d_kern); };
log { source(s_sys); filter(f_default); destination(d_mesg); };
log { source(s_sys); filter(f_default); destination(d_mongodb); };
log { source(s_sys); filter(f_auth); destination(d_auth); };
log { source(s_sys); filter(f_mail); destination(d_mail); };
log { source(s_sys); filter(f_emergency); destination(d_mlal); };
log { source(s_sys); filter(f_news); destination(d_spol); };
log { source(s_sys); filter(f_boot); destination(d_boot); };
log { source(s_sys); filter(f_cron); destination(d_cron); };


# Source additional configuration files (.conf extension only)
@include "/etc/syslog-ng/conf.d/*.conf"


# vim:ft=syslog-ng:ai:si:ts=4:sw=4:et: