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



	

7 comentários em “Instalando o Graylog via Docker

  • 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.

  • 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?

  • 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.

  • 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.

  • 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.

Deixe um comentário

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