2017-04-17 5 views
0

Ich habe Probleme beim Einrichten von Graylog2 unter Andockfenster. Alles funktioniert, bis ich versuche, die Authentifizierung zu verwenden. Alles was ich bekomme ist der folgende Fehler, der für immer wiederholt wird.Graylog-Container kann keine Verbindung zu MongoDB-Container herstellen

Probieren Sie root und graylog Benutzer (in beiden graylog und admin db) gibt das gleiche Ergebnis.

Das Protokoll von mongodb besagt, dass beide Benutzer während des Setups erstellt wurden. Aber Graylog sagt, dass es keinen graylog Benutzer in Datenbank graylog findet. Gleiches mit Benutzer root.

Ich bin neu in MongoDB und habe keine Ahnung, wie die Authentifizierung funktioniert. Aber von was ich verstehe, Authentifizierung (ähnlich wie --auth Parameter) aktiviert ist, wenn Benutzer/Pw für root-Konto (https://github.com/docker-library/mongo/pull/145).

Ist es möglich, dass Graylog einen anderen Authentifizierungsmechanismus als MongoDB erwartet? Siehe Zeile # 158 in der pasted log

Fehlermeldung als Benutzer root

 
mongodb_1  | 2017-04-16T13:27:52.486+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:46566 #12 (1 connection now open) 
mongodb_1  | 2017-04-16T13:27:52.495+0000 I NETWORK [conn12] received client metadata from 172.18.0.4:46566 conn12: { driver: { name: "mongo-java-driver", version: "unknown" }, os: { type: "Linux", name: "Linux", architecture: "amd64", version: "4.4.0-72-generic" }, platform: "Java/Oracle Corporation/1.8.0_72-internal-b15" } 
mongodb_1  | 2017-04-16T13:27:52.525+0000 I ACCESS [conn12] SCRAM-SHA-1 authentication failed for root on graylog from client 172.18.0.4:46566 ; UserNotFound: Could not find user [email protected] 
mongodb_1  | 2017-04-16T13:27:52.543+0000 I -  [conn12] end connection 172.18.0.4:46566 (1 connection now open) 

Fehlermeldung als graylog Benutzer (Full log on pastebin)

 
mongodb_1  | 2017-04-16T15:47:48.404+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:41602 #7 (1 connection now open) 
mongodb_1  | 2017-04-16T15:47:48.410+0000 I NETWORK [conn7] received client metadata from 172.18.0.4:41602 conn7: { driver: { name: "mongo-java-driver", version: "unknown" }, os: { type: "Linux", name: "Linux", architecture: "amd64", version: "4.4.0-72-generic" }, platform: "Java/Oracle Corporation/1.8.0_72-internal-b15" } 
mongodb_1  | 2017-04-16T15:47:48.418+0000 I ACCESS [conn7] SCRAM-SHA-1 authentication failed for graylog on graylog from client 172.18.0.4:41602 ; UserNotFound: Could not find user [email protected] 
mongodb_1  | 2017-04-16T15:47:48.423+0000 I -  [conn7] end connection 172.18.0.4:41602 (1 connection now open) 

Das ist mein ./docker- composer.yml

 

    version: '2' 
    services: 
     mongodb: 
     build: ./mongodb 
     volumes: 
      - /docker/mongodb/data:/data/db 
     elasticsearch: 
     image: "elasticsearch:2" 
     command: "elasticsearch -Des.cluster.name='graylog'" 
     volumes: 
      - /docker/elasticsearch/data:/usr/share/elasticsearch/data 
     graylog: 
     image: graylog2/server 
     volumes: 
      - /docker/graylog/journal:/usr/share/graylog/data/journal 
      - /docker/graylog/config:/usr/share/graylog/data/config 
     environment: 
      #GRAYLOG_MONGODB_URI: mongodb://root:[email protected]:27017/graylog 
      GRAYLOG_MONGODB_URI: mongodb://graylog:[email protected]:27017/graylog 
     depends_on: 
      - mongodb 
      - elasticsearch 
     ports: 
      - "9000:9000" 

./mongodb/Dockerfile

 

    FROM mongo:3 
    ENV MONGO_INITDB_ROOT_USERNAME: root 
    ENV MONGO_INITDB_ROOT_PASSWORD: drUqGGCMh 
    ADD grayloguser.js /docker-entrypoint-initdb.d/grayloguser.js 

./mogodb/grayloguser.js

 

    db.getSiblingDB('graylog'); 
    db.createUser(
     { 
     user: "graylog", 
     pwd: "vWGzncmBe9", 
     roles: [ 
      { role: "dbOwner", db: "graylog" } 
     ] 
     } 
    ); 

+0

Sieht aus wie 'UserNotFound: Benutzer root @ graylog konnte nicht gefunden werden'. Haben wir 'root' Benutzer in' graylog' db? Siehst du den gleichen Fehler, wenn du versuchst, dich mit einem 'graylog' Benutzer zu verbinden? – Veeram

+0

Ich bekomme den excact-Fehler mit dem Graylog-Benutzer, der mit dem JS-Skript erstellt wurde. Habe ich falsch gedacht, dass dbOwner ausreichen sollte? Ich denke auch, dass der root-Benutzer mit der Rolle root gemäß dem init-Skript in der Lage sein sollte, alles zu tun? –

+0

Ich glaube nicht, dass Rolle hier ein Problem ist. Sieht so aus, als ob die Benutzer, wenn sie erstellt werden, nicht gesehen werden. Wie haben Sie die Autorisierung aktiviert? Welche Art von Operation versuchen Sie zu tun? – Veeram

Antwort

1

Ihr MongoDB Skript ist falsch.

entweder den Rückgabewert von db.getSiblingDB('graylog') einer Variablen zuweisen und verwenden, die für createUser() oder stattdessen mit use graylog halten:

graylog = db.getSiblingDB('graylog'); 
graylog.createUser(
    { 
    user: "graylog", 
    pwd: "vWGzncmBe9", 
    roles: [ 
     { role: "dbOwner", db: "graylog" } 
    ] 
    } 
); 

Mit anderen Worten, nur Stick an die MongoDB Dokumentation: https://docs.mongodb.com/manual/tutorial/create-users/#username-password-authentication

Verwandte Themen