Por Thiago Marques
O pai ta on!!
O syslog é uma importante ferramenta para administração e análise de
qualquer ambiente de infraestrutura.
A maioria dos SO Linux já vem com o RSsyslog instalados, contudo eu
prefiro trabalhar com o Syslog-ng por uma questão familiaridade.
Neste documento mostrarei como efetuar uma configuração para instalar o
deamon syslog-ng para sistemas operacionais baseados em RHEL (RedHat,CentOS e
Fedora).
O syslog nesse caso é uma das soluções para logs que pode ser útil se sua infraestrutura for pequena, para estruturas maiores ter uma estrutura descentralizada de logs como o Elastic acaba sendo uma opção melhor.

Pré-requisitos
1. Desinstalar o SELINUX
a. vim /etc/sysconfig/selinux
b. Na linha onde esta o “SELINUX=enforcing”, alterar para:
c.
SELINUX=disabled
2. Reiniciar a máquina.
3. Validar com o comando: sestatus
4. Instalar o repositório EPEL;
a.
wget http://dl.fedoraproject.org/pub/epel/6Server/i386/epel-release-6-8.noarch.rpm
5. Instalar com: rpm -Uvh /root/epel-release-6-8.noarch.rpm
6. Validar com: yum repolist
7. Instalar o pacote wget;
8. Instalar o pacote logrotate;
Instalando
Iremos
instalar 2 pacotes:
syslog-ng;
syslog-ng-libdbi;
O
comando para instalar é:
Yum install syslog-ng syslog-ng-libdbi –y
Desabilitar o Rsyslog e habilitar o Syslog
Como o
padrão de syslog é o rsyslog teremos que desabilita-lo para habilitar o
syslog-ng, fazemos isso da seguinte forma:
chkconfig
rsyslog off
Ou
systemctl
disable rsyslog
E
depois habilitamos o syslog-ng
chkconfig
syslog-ng off
Ou
systemctl
enable syslog-ng
Por fim
iniciaremos o serviço de syslog:
service
syslog-ng start
Configurando o syslog
Abaixo
mostrarei um arquivo de configuração para o syslog.
É
importante frisar que esta configuração deve estar sempre no final do arquivo:
/etc/syslog-ng/syslog-ng.conf
#–Criamos
um source, de qual ip e qual porta o servidor vai ouvir
#—–Neste
caso o servidor vai receber syslog de qualquer IP na porta 514
source
net {
udp(ip(0.0.0.0)
port(514));
};
#–Criamos
um destination, que relata para onde iremos mandar o log.
#—–
aqui podemos colocar todos os logs em um arquivo só (não recomento)
#——
ou colocar um log para cada equipamento (AI SIM!!)
#——
Como o arquivo aceita wildcards e variáveis, iremos criar o seguinte padrão:
#——-
Mes_<numerodomes>-<ano>/<equipamento>/<dia>-<mês>-<ano>.log
#——-
Exemplo: Mes_02-2018/10.0.0.1/15-02-2017.log
#——-
Assim sera criado os arquivos automaticamente conforme os equipamentos forem
enviando os logs
destination d_cisco {
file(“/var/log/net/Mes_$MONTH-$YEAR/$HOST/$DAY-$MONTH-$YEAR.log”
create_dirs(yes) #cria os diretorios se eles nao
existirem
dir_perm(0755) #da permissao 755 no diretorio
dir_owner(root) #coloca o usuario root como
proprietario da pasta
dir_group(root)
perm(0755) #da permissao 775
nos arquivos
group(root)
owner(root)
);
};
log { source(net); destination(d_cisco);};
Criando um link simbólico para visualização web
Agora
vamos criar um link simbólico para a pasta web, cito-a:
/var/www/html/
Como
esta pasta é a padrão para web, iremos colocar os arquivos nela para faciliar a
visualização, fazemos isso com o seguinte comando:
ln –s /var/log/net /var/www/html/
Será
criado uma pasta chamada net dentro de html, depois é só acessar o web da
seguinte forma:
http://<ip_do_servidor>/net
Com isso conseguiremos acessar os logs via http, facilitando o consumo.
Novamente, essa implementação é indicada para pequenos ambientes (algo
entre 5 e 10 servidores), para ambientes maiores gerenciar os logs dessa forma
gera um trabalho desnecessário visto as aplicações disponíveis hoje.
That’s all folks!
Be Happy!!!

thiago.marques@darede.com.br
Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.