2017-04-17 16 views
0

Docker 아래에 Graylog2를 설정하는 데 문제가 있습니다. 모든 것은 인증을 시도 할 때까지 작동합니다. 내가 얻는 것은 다음과 같은 오류가 영원히 반복되는 것이다.Graylog 컨테이너가 MongoDB 컨테이너에 연결할 수 없습니다.

사용자 모두 rootgraylog 사용자 (모두 graylogadmindb 모두)를 사용하면 동일한 결과가 나타납니다.

mongodb의 로그에 두 사용자가 설치 중에 생성되었다는 메시지가 표시됩니다. 그러나 graylog는 graylog 데이터베이스에서 graylog 사용자를 찾지 못한다고 말합니다. 사용자 root과 동일합니다.

MongoDB를 처음 사용하고 인증 작동 방식을 알지 못합니다. 하지만 루트 계정 (https://github.com/docker-library/mongo/pull/145)에 대해 user/pw를 제공 할 때 인증 (--auth 매개 변수와 유사)이 활성화되어 있음을 알 수 있습니다.

Graylog가 MongoDB가 기대하는 인증 메커니즘과 다른 인증 메커니즘을 사용할 수 있습니까? 루트 사용자로 pasted log

오류 메시지에 graylog 사용자로

 
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) 

오류 메시지 라인 # 158를 참조 (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) 

이 내 ./docker-입니다 작곡가 .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

의 모습 : 그냥 MongoDB를 문서에 충실, 즉

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

:

어느 변수에 db.getSiblingDB('graylog')의 반환 값을 할당하고 createUser()을 위해 그것을 사용하거나 대신 use graylog을 계속 사용 'UserNotFound : root @ graylog' 사용자를 찾을 수 없습니다. 'graylog' db에'root' 사용자가 있습니까? 'graylog' 사용자와 연결하려고 할 때도 같은 오류가 발생합니까? – Veeram

+0

JS 스크립트로 만든 graylog 사용자와 excact 오류가 발생합니다. dbOwner가 충분해야한다고 잘못 생각하고 있습니까? 또한 init 스크립트에 따라 root 역할을 가진 루트 사용자가 모든 것을 할 수 있어야한다고 생각하고 있습니까? –

+0

저는 여기서 역할이 문제라고 생각하지 않습니다. 생성 된 사용자가 보이지 않는 것 같습니다. 허가를 어떻게 받았습니까? 어떤 종류의 작업을하려고합니까? – Veeram

답변