Could not load streams and not working Login after Preflight with configured Admin SHA 256 Password (only Workaround found https://server-ip/graylog/api/streams new basic auth with that User

Before you post: Your responses to these questions will help the community help you. Please complete this template if you’re asking a support question.
Don’t forget to select tags to help index your topic!

1. Describe your incident:

Every Login i got this Error:

Could not load streams

Loading streams failed with status: FetchError: There was an error fetching a resource: . Additional information: Not available

The Whole Thing is a Docker Compose Stack with an nginx docker between for the use.

the only workaround i did find was /graylog/api/streams new basic auth with configured Admin User and then go back to logon site and login with admin user.

2. Describe your environment:

  • OS Information:
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 24.04.3 LTS
    Release: 24.04
    Codename: noble

  • Package Version:

  • MongoDB 8.017 Graylog-Server and Datanode 7.0

  • Service logs, configurations, and environment variables:

    docker-compose.yml:

services:

=========================

Graylog MongoDB

=========================

app02_db:
image: mongo:8.0.17
container_name: app02_db
restart: unless-stopped
env_file: .env
volumes:

  • /pfad/zu/data/app02/db/data:/data/db
  • /pfad/zu/data/app02/db/config:/data/configdb
    healthcheck:
    test: [“CMD”, “mongosh”, “–eval”, “db.adminCommand(‘ping’)”]
    interval: 10s
    timeout: 5s
    retries: 10

=========================

Graylog DataNode 7.0

=========================

app02_datanode:
image: graylog/graylog-datanode:7.0
container_name: app02_datanode
restart: unless-stopped
env_file: .env
depends_on:
app02_db:
condition: service_healthy
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
environment:
GRAYLOG_DATANODE_NODE_ID_FILE: /var/lib/graylog-datanode/node-id
GRAYLOG_DATANODE_PASSWORD_SECRET: ${GRAYLOG_PASSWORD_SECRET}
GRAYLOG_DATANODE_HTTP_BIND_ADDRESS: 0.0.0.0:8999
GRAYLOG_DATANODE_OPENSEARCH_LOCATION: /var/lib/graylog-datanode/opensearch
GRAYLOG_DATANODE_MONGODB_URI: mongodb://app02_db:27017/graylog
volumes:

  • /pfad/zu/data/app02/datanode:/var/lib/graylog-datanode

=========================

Graylog Server 7.0

=========================

app02:
image: graylog/graylog:7.0
container_name: app02
restart: unless-stopped
env_file: .env
depends_on:
app02_db:
condition: service_healthy
environment:
GRAYLOG_HTTP_BIND_ADDRESS: app02:9000
GRAYLOG_MONGODB_URI: mongodb://app02_db:27017/graylog
GRAYLOG_HTTP_EXTERNAL_URI: https:///graylog/
GRAYLOG_HTTP_PUBLISH_URI: app02:9000 with http before
GRAYLOG_PASSWORD_SECRET: ${GRAYLOG_PASSWORD_SECRET}
GRAYLOG_ROOT_PASSWORD_SHA2:
GRAYLOG_OPENSEARCH_NODES: http://app02_datanode:8999
GRAYLOG_HTTP_ENABLE_CORS: true
volumes:

  • /pfad/zu/data/app02/data:/usr/share/graylog/data/data
  • /pfad/zu/data/app02/journal:/usr/share/graylog/data/journal
    ports:
  • “514:514/udp”
  • “514:514/tcp”

=========================

Reverse Proxy (Nginx)

=========================

edge:
image: nginx:stable-alpine
container_name: edge
restart: unless-stopped
depends_on:

  • app01
  • app02
    ports:
  • “443:443”
    volumes:
  • /pfad/zu/edge/conf.d:/etc/nginx/conf.d
  • /pfad/zu/edge/certs:/etc/nginx/certs

networks:
internal_net:
driver: bridge

nginx.conf:

HTTP → HTTPS Redirect

==========================

server {
listen 80;
server_name ; # placeholder for your host IP or domain

# Redirect all HTTP to HTTPS
return 301 https://$host$request_uri;

}

==========================

HTTPS Server

==========================

server {
listen 443 ssl http2;
server_name ; # placeholder for your host IP or domain

# --------------------------
# SSL Certificates
# --------------------------
ssl_certificate     /etc/nginx/certs/fullchain.pem;       # placeholder path
ssl_certificate_key /etc/nginx/certs/privkey.pem;         # placeholder path
ssl_protocols       TLSv1.2 TLSv1.3;
ssl_ciphers         HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

# --------------------------
# Logging
# --------------------------
access_log /var/log/nginx/app_access.log;
error_log  /var/log/nginx/app_error.log warn;

# ==========================
# Graylog Subpath /graylog/
# ==========================
location /graylog/ {
    # Proxy Headers
    proxy_set_header Host $host;
    proxy_set_header X-Graylog-Server-URL https://$server_name/graylog/;  # corrected typo
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Prefix /graylog;

    # Subpath Rewrite (must be LAST before proxy_pass)
    rewrite ^/graylog(/.*)$ $1 break;

    # Proxy Pass to Graylog
    proxy_pass http://<GRAYLOG-CONTAINER>:9000/;   # placeholder for Graylog container

    # Force cookies to subpath
    proxy_cookie_path / /graylog/;

    # WebSocket Support for Streams and Events
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    # Disable buffering
    proxy_buffering off;
}

}

Graylog Logs:
2026-01-21 12:14:24,127 INFO : org.graylog.plugins.pipelineprocessor.periodical.LegacyDefaultStreamMigration - Legacy default stream has no connections, no migration needed.
2026-01-21 12:14:27,777 INFO : org.glassfish.grizzly.http.server.NetworkListener - Started listener bound to [app02:9000]
2026-01-21 12:14:27,782 INFO : org.graylog2.shared.initializers.JerseyService - Started REST API at server:9000
2026-01-21 12:14:27,785 INFO : org.graylog2.shared.initializers.ServiceManagerListener - Services are healthy
2026-01-21 12:14:27,823 INFO : org.graylog2.bootstrap.ServerBootstrap - Graylog server up and running.

2026-01-21 12:20:14,101 INFO : org.graylog2.bootstrap.preflight.MongoDBPreflightCheck - Connected to MongoDB version 8.0.17
2026-01-21 12:21:54,151 INFO : org.mongodb.driver.cluster - Exception in monitor thread while connecting to server 127.0.0.1:27017

2026-01-21 12:21:52,407 INFO : org.graylog2.shared.journal.LocalKafkaJournal - Initialized Kafka based journal at data/journal
2026-01-21 12:21:54,074 INFO : org.graylog2.shared.buffers.ProcessBuffer - Initialized ProcessBuffer with ring size <65536>

3. What steps have you already taken to try and solve the problem?
did find the Workaround i did write, tried with and without header X-Graylog-Server-URL and
rewrite ^/graylog(/.*)$ $1 break;

**4. How can the community help?

Maybe give me a hint i didn’t tried or an idea to solve the problem that with server/graylog the Logon with the Configured Admin user works

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.