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
-
Desinstalar o SELINUX
- vim /etc/sysconfig/selinux
- Na linha onde esta o “SELINUX=enforcing”, alterar para:
- SELINUX=disabled
- Reiniciar a máquina.
- Validar com o comando: sestatus
-
Instalar o repositório EPEL;
- wget http://dl.fedoraproject.org/pub/epel/6Server/i386/epel-release-6-8.noarch.rpm
- Instalar com: rpm -Uvh /root/epel-release-6-8.noarch.rpm
- Validar com: yum repolist
- Instalar o pacote wget;
- Instalar o pacote logrotate;
Instalando
-
Iremos instalar 2 pacotes:
- syslog-ng;
- syslog-ng-libdbi;
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
- service syslog-ng start
- 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_
#——- 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.