>_Graylog2 – Gerência centralizada de Logs – Inputs Logstash – Apache e Nginx – 1.5

images

Neste quarto tutorial sobre Graylog2, será configurado quatro filtros de extrema importância para o controle de log’s em aplicações Web, são eles:

/var/log/httpd/error_log
/var/log/httpd/access_log
/var/log/nginx/error.log
/var/log/nginx/access.log

Cenário do ambiente atual.

105

Ajustes necessários.

Antes de iniciar a criação dos filtros, será necessário realizar um pequeno ajuste no arquivo /etc/sysconfig/logstash.

Esta alteração será necessária para que o usuário do Logstash possa ler os arquivos de log’s, e também para que ele possa ser executado em portas menores que 1024.

Obs: Caso o Administrador de Sistema não queira realizar este ajuste, por conta da segurança, ele terá que dar então a permissão de leitura para o usuário do Logstash em todos os arquivos de log’s que queira filtrar.

Passo 1 – Alterando o usuário padrão do Logstash para o usuário root.
Obs: Após esta alteração o Logstash será iniciado/executado com o usuário root e não mais com o usuário logstash.

[root@servidor-1 conf.d]# vim /etc/sysconfig/logstash
LS_USER=logstash
PARA
LS_USER=root

Passo 2 – Criando os arquivos separadamente, contendo as regras de filtros.

# cd /etc/logstash/conf.d/
[root@servidor-1 conf.d]# vim 11-apache-erro.conf
#
input {
        file {
        type => "error-log"
        path => "/var/log/httpd/error_log"
        }
}


filter {
        if [type] == "error-log" {
                grok {
                        match => { "message" => "\[(?%{DAY:day} %{MONTH:month} %{MONTHDAY} %{TIME} %{YEAR})\] \[%{DATA:severity}\] \[pid %{NUMBER:pid}\] \[client %{IPORHOST:clientip}:%{POSINT:clientport}] %{GREEDYDATA:error_message}" }
                        add_field => {
                        "Error_log" => "Apache-Error-Log"
                        }
                }
        }
}


output {
        gelf {
                host => "10.1.10.57"
        }
}
[root@servidor-1 conf.d]# vim 10-apache-access.conf 
#
input {
        file {
        type => "access-log"
        path => "/var/log/httpd/access_log"
        }
}


filter {
        if [type] == "access-log" {
                grok {
                        match => { "message" => "%{COMBINEDAPACHELOG}" }
                        add_field => {
                        "Access_log" => "Apache-Access-Log"
                        }
                }
        }

}


output {
        gelf {
                host => "10.1.10.57"
        }
}
[root@servidor-1 conf.d]# vim 12-nginx-access.conf 
#
input {
        file {
        type => "nginx-access"
        path => "/var/log/nginx/access.log"
        }
}

filter {
        if [type] == "nginx-access" {
                grok {
                        match => { "message" => "%{COMBINEDAPACHELOG}" }
                        add_field => {
                        "Nginx-access_log" => "Nginx-Access-Log"
                        }
                }
        }

}


output {
        gelf {
                host => "10.1.10.57"
        }
}
[root@servidor-1 conf.d]# vim 13-nginx-error.conf 
#
input {
        file {
        type => "nginx-error"
        path => "/var/log/nginx/error.log"
        }
}

filter {
        if [type] == "nginx-error" {
                grok {
                        match => { "message" => "(?%{YEAR}[./]%{MONTHNUM}[./]%{MONTHDAY} %{TIME}) \[%{LOGLEVEL:severity}\] %{POSINT:pid}#%{NUMBER}: %{GREEDYDATA:errormessage} client: %{IP:client}" }
                        add_field => {
                        "Nginx-error_log" => "Nginx-Error-Log"
                        }
                }
        }

}


output {
        gelf {
                host => "10.1.10.57"
        }
}

Passo 3 – Iniciando o Logstash com a opção –verbose, caso tenha algum erro de configuração/escrita nos arquivos criados, será exibido. Muito útil para validar o ambiente.

[root@servidor-1 conf.d]# /opt/logstash/bin/logstash --verbose -f /etc/logstash/conf.d/

Passo 4 – Reiniciando o Logstash via systemctl e mantendo o serviço em um processo background.

[root@servidor-1 conf.d]# systemctl restart logstash

Passo 5 – Por fim, basta verificar no Graylog2 Web os eventos sendo criados separadamente.

System -> Inputs ->
106
Apache.
100

Nginx.
101

Fontes:
https://www.elastic.co/guide/en/logstash/current/config-examples.html
https://www.digitalocean.com/community/tutorials/adding-logstash-filters-to-improve-centralized-logging

>_Graylog2 – Gerência centralizada de Logs – Inputs Logstash – Apache e Nginx – 1.5
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: