O servidor Graylog é um pacote de software de gerenciamento de log de código aberto pronto para empresas. Ele coleta logs de várias fontes e os analisa para descobrir e resolver problemas. O servidor Greylog é basicamente a combinação do Elasticsearch, MongoDB e Graylog. O Elasticsearch é um aplicativo de código aberto muito popular para armazenar texto e fornecer recursos de pesquisa muito poderosos. O MongoDB é um aplicativo de código aberto para armazenar dados no formato NoSQL. O Graylog coleta logs de várias fontes e fornece um painel baseado na Web para gerenciar e pesquisar através dos logs. Graylog também fornece uma API REST para configuração e dados. Ele fornece um painel configurável que pode ser usado para visualizar métricas e observar tendências usando estatísticas de campo, valores rápidos e gráficos de um local central.
Neste tutorial, você aprenderá a instalar o Graylog Server no Ubuntu 16.04. Este guia foi escrito para o Graylog Server 2.3, mas também pode funcionar em versões mais recentes. Você também aprenderá a instalar Java, Elasticsearch e MongoDB. Também protegeremos a instância do MongoDB e configuraremos um proxy reverso Nginx para o painel e a API baseados na Web.
Pré-requisitos
	- Uma instância do servidor Vultr Ubuntu 16.04 com pelo menos 4 GB de RAM.
- Um usuário sudo .
Neste tutorial, usaremos 192.0.2.1como o endereço IP público do servidor e graylog.example.comcomo o nome de domínio apontado para o servidor. Substitua todas as ocorrências 192.0.2.1pelo seu endereço IP público do Vultr e graylog.example.compelo seu nome de domínio real.
Atualize seu sistema base usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema for atualizado, continue com a instalação do Java.
Instale Java
O Elasticsearch requer que o Java 8 seja executado. Ele suporta Oracle Java e OpenJDK, mas é sempre recomendável usar o Oracle Java sempre que possível. Adicione o repositório Oracle Java PPA:
sudo add-apt-repository ppa:webupd8team/java
Atualize os metadados do repositório APT:
sudo apt update
Instale a versão estável mais recente do Java 8, execute:
sudo apt -y install oracle-java8-installer
Aceite o contrato de licença quando solicitado. Se o Java foi instalado com sucesso, você deve poder verificar sua versão.
java -version
Você verá a seguinte saída.
user@vultr:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Defina os JAVA_HOMEe outros padrões instalando oracle-java8-set-default. Corre:
sudo apt -y install oracle-java8-set-default
Execute o echo $JAVA_HOMEcomando para verificar se a variável de ambiente está configurada ou não.
user@vultr:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-oracle
Se você não obtiver a saída mostrada acima, pode ser necessário efetuar logout e logon no shell novamente.
Instale o Elasticsearch
O Elasticsearch é um aplicativo distribuído, em tempo real, escalável e altamente disponível, usado para armazenar os logs e pesquisar por eles. Ele armazena os dados em índices e a pesquisa através dos dados é muito rápida. Ele fornece vários conjuntos de APIs, como HTTP RESTful API e API Java nativa. O Elasticsearch pode ser instalado diretamente através do repositório Elasticsearch. Adicione o repositório do Elasticsearch APT:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Importe a chave PGP usada para assinar os pacotes. Isso garantirá a integridade dos pacotes.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Atualize os metadados do repositório APT.
sudo apt update
Instale o pacote Elasticsearch:
sudo apt -y install elasticsearch
Após a instalação do pacote, abra o arquivo de configuração padrão do Elasticsearch.
sudo nano /etc/elasticsearch/elasticsearch.yml
Encontre a linha a seguir, remova o comentário e altere o valor de my-applicationpara graylog.
cluster.name: graylog
Você pode iniciar o Elasticsearch e permitir que ele inicie automaticamente no momento da inicialização:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
O Elasticsearch agora está em execução na porta 9200. Verifique se está funcionando corretamente executando:
curl -XGET 'localhost:9200/?pretty'
Você deve ver uma saída semelhante à seguinte.
[user@vultr ~]$ curl -XGET 'localhost:9200/?pretty'
{
  "name" : "-kYzFA9",
  "cluster_name" : "graylog",
  "cluster_uuid" : "T3JQKehzSqmLThlVkEKPKg",
  "version" : {
    "number" : "5.5.1",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}
Se você encontrar erros, aguarde alguns segundos e tente novamente, pois o Elasticsearch leva algum tempo para concluir seu processo de inicialização. O Elasticsearch agora está instalado e funcionando corretamente.
Instale o MongoDB
O MongoDB é um servidor de banco de dados NoSQL gratuito e de código aberto. Diferentemente do banco de dados tradicional que usa tabelas para organizar seus dados, o MongoDB é orientado a documentos e usa documentos semelhantes a JSON sem esquemas. O Graylog usa o MongoDB para armazenar sua configuração e meta informações. Pode ser instalado diretamente através do repositório MongoDB. Importe a chave GPG usada para assinar o pacote. Isso garantirá a autenticidade dos pacotes.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Agora crie o arquivo de repositório:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Atualize os metadados do repositório APT.
sudo apt update
Instale o pacote MongoDB:
sudo apt -y install mongodb-org
Inicie o servidor MongoDB e ative-o automaticamente.
sudo systemctl start mongod
sudo systemctl enable mongod
Instale o servidor Graylog
Faça o download e o repositório mais recente para o servidor Graylog.
wget https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.deb
sudo dpkg -i graylog-2.3-repository_latest.deb
sudo apt update
Instale o pacote Graylog:
sudo apt install graylog-server
O servidor Graylog está agora instalado no seu servidor. Antes de iniciá-lo, você precisará configurar algumas coisas.
Instale o pwgenutilitário para gerar senhas fortes.
sudo apt -y install pwgen
Agora gere um segredo de senha forte.
pwgen -N 1 -s 96
Você produzirá semelhante a:
[user@vultr ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
Além disso, gere um hash de 256 bits para a senha do adminusuário root :
echo -n StrongPassword | sha256sum
Substitua StrongPasswordpela senha que você deseja definir para o adminusuário. Você verá:
[user@vultr ~]$ echo -n StrongPassword | sha256sum
05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223  -
Abra o arquivo de configuração Graylog:
sudo nano /etc/graylog/server/server.conf
Encontre password_secret =, copie e cole a senha gerada por meio do pwgencomando Localize root_password_sha2 =, copie e cole o hash SHA convertido de 256 bits da sua senha de administrador. Encontre #root_email =, descomente e forneça seu endereço de e-mail. Remova o comentário e defina seu fuso horário em root_timezone. Por exemplo:
password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = [email protected]
root_timezone = Asia/Kolkata
Ative a interface Graylog baseada na Web, descomentando #web_enable = falsee configurando seu valor para true. Remova o comentário e altere as seguintes linhas, conforme especificado.
rest_listen_uri = http://0.0.0.0:9000/api/
rest_transport_uri = http://192.0.2.1:9000/api/
web_enable = true
web_listen_uri = http://0.0.0.0:9000/
Salve o arquivo e saia do seu editor de texto.
Reinicie e ative o serviço Graylog executando:
sudo systemctl restart graylog-server
sudo systemctl enable graylog-server
Por padrão, a interface da web Graylog escuta localhostna porta 9000 e a API escuta na porta 9000 com URL /api. Neste tutorial, usaremos o Nginx como proxy reverso para que o aplicativo possa ser acessado via porta HTTP padrão. Instale o servidor da web Nginx executando:
sudo apt -y install nginx
Abra o arquivo host virtual padrão, digitando.
sudo nano /etc/nginx/sites-available/default
Substitua o conteúdo existente pelas seguintes linhas:
server
{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name 192.0.2.1 graylog.example.com;
    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/api;
      proxy_pass       http://127.0.0.1:9000;
    }
}
Inicie o Nginx e permita que ele inicie automaticamente no momento da inicialização:
sudo systemctl restart nginx
sudo systemctl enable nginx
Conclusão
A instalação e a configuração básica do servidor Graylog estão concluídas. Agora você pode acessar o servidor Graylog no http://192.0.2.1ou http://graylog.example.comse você tiver o DNS configurado. Entre usando o nome de usuário admine a versão em texto sem formatação da senha que você definiu root_password_sha2anteriormente.
Parabéns - você tem um servidor Graylog totalmente funcional instalado no seu servidor Ubuntu 16.04.