>_Graylog2 – Gerência centralizada de Logs – Instalação – 1.2

images
Neste segundo tutorial será abordado a instalação dos softwares necessários para Graylog2.

Softwares:

  • Openjdk;
  • Banco de dados MongoDB;
  • Serviço de pesquisa ElasticSearch;
  • Graylog-server;
  • Graylog-web ;
  • Logstash;

O ambiente que está sendo utilizado para estudo:

1 – Máquina virtual CentOS 7.1 x64 configurada no VirtualBox.
1024 Mb de memoria RAM – 2 VCPU – 1 IP 10.1.10.57.
Selinux: permissive, Firewall: desabilitado, hostname: graylog2.

Passo 1 – Atualização do servidor.

# yum update -y

Passo 2 – Ajustes na resolução do nome.

# vim /etc/hosts
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.10.57      graylog2

Passo 3 – Ajustando o Selinux como permissive.

# cat /etc/selinux/config 
SELINUX=permissive
SELINUXTYPE=targeted 

Passo 4 – Instalação do Graylog2 Server e Graylog Web.

# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.2-repository-el7_latest.rpm
# yum install graylog-server graylog-web -y
# systemctl enable graylog-server
# systemctl enable graylog-web

Passo 5 – Instalação do Java OpenJDK.

# yum install java-1.8.0-openjdk -y

Passo 6 – Após a instalação do Java, aplique novamente um update no servidor.

# yum update -y

Passo 6 – Verificando a versão do Java.

# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

Passo 7 – Instalação do Banco de Dados NoSQL – MongoDB.

# cd /etc/yum.repos.d/
# vim mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
# yum install mongodb-org -y
# chkconfig mongod on

Passo 8 – Configuração básica do MongoDB.

# vim /etc/mongod.conf

Ajustando o arquivo de configuração do MongoDB para habilitar autenticação de usuários.

 29 #auth=true
Para
 29 auth=true

Passo 9 – Iniciando o MongoDB.

# systemctl start mongod.

Acessando o MongoDB.

# mongo

Passo 9 – Criando a database graylog, criando o usuário grayloguser definindo a senha do usuário como graylogsenha.

> use graylog
switched to db graylog
> db.addUser('grayloguser','graylogsenha')
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "grayloguser", "roles" : [ "dbOwner" ] }
>  db.auth('grayloguser','graylogsenha')
1
>  db.getUsers()
[
	{
		"_id" : "graylog.grayloguser",
		"user" : "grayloguser",
		"db" : "graylog",
		"roles" : [
			{
				"role" : "dbOwner",
				"db" : "graylog"
			}
		]
	}
]
>exit

Passo 10 – Validando o acesso a base de dados graylog.

# mongo --port 27017 -u grayloguser -p graylogsenha --authenticationDatabase graylog
MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
> use graylog
switched to db graylog
> db.getUsers()
[
	{
		"_id" : "graylog.grayloguser",
		"user" : "grayloguser",
		"db" : "graylog",
		"roles" : [
			{
				"role" : "dbOwner",
				"db" : "graylog"
			}
		]
	}
]
> exit

Passo 11 – Instalação do ElasticSearch.

# cd /etc/yum.repo.d/
# vim elasticsearch.repo
[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
# yum install elasticsearch -y
# systemctl daemon-reload
# systemctl enable elasticsearch.service
ln -s '/usr/lib/systemd/system/elasticsearch.service' '/etc/systemd/system/multi-user.target.wants/elasticsearch.service'

Passo 12 – Verificando se houve o ajuste automático do Virtual Memory no arquivo sysctl.conf. O local do arquivo se encontra no /usr/lib/sysct.d. Caso não possua este arquivo, basta criá-lo manualmente.

# cat /usr/lib/sysctl.d/elasticsearch.conf 
vm.max_map_count=262144

Ajustando o tamanho do Virtual Memory através do comando sysctl.

# sysctl -w vm.max_map_count=262144

Obs: Caso precise obter o máximo de performance do Elastisearch, recomendo que leia a documentação abaixo:
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html

Passo 13 – Ajustando o arquivo de configuração do ElasticSearch.

# vim /etc/elasticsearch/elasticsearch.yml
# Name.
 32 #cluster.name: elasticsearch
PARA
32 cluster.name: graylog2

# Lock the memory to disable swapping.
184 #bootstrap.mlockall: true
PARA
184 bootstrap.mlockall: true

#  Bind Host
203 #network.bind_host: 192.168.0.1
PARA
203 network.bind_host: graylog2

# Disable multicast discovery.
321 #discovery.zen.ping.multicast.enabled: false
PARA
321 discovery.zen.ping.multicast.enabled: false

# Set the list of hosts to look for unicast discovery.
326 #discovery.zen.ping.unicast.hosts: ["host1", "host2:port"]
PARA
326 #discovery.zen.ping.unicast.hosts: ["graylog2"]

Passo 14 – Iniciando o ElasticSearch.
Obs: Possa ser que leve um pouco para iniciar o ElasticSearch, fique tranquilo.

# systemctl start elasticsearch.service

Passo 15 – Realizando um GET na portal 9200.
O ElasticSearch armazena os dados em forma de documentos. Ele disponibiliza os documentos no formato JSON, que é suportado pela maioria das linguagens de programação.

# curl -XGET 'http://graylog2:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "graylog2",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0
}

Passo 16 – Gerando as senhas para o Graylog2 Server e Web.
Como não possuo o pacote pwgen no meu CentOS 7.1, acabei gerando as senhas no meu desktop local.

evandro@vandocouto:~$ pwgen -N 1 -s 96
TxLguExNjEhpvq5UXXZrN3fuJP9f9uMRXTvHwMnfeyinguB83MSzOYWWvRIjiIIH4PujzQqHgSn9I2TqUslLmAaTFCNqA5qx
evandro@vandocouto:~$ echo -n senha | shasum -a 256
b7e94be513e96e8c45cd23d162275e5a12ebde9100a425c4ebcdd7fa4dcd897c  -

Passo 17 – Ajustando o arquivo do Graylog Server – server.conf.

# cp /etc/graylog/server/server.conf /etc/graylog/server/server.conf-old
# vim /etc/graylog/server/server.conf
# Generate one by using for example: pwgen -N 1 -s 96
 11 password_secret =
PARA
 11 password_secret = TxLguExNjEhpvq5UXXZrN3fuJP9f9uMRXTvHwMnfeyinguB83MSzOYWWvRIjiIIH4PujzQqHgSn9I2TqUslLmAaTFCNqA5qx

# Create one by using for example: echo -n yourpassword | shasum -a 256
 22 root_password_sha2 =
PARA
 22 root_password_sha2 = b7e94be513e96e8c45cd23d162275e5a12ebde9100a425c4ebcdd7fa4dcd897c

 37 rest_listen_uri = http://127.0.0.1:12900/
PARA
 37 rest_listen_uri = http://graylog2:12900/

# Número maximo de docuementos para indexação (20 milhões).
100 elasticsearch_max_docs_per_index = 20000000

# 20 indices no total para documentos.
127 elasticsearch_max_number_of_indices = 20

#   Após o tempo de retenção será deletados os anteriores.
133 retention_strategy = delete

136 elasticsearch_shards = 4
PARA
# número de replicas do elasticsearch.
136 elasticsearch_shards = 1

153 #elasticsearch_cluster_name = graylog2
PARA
153 elasticsearch_cluster_name = graylog2

156 #elasticsearch_node_name = graylog2-server
PARA
156 elasticsearch_node_name = graylog2-server

163 #elasticsearch_transport_tcp_port = 9350
PARA
163 elasticsearch_transport_tcp_port = 9350

168 #elasticsearch_discovery_zen_ping_multicast_enabled = false
PARA
168 elasticsearch_discovery_zen_ping_multicast_enabled = false

169 #elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
PARA
169 elasticsearch_discovery_zen_ping_unicast_hosts = graylog2:9300

313 mongodb_uri = mongodb://localhost/graylog2
PARA

313 #mongodb_uri = mongodb://localhost/graylog2
# adicione a conexão com o MongoDB.
# conexão com o banco
mongodb_useauth         = true
mongodb_host            = 127.0.0.1
mongodb_user            = grayloguser
mongodb_password        = graylogsenha
mongodb_database        = graylog
mongodb_port            = 27017
mongodb_max_connections = 100

Passo 18 – Ajustando o arquivo de configuração do  Graylog2 Web – web.conf.

# cd /etc/graylog/web/
# vim web.conf
  2 graylog2-server.uris=""
PARA
2 graylog2-server.uris="http://graylog2:12900/"
"
 12 application.secret=""
PARA
# Mesma senha utiliza no arquivo server.conf
 12 application.secret="TxLguExNjEhpvq5UXXZrN3fuJP9f9uMRXTvHwMnfeyinguB83MSzOYWWvRIjiIIH4PujzQqHgSn9I2TqUslLmAaTFCNqA5qx"

Passo 19 – Instalando e configurando o Logstash.

# vim /etc/yum.repos.d/logstash.repo
[logstash-1.5]
name=logstash repository for 1.5.x packages
baseurl=http://packages.elasticsearch.org/logstash/1.5/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
# yum install logstash -y
# chkconfig logstash on

Passo 20 – Iniciando todos os serviços.

# systemctl start graylog-server
# systemctl start graylog-web
# systemctl start logstash

Passo 21 – Testando o Logstash.
Obs: Para testa-lo, basta executar o comando abaixo no terminal e em seguida digitar uma mensagem para que ele retorne o valor do evento.

# /opt/logstash/bin/logstash -e 'input { stdin {} } output { stdout {} }'
Logstash startup completed
testando o logstash
2015-10-23T19:21:58.427Z graylog2 testando o logstash

Passo 22 – Verificando se o Graylog2 Server foi iniciado com sucesso.
Obs: Para verificar, basta ler o log server.log localizado em /var/log/graylog-server. Se tudo correu bem até aqui, será informado que o serviço está UP.

# tail -f /var/log/graylog-server/server.log
2015-10-23T16:55:03.022-03:00 INFO  [ServerBootstrap] Graylog server up and running.

Passo 23 – Acessando o Graylog2 Web.
http://IP:9000
User: admin
Pass: senha

graylog-1

2

graylog-2

Fontes:
https://www.graylog.org/
www.softwarelivre.gov.br/
https://www.elastic.co/

>_Graylog2 – Gerência centralizada de Logs – Instalação – 1.2
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: