Instalando o Graylog via Docker

Atualizado em: 17 de fevereiro de 2024

Nesta página do Graylog tem várias informações a cerca da instalação do Graylog usando imagens Docker para Graylog, MongoDB e ElasticSearch.

Segundo este tutorial, o Graylog é executado usando um conteiner Docker, o que deixa a instalação bem simples e rapidamente você tem o serviço funcionando.

Se você não sabe o que é Docker, recomendo começar lendo os links desta página. É um longo caminho, mas vale a pena conhecer essa tecnologia.

http://blog.aeciopires.com/palestra-transportando-as-aplicacoes-entre-varios-ambientes-com-docker/
http://blog.aeciopires.com/primeiros-passos-com-docker/

Também dou curso de Docker: http://blog.aeciopires.com/curso-docker

0) Crie os diretórios abaixo para persistir os dados dos conteiners.

sudo mkdir -p /docker/graylog/mongo/data;
sudo mkdir -p /docker/graylog/elasticsearch/data;
sudo mkdir -p /docker/graylog/data/config;
cd /docker/graylog/data/config
wget https://raw.githubusercontent.com/Graylog2/graylog-docker/5.1/config/graylog.conf
wget https://raw.githubusercontent.com/Graylog2/graylog-docker/5.1/config/log4j2.xml
sudo chmod -R 777 /docker/graylog;
sudo chown -R 1100:1100 /docker/graylog/;

1) Aumente o tamanho da quantidade de arquivos que podem ser carregados na memória com o comando abaixo. Fonte: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html

sudo sysctl -w vm.max_map_count=262144;

2) Baixe as imagens Docker e execute os conteineres do MongoDB, ElasticSearch e Graylog.

docker run -d --name mongo --restart=always \
  -v /docker/graylog/mongo/data:/data/db mongo:7.0;


docker run -d --name elasticsearch \
  --restart=always \
  -p 9200:9200 \
  -e "http.host=0.0.0.0" \
  -e "discovery.type=single-node" \
  -m 1GB \
  -v /docker/graylog/elasticsearch/data:/usr/share/elasticsearch/data \
  docker.elastic.co/elasticsearch/elasticsearch:7.17.18;

docker run -d --name graylog \
 --hostname graylog-server \
 --restart=always \
 --link mongo \
 --link elasticsearch \
 -v /docker/graylog/data:/usr/share/graylog/data \
 -p 9000:9000 -p 12201:12201 \
 -p 1514:1514 -p 1514:1514/udp -p 5555:5555 -p 5555:5555/udp \
 -e GRAYLOG_HTTP_EXTERNAL_URI="http://IP-SERVIDOR:9000/" \
 -e GRAYLOG_PASSWORD_SECRET="somepasswordpepper" \
 -e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
 graylog/graylog:5.1;

3) Acesse o Graylog na URL http://IP-Servidor:9000 (com HTTP). Por padrão, o login é admin e a senha é admin.

4) Se quiser parar o conteiner, é só executar os comandos abaixo.

docker stop graylog
docker stop elasticsearch
docker stop mongo

5) Para iniciá-lo novamente, execute o comando abaixo.

docker start graylog
docker start elasticsearch
docker start mongo

6) Para visualizar os logs, execute o comando abaixo.

docker logs graylog
docker logs elasticsearch
docker logs mongo

Mais informações sobre o Graylog e como configurá-lo, acesse o link abaixo.

https://go2docs.graylog.org/5-2/what_is_graylog/what_is_graylog.htm

https://go2docs.graylog.org/5-2/downloading_and_installing_graylog/docker_installation.htm


Categories: ,

8 respostas para “Instalando o Graylog via Docker”

  1. Avatar de oscar gomes

    root@ubuntu-server-logs:~$ docker logs elasticsearch
    OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate memory’ (errno=12)
    #
    # There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.

    Vale lembrar que para executar tudo isso, precisa verificar se há memória suficiente no servidor.

  2. Avatar de oscar gomes

    –hostname graylog-server falta uma barra (\)

  3. Avatar de Aécio Pires
    Aécio Pires

    Obrigado, Oscar!

    Já corrigi.

    Abraço.

  4. Avatar de Glauber B Souza
    Glauber B Souza

    Boa noite,
    -e GRAYLOG_WEB_ENDPOINT_URI=”http://IP-SERVIDOR:9001/api” \
    Nesta opão de ip do servidor, eu aponto o ip do elastiticsearch ou posso colocar localhost?

  5. Avatar de Aécio Pires
    Aécio Pires

    Bom dia, Glauber!

    É para colocar o IP do servidor no qual o Graylog está sendo instalado via Docker.

    Se colocar ‘localhost’ não vai funcionar, pois quando estamos trabalhando com contêiner, se você usar ‘localhost’ a aplicação tentará acessar o próprio contêiner e não o servidor que executa o contêiner, entendeu?

    Então, para evitar essa confusão, a gente deve especificar o IP do servidor no qual o Graylog está sendo instalado.

    Essa configuração aí não tem relação alguma com o ElasticSearch, ela se refere em qual endpoint (URL) será disponibilizada a interface web do Graylog.

    Abraço.

  6. Avatar de Bruno Santinato
    Bruno Santinato

    Aécio,
    Os serviços docker subiu e estão up na minha configuração.
    Porem a interface web fica branco.
    pode me ajudar ?
    Já subi o recurso da maquina de laboratório que estou fazendo os testes. esta com 4GB de RAM e 4vCPU.

  7. Avatar de Aécio Pires
    Aécio Pires

    Oi, Bruno!

    1- Você olhou os logs de cada contêiner para identificar as possíveis mensagens de erro?

    2- Se sim, chegou a pesquisar no google sobre as mensagens de erro?

    3- No comando que inicia o contêiner do Graylog, você informou o IP ou usou localhost? É para usar o IP do host e não localhost, conforme expliquei para Glauber no comentário anterior.

    4- Você está tentando acessar o Graylog no navegador usando o mesmo IP e porta da criação do contêiner?

    No momento eu só consigo pensar nestes cenários…

    Abraço.

  8. Avatar de Thiago
    Thiago

    Sensacional, muito obrigado!

Deixe um comentário

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