Configurando o syslog-ng – cliente/servidor


Comandos intermediários do GNU/Linux

Servidor de Log com syslog-ng
Editar o arquivo /etc/syslog-ng/syslog-ng.conf e acrescentar no final do arquivo o seguinte:



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

Neste caso, os logs serão divididos por HOST e também pela facility do log, se é autenticação, sistema, etc…
Para finalizar foi preciso editar o arquivo /etc/sysconfig/syslog e alterar o parametro SYSLOGD_PARAMS e deixa-lo como está abaixo:

SYSLOGD_PARAMS=”-r -m0″

Criei uma entrada no /etc/logrotate.d/syslog-ng com o conteúdo abaixo para que seja incluido na rotação de logs do sistema



/var/log/servers/logfile {
compress
dateext
maxage 365
rotate 200
size +4096k
create 640 root root
postrotate
/etc/init.d/syslog reload
endscript
}

Feito isso, reiniciei o serviço do syslog-ng:

# /etc/init.d/syslog stop
# /etc/init.d/syslog start

Após toda a configuração feita no servidor, irei configurar o cliente para enviar os logs para o servidor de Log.
Para clientes que utilizam o syslog-ng, o código abaixo faz com que tudo seja enviado ao servidor de log.
Editei o arquivo /etc/syslog-ng/syslog-ng.conf e deixei somente o conteúdo abaixo:

#sample syslog-ng.conf for a remote client
source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_loghost {tcp(”IP_DO_SERVIDOR_DE_LOG” port(514));};
log { source(s_local); destination(d_loghost); };

Já em clientes que utilizam o antigo syslog, foi preciso editar o arquivo /etc/syslog.conf e deixa-lo conforme abaixo:

*.* @IP_DO_SERVIDOR_DE_LOG

Reiniciei o serviço:
# /etc/init.d/syslog stop
# /etc/init.d/syslog start

E os logs passaram a ser enviados para o servidor de LOG.