syslog-ng.confのテンプレ

時代はrsyslogという噂もありますが、僕はsyslog-ngで当分がんばっていくことにしました。
で、最初、syslogからngに移行したときに一番厄介だと思ったのが、confの書式。
色々できるのはいいんだけど、綺麗に書かないと可読性がすぐに悪くなるんだよね。漫然と設定を足していくと、もう書いた人(それすらあやしい)しか理解できないカオスに。。syslog.confからコンバートしてくれるツールがソースに同梱されているけど、あれなんか最悪だ。
そんな訳で、なんか綺麗に書かれたテンプレ的なものはないかな〜?とググルさんに聞いてみたんですが、意外と落ちて無い。
しょうがないから僕が書きました。ディストリによって微修正が必要かもだけど、Linuxなら大抵これでいけるでしょ。これだけ最初に書いておけば、後はちょろいもんです。syslogからの移行らくらく〜♪

## global otptions ######################
options {
    sync (5);
    time_reopen (10);
    log_fifo_size (1000);
    long_hostnames (off);
    stats_freq(21600);
    use_dns (yes);
    use_fqdn (no);
    keep_hostname (yes);
    create_dirs (yes);
    dir_perm(0755);
    perm(0600);
};

## sources ################################
source local {
    file ("/proc/kmsg" log_prefix("kernel: "));
    unix-stream("/dev/log");
    internal();
};

#source net {
#    udp( ip(0.0.0.0) port(514) );
#    tcp( ip(0.0.0.0) port(514) max-connections(100) );
#};

## filters ################################

### facility
filter f_auth     { facility(auth);     };
filter f_authpriv { facility(authpriv); };
filter f_cron     { facility(cron);     };
filter f_daemon   { facility(daemon);   };
filter f_ftp      { facility(ftp);      };
filter f_kern     { facility(kern);     };
filter f_lpr      { facility(lpr);      };
filter f_mail     { facility(mail);     };
filter f_news     { facility(news);     };
filter f_syslog   { facility(syslog);   };
filter f_user     { facility(user);     };
filter f_uucp     { facility(uucp);     };
filter f_local0   { facility(local0);   };
filter f_local1   { facility(local1);   };
filter f_local2   { facility(local2);   };
filter f_local3   { facility(local3);   };
filter f_local4   { facility(local4);   };
filter f_local5   { facility(local5);   };
filter f_local6   { facility(local6);   };
filter f_local7   { facility(local7);   };

### level
filter f_emerg    { level(emerg);         };
filter f_alert    { level(alert.. emerg); };
filter f_crit     { level(crit .. emerg); };
filter f_err      { level(err  .. emerg); };
filter f_warn     { level(warn .. emerg); };
filter f_notice   { level(notice..emerg); };
filter f_info     { level(info .. emerg); };
filter f_debug    { level(debug.. emerg); };


## destinations ###########################
destination d_messages { file("/var/log/messages"); };
destination d_secure   { file("/var/log/secure");   };
destination d_mail     { file("/var/log/maillog");  };
destination d_cron     { file("/var/log/cron");     };
destination d_spooler  { file("/var/log/spooler");  };
destination d_boot     { file("/var/log/boot.log"); };
destination d_tty      { usertty("*"); };

## logs ###################################
#log {
#    source(local);
#    filter(f_hogefacility); filter(f_debug);
#    destination(d_foo);
#};