Template file: syslog-ng.conf.tpl
context:
@version: 3.2
options {
long_hostnames(off);
flush_lines(0);
use_dns(no);
use_fqdn(no);
owner("root");
group("adm");
perm(0640);
stats_freq(0);
bad_hostname("^gconfd$");
};
# Record syslog to file
source recorder {
file("/proc/kmsg");
unix-dgram("/dev/log");
}
destination recorder {
file("/var/log/syslog"
owner(syslog)
group(adm)
perm(0644)
dir_perm(0755)
create_dirs(yes));
}
log {
source(recorder);
destination(recorder);
};
# Send local syslog
source sender {
file("/var/log/syslog");
};
destination sender {
{% for log_server in log_servers %} tcp({{ log_server }} port(514));
{% endfor %}
# tcp(172.16.116.240 port(514));
};
log {
source(sender);
destination(sender);
};
# Receive remote syslog
source receiver {
udp(ip(0.0.0.0) port(514));
tcp(ip(0.0.0.0) port(514));
};
destination receiver {
file("/var/log/wistor/$YEAR.$MONTH.$DAY/all"
owner(root)
group(adm)
perm(0644)
dir_perm(0755)
create_dirs(yes));
file("/var/log/wistor/$YEAR.$MONTH.$DAY/$HOST"
owner(root)
group(adm)
perm(0644)
dir_perm(0755)
create_dirs(yes));
};
log {
source(receiver);
destination(receiver);
};
Python program:
from jinja2 import Template
print Template(file("syslog-ng.conf.tpl").read()).render(log_server = [ "172.16.116.%d" % ip for ip in range(1, 11) ])
Reference: http://jinja.pocoo.org/docs/
沒有留言:
張貼留言