Instale Graylog Open no Debian com Data Node
Este guia oferece instalação nativa no Debian 12 x86_64 e Docker Compose no Debian 12 ou 13. Exposição pública, DNS, TLS e firewall continuam sob controle do administrador.
Escolha o caminho suportado
O Graylog usa MongoDB para metadados e Graylog Data Node para gerenciar o backend OpenSearch compatível. Data Node é a arquitetura recomendada; não instale OpenSearch 3 separado.
- Nativo: apenas Debian 12, x86_64 e AVX.
- Docker Compose: Debian 12 ou 13 em x86_64 ou ARM64, após instalar Docker Engine e Compose.
- Use pelo menos 4 GiB RAM, 2 vCPU e 20 GiB livres; 8 GiB, 4 vCPU e 50 GiB são uma referência prática.
Execute primeiro o pré-check
O pré-check verifica sistema, arquitetura, CPU, recursos, portas, serviços existentes, vm.max_map_count e a imagem MongoDB fixada. Ele para antes de alterar o host quando encontrar incompatibilidade.
curl -fsSL https://scripts.lrq.lat/graylog/v1.0.0/install.sh | sudo bashAbre o menu interativo portátil. Escolha Docker Compose no Debian 13 ou ARM64.
curl -fsSL https://scripts.lrq.lat/graylog/v1.0.0/install.sh | sudo bash -s -- preflight --mode dockerExecuta apenas as verificações Docker, sem criar a stack.
Instale com Docker Compose
Instale antes Docker Engine e o plugin Compose moderno. O instalador cria configuração restrita em /opt/lrqnet/graylog, usa volumes persistentes e fixa cada imagem por digest OCI. A interface fica apenas em localhost por padrão.
curl -fsSL https://scripts.lrq.lat/graylog/v1.0.0/install.sh | sudo bash -s -- install --mode dockerExecuta o pré-check, pede a senha inicial sem eco, gera o password secret compartilhado e inicia MongoDB, Data Node e Graylog.
ssh -L 9000:127.0.0.1:9000 admin@graylog-hostCria túnel SSH para abrir http://127.0.0.1:9000 localmente sem expor a porta 9000 na rede.
Instalação manual e segura com Docker Compose
Use este caminho auditável quando não quiser executar um instalador de uma linha. É o procedimento manual para Debian 12 e 13 em x86_64 ou ARM64. A interface inicial fica privada e o guia deliberadamente não configura DNS, TLS ou regras de firewall.
sudo sysctl -w vm.max_map_count=262144
printf 'vm.max_map_count=262144\n' | sudo tee /etc/sysctl.d/99-graylog.conf >/dev/null
sudo docker compose versionAplica o requisito de map-count em um arquivo dedicado e confirma o Compose moderno. Não continue com menos de 4 GiB RAM, dois vCPUs ou 20 GiB livres.
sudo install -d -m 0750 /opt/lrqnet/graylog
read -rsp 'Senha inicial do administrador Graylog: ' GRAYLOG_ADMIN_PASSWORD; printf '\n'
read -rsp 'Confirme a senha: ' GRAYLOG_ADMIN_PASSWORD_CONFIRM; printf '\n'
[ "$GRAYLOG_ADMIN_PASSWORD" = "$GRAYLOG_ADMIN_PASSWORD_CONFIRM" ] || { echo 'As senhas não coincidem' >&2; exit 1; }
[ "${#GRAYLOG_ADMIN_PASSWORD}" -ge 12 ] || { echo 'Use pelo menos 12 caracteres' >&2; exit 1; }
GRAYLOG_PASSWORD_SECRET="$(openssl rand -hex 48)"
GRAYLOG_ROOT_PASSWORD_SHA2="$(printf '%s' "$GRAYLOG_ADMIN_PASSWORD" | sha256sum | awk '{print $1}')"
unset GRAYLOG_ADMIN_PASSWORD GRAYLOG_ADMIN_PASSWORD_CONFIRMCria o diretório restrito, solicita a senha sem eco, valida localmente, gera o segredo compartilhado e deriva o SHA-256 exigido pelo Graylog. A senha não é gravada no histórico nem no arquivo Compose.
services:
mongodb:
image: mongo:8.0.16@sha256:4b58ebcb1dc7a7b4e84cd8ce9098d48764ae4478876898ff9551acf2ac4a6a6d
restart: unless-stopped
volumes: [mongodb-data:/data/db]
datanode:
image: graylog/graylog-datanode:7.1.6-1@sha256:4867cd8ad09ee7a129c0898fe326b0b638928d984789072eb3640fef42fccf5d
restart: unless-stopped
depends_on: [mongodb]
environment:
GRAYLOG_DATANODE_PASSWORD_SECRET: ${GRAYLOG_PASSWORD_SECRET}
GRAYLOG_DATANODE_ROOT_PASSWORD_SHA2: ${GRAYLOG_ROOT_PASSWORD_SHA2}
GRAYLOG_DATANODE_MONGODB_URI: mongodb://mongodb:27017/graylog
GRAYLOG_DATANODE_OPENSEARCH_HEAP: 2g
volumes: [datanode-data:/var/lib/graylog-datanode]
graylog:
image: graylog/graylog:7.1.6-1@sha256:b9a4fd841e4c49c148043265f579554a3bdadf8137ff381b686c194ccb9a3365
restart: unless-stopped
depends_on: [mongodb, datanode]
environment:
GRAYLOG_PASSWORD_SECRET: ${GRAYLOG_PASSWORD_SECRET}
GRAYLOG_ROOT_PASSWORD_SHA2: ${GRAYLOG_ROOT_PASSWORD_SHA2}
GRAYLOG_MONGODB_URI: mongodb://mongodb:27017/graylog
GRAYLOG_HTTP_BIND_ADDRESS: 0.0.0.0:9000
GRAYLOG_HTTP_EXTERNAL_URI: http://127.0.0.1:9000/
ports: ["127.0.0.1:9000:9000/tcp"]
volumes: [graylog-data:/usr/share/graylog/data]
volumes:
mongodb-data:
datanode-data:
graylog-data:Salve como /opt/lrqnet/graylog/docker-compose.yml depois de revisar as versões das imagens. O mapeamento expõe Graylog somente em localhost; MongoDB e Data Node não ficam publicados na rede.
sudo install -m 0600 /dev/null /opt/lrqnet/graylog/.env
sudo sh -c 'printf "%s\n" "GRAYLOG_PASSWORD_SECRET=$1" "GRAYLOG_ROOT_PASSWORD_SHA2=$2" > /opt/lrqnet/graylog/.env' sh "$GRAYLOG_PASSWORD_SECRET" "$GRAYLOG_ROOT_PASSWORD_SHA2"
sudo chmod 0640 /opt/lrqnet/graylog/docker-compose.yml
sudo docker compose --project-directory /opt/lrqnet/graylog config
sudo docker compose --project-directory /opt/lrqnet/graylog up -dGrava os dois segredos gerados em arquivo legível apenas por root, valida a configuração resolvida antes de mudar o estado e inicia a stack persistente. Ao final, execute unset GRAYLOG_PASSWORD_SECRET GRAYLOG_ROOT_PASSWORD_SHA2.
Instalação nativa no Debian 12 x86_64
Use apenas se a VM expuser AVX. O instalador bloqueia Debian 13, ARM64 e CPUs sem AVX em vez de usar repositório MongoDB não suportado. No Proxmox, avalie o impacto de CPU type host, reinicie a VM e confira a flag novamente.
grep -w avx /proc/cpuinfo
curl -fsSL https://scripts.lrq.lat/graylog/v1.0.0/install.sh | sudo bash -s -- install --mode nativeConfirma AVX no convidado e instala MongoDB 8.0, Graylog Data Node e Graylog Open pelos repositórios suportados do Debian 12.
Conclua o preflight do Graylog
O primeiro start abre o fluxo próprio de preflight. Use localmente a credencial temporária emitida pelo Graylog, crie ou importe a CA do Data Node e só então use a senha administrativa escolhida na instalação. Não registre a credencial temporária em tickets, histórico ou logs externos.
sudo docker compose --project-directory /opt/lrqnet/graylog psMostra o estado dos containers. Na instalação nativa, use systemctl status mongod graylog-datanode graylog-server.
Validação, backup e manutenção
Mantenha backup dos volumes e do .env restrito. Atualizações devem ser deliberadas: leia as notas do Graylog e a compatibilidade antes de mudar imagens ou pacotes.
sudo docker compose --project-directory /opt/lrqnet/graylog ps
sudo docker compose --project-directory /opt/lrqnet/graylog logs --tail=100 graylog datanodeConfere containers e logs recentes. Revise-os localmente, pois a primeira execução pode conter credencial temporária.
sudo docker compose --project-directory /opt/lrqnet/graylog downPara a stack sem apagar volumes. Não use --volumes sem intenção explícita de apagar dados.