Centralização de Logs com Syslog-ng

1. Centralização de Logs com Syslog-ng

Mauricio
mzibit

(usa Gentoo)

Enviado em 17/04/2013 - 09:17h

Bom dia gurizada,

Estou com o seguinte problema:

Preciso centralizar os logs de diversos servidores como zimbra, squid, proxy reverso, apache, etc.

Tentei fazer isso com o rsyslog + mysql + loganalyzer, consegui mas abortamos pois o log cresceu muito (8gb por dia aprox.) e começou a ficar inviável pela demora nas consultas, etc.

Então decidimos jogar esses logs em um servidor e separá-los por pasta, então parei de usar o rsyslog e comecei a usar o syslog-ng no servidor pois pelo que pesquisei é melhor para separar os serviços.

Mas o problema é que não consigo separar os logs do zimbra (/opt/zimbra/log/*) e /var/log/zimbra.log e os demais importantes no sistema, ja que o syslog-ng cria as pastas por facility (pelo menos é a única forma que descobri de separar).

Alguém tem alguma idéia de como posso fazer para organizar?

Obrigado desde já.

Segue meu syslog-ng.conf abaixo:

options {
sync (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
create_dirs (no);
###Configuracoes adicionais
log_fifo_size (2048);
group(adm);
create_dirs (yes);
perm (0640);
dir_perm(0755);
use_dns (yes);
use_fqdn (yes);
keep_hostname (yes);
};

source s_sys {
file ("/proc/kmsg" log_prefix("kernel: "));
unix-stream ("/dev/log");
internal();
# udp(ip(0.0.0.0) port(514));
};

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" sync(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_zimbra { file("/var/log/zimbra.log"); };
destination d_optzimbra { file("/opt/zimbra/log/audit.log

destination d_mlal { usertty("*"); };


filter f_kernel { facility(kern); };
filter f_default { level(info..emerg) and
not (facility(mail)
or facility(authpriv)
or facility(cron)); };
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); };
filter f_zimbra { facility(mail); };
filter f_optzimbra { facility(auth); };

#facility(uucp) or (facility(news) and level(crit..emerg)); };


#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_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); };
log { source(s_sys); filter(f_zimbra); destination(d_zimbra); };
log { source(s_sys); filter(f_optzimbra); destination(d_optzimbra); };

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

#source s_remote {
#tcp();
#};
#destination d_clients {
#file("/var/log/centralizacao/$HOST/$FACILITY" owner("root") group("root") perm(0660) dir_perm(0770) create_dirs(yes));

source minha_rede{
unix-stream("/dev/log");
udp(
ip(0.0.0.0)
port(514)
);
};

destination servidores.dst {

file( "/var/log/centralizacao/$YEAR/$HOST/$YEAR-$MONTH/$FACILITY/${FACILITY}-${YEAR}-${MONTH}-${DAY}" create_dirs(yes) );

};

log {

source(minha_rede);

destination(servidores.dst);

};



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts