Docker 아래에 Graylog2를 설정하는 데 문제가 있습니다. 모든 것은 인증을 시도 할 때까지 작동합니다. 내가 얻는 것은 다음과 같은 오류가 영원히 반복되는 것이다.Graylog 컨테이너가 MongoDB 컨테이너에 연결할 수 없습니다.
사용자 모두 root
및 graylog
사용자 (모두 graylog
및 admin
db 모두)를 사용하면 동일한 결과가 나타납니다.
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" } ] } );
의 모습 : 그냥 MongoDB를 문서에 충실, 즉
:
어느 변수에
db.getSiblingDB('graylog')
의 반환 값을 할당하고createUser()
을 위해 그것을 사용하거나 대신use graylog
을 계속 사용 'UserNotFound : root @ graylog' 사용자를 찾을 수 없습니다. 'graylog' db에'root' 사용자가 있습니까? 'graylog' 사용자와 연결하려고 할 때도 같은 오류가 발생합니까? – VeeramJS 스크립트로 만든 graylog 사용자와 excact 오류가 발생합니다. dbOwner가 충분해야한다고 잘못 생각하고 있습니까? 또한 init 스크립트에 따라 root 역할을 가진 루트 사용자가 모든 것을 할 수 있어야한다고 생각하고 있습니까? –
저는 여기서 역할이 문제라고 생각하지 않습니다. 생성 된 사용자가 보이지 않는 것 같습니다. 허가를 어떻게 받았습니까? 어떤 종류의 작업을하려고합니까? – Veeram