Tabela de conteúdos

Documentação Graylog2

Descrição do Serviço:

É capaz de armazenar os logs de diversos servidores de forma centralizada, possui ferramentas de busca afinadas que permitem a recuperação rápida e precisa de registros com bases em diversos critérios, como tipo de log, conteúdo, data/hora, serviço afetado. Permite a criação de gráficos específicos para cada tipo de mensagem. Se apresenta como uma excelente ferramente para auditoria de sistemas mesmo em caso de invasões por enviar registros de procedimentos executados pelo invasor imediatamente após sua execução.

Status:

Serviço em fase de implementação

Funcionalidades:

Categoria do Serviço:

Usuários beneficiados:

Analistas e Técnicos de Infraestrutura que desejam colherem informações relativas aos logs de sistemas de forma rápida e prática. Os demais servidores/sistemas serão beneficiados por terem uma solução centralizada de logs não sendo mais necessário manter logs individualmente em cada um dos sistemas.

Requisitos para utilização:

É necessário que os servidores possuam serviço de log remoto como exemplo o “rsyslog”.

Responsáveis pelo Serviço:

Thiago Feitosa

Lucas do Amaral Saboya

Valber Jones de Castro

Arquitetura:

Descrição dos Serviços que compõem a solução:

  1. MongoDB: É um banco de dados orientado a “documentos” do tipo “Não-SQL”. Trata-se de uma aplicação Open-Source. Características relevantes quanto ao seu funcionamento: Para evitar problemas com fragmentação de arquivos (e com isto obter mais performance) o MongoDB pré aloca seus arquivos de dados. O primeiro arquivo se chamará [nome do seu banco de dados].0 e terá 64 Mb de tamanho. Conforme você usa o espaço alocado, quando estiver usando metade deste arquivo, um novo chamado [nome do seu bd].1 será criado com 128 Mb. E isto prosseguirá para arquivos com 256, 512, 1024 e finalmente 2048 Mb. A partir de então todo novo arquivo possuirá 2 Gb de tamanho. Em nosso caso o banco de dados do Graylog2 encontra-se no seguinte local: \var\lib\mongodb.A versão de 32bits deve ser evitada em ambientes de produção pois não permite que o banco possua tamanho superior a 2GB.

- ElasticSearch: Elasticsearch é um poderoso motor de busca em tempo real, Open-Source que facilita a analise e exploração de dados.Possui estrutura escalável permitindo que vários nodes (nós) sejam agrupados para acelerar a indexação e recuperação de informações. Possui inteligência que favorece a alta disponibilidade, pois ele é capaz de detectar automaticamente e remover os “nós” falhos, e reorganizar-se para garantir a segurança e disponibilidade dos dados. - Graylog2-Server: Trata-se de um gerenciador de log Open-Source. Permite configurar uma série de tipos de Imputs que permite que ele receba logs de diversos tipos através de conexões UDP ou TCP nas portas que forem configuradas. Ferramenta DashBoard: Qualquer análise ou resultado de pesquisas pode ser adicionado como um widget para os dashboards. É possível criar páginas que mostram todos os dados através de gráficos e tendências importantes com um clique de acordo como o dashboard foi configurado. Estes gráficos são constantemente atualizados e dinâmicos executam em cache para economizar recursos. Podem ser criados alertas que permitem notificações em caso de condições ou eventos estabelecidos altamente configuráveis. - Graylog2-Web-Interface: É a interface de utilização do Graylog2, seu acesso é feito através da web e possui como porta padrão 9000 TCP. Em nosso caso o endreço de acesso ao sevidor é o seguinte: graylog.ifce.edu.br:9000

Procedimentos básicos de manutenção e operação:

- Ordem de inicialização dos serviços: 1º MongoDB, 2º ElasticSearch, 3º Graylog2-Server, 4ºGraylog2-Web-Interface.

- Procedimento para iniciar os serviços manualmente se necessário:

  1. # sudo service mongodb start
  2. # sudo service elasticsearch start
  3. # sudo service graylog2-server start
  4. # sudo service graylog2-web-interface start

- Procedimentos/locais para consulta de logs das aplicações:

  1. # sudo tail -f /var/log/mongodb/mongodb.log
  2. # sudo tail -f /var/log/elasticsearch/elasticsearch.log
  3. # sudo tail -f /opt/graylog2-server/log/graylog2-server.log
  4. # sudo tail -f /opt/graylog2-web-interface/logs/application.log

- Troubleshooting:

Graylog2-Web-Interface não inicia. Pode ser necessário remover o arquivo com identificador do PID do processo, para isso execute o seguinte procedimento:

Procedimento para inclusão de clientes:

É necessário verificar se os clientes possuem o rsyslog instalado (serviço de log remoto instalado). Caso o servidor não possua o rsyslog instalado poderá ser instalado da seguinte maneira:

Para que os clientes possam enviar seus logs para o Graylog2 Server é necessário incluir as duas linhas seguintes no arquivo /etc/rsyslog.conf

Após esse procedimento é necessário reiniciar o serviço do rsyslog para isso deve ser executado o seguinte comando:

Para verificar se o cliente foi incluído no servidor é necessário na interface web do Graylog2 entrar na opção Source na parte superior em Source Name deve aparecer o nome do host do cliente adicionado.

Procedimentos para criação de um novo servidor Graylog2:

Os procedimentos foram testados no seguinte sistema operacional Ubuntu 14.04.1 LTS. As versões das demais aplicações envolvidas na instalação foram as seguinte: elasticsearch ver-0.90.10, graylog2-server ver 0.20.3, graylog2-web-interface ver 0.20.3.

Instalação dos Pré Requisitos (alguns pacotes já encontrasse instalados nessa versão do Ubuntu):

apt-get -y install git curl build-essential openjdk-7-jre pwgen wget

Download do Elasticsearch, Graylog2-Server e Graylog2-Web-Interface.

Descompactando o Graylog Server e Graylog Web.

Criando o link Simbólico para o diretório.

Instalação do Elasticsearch.

Incluindo o elasticsearch para iniciar no boot.

Reiniciando o elasticsearch.

Testando conexão com o Elasticsearch

Instalação do MongoDB
# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee /etc/apt/sources.list.d/10gen.list
apt-get -qq update
apt-get -y install mongodb-10gen