У меня проблемы с настройкой Graylog2 под докером. Все работает, пока я не попробую использовать аутентификацию. Все, что я получаю, - это повторяющаяся вечно следующая ошибка.
Попытка использовать как root
, так и graylog
user (как в graylog
, так и в admin
db) дает одинаковый результат.
В журнале mongodb говорится, что оба пользователя созданы во время установки. Но graylog сообщает, что не находит graylog
пользователей в базе данных graylog
. То же самое с пользователем root
.
Я новичок в MongoDB и понятия не имею, как работает аутентификация. Но насколько я понимаю, аутентификация (аналогичная параметру --auth
) активируется при предоставлении user / pw для учетной записи root (https://github.com/docker-library/mongo/pull/145).
Возможно ли, что Graylog использует другой механизм аутентификации, чем ожидает MongoDB? См. Строку 158 в вставленном журнале
Сообщение об ошибке от имени пользователя 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 root@graylog mongodb_1 | 2017-04-16T13:27:52.543+0000 I - [conn12] end connection 172.18.0.4:46566 (1 connection now open)
Сообщение об ошибке пользователя graylog (Полный вход в 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 graylog@graylog mongodb_1 | 2017-04-16T15:47:48.423+0000 I - [conn7] end connection 172.18.0.4:41602 (1 connection now open)
Это мой ./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:drUqGGCMh@mongodb:27017/graylog GRAYLOG_MONGODB_URI: mongodb://graylog:vWGzncmBe9@mongodb: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" } ] } );
UserNotFound: Could not find user root@graylog
. У нас естьroot
пользователь вgraylog
db? Вы видите ту же ошибку, когда пытаетесь подключиться кgraylog
пользователю? - person s7vr   schedule 18.04.2017root
пользователь создан вadmin
db, а приложение ищет вgraylog
db. Как настраивается uri подключения приложения (java-драйвера mongo)? Установлен ли он для просмотра базы данных администратора для пользователя root? - person s7vr   schedule 18.04.2017