Atualizado em: 14 de junho de 2021
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; sudo chmod -R 777 /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 --name mongo --restart=always \
-v /docker/graylog/mongo/data:/data/db -d mongo:4.2;
docker run -d --name elasticsearch \
--restart=always \
-e "http.host=0.0.0.0" \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-v /docker/graylog/elasticsearch/data:/usr/share/elasticsearch/data \
docker.elastic.co/elasticsearch/elasticsearch:7.13.1;
docker run -d --name graylog \
--hostname graylog-server \
--restart=always \
--link mongo \
--link elasticsearch \
-v /docker/graylog/data:/usr/share/graylog/data/journal \
-p 9001:9000 -p 12201:12201 -p 514:514 -p 514:514/udp \
-e GRAYLOG_WEB_ENDPOINT_URI="http://IP-SERVIDOR:9001/api" \
graylog/graylog:4.0;
3) Acesse o Graylog na URL http://IP-Servidor:9001 (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.
http://docs.graylog.org/en/latest/index.html
https://docs.graylog.org/en/4.0/pages/installation/docker.html
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.
–hostname graylog-server falta uma barra (\)
Obrigado, Oscar!
Já corrigi.
Abraço.
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.