今日、非常に厄介な問題に遭遇しました。
基本的に、私は GCP Marketplace の提供を利用して MongoDB データベースをセットアップしました。プライマリ ノード、セカンダリ ノード、アービターをセットアップします。これは非常に便利です。セキュリティは実現していません。まったく実現していません。そのため、当然ながら自分でセットアップする必要がありました。さて、20 時間経ち、自分の顔に何度かパンチを食らった後も、まだ実行するのに苦労しています。
基本的に、これが私の部分的な構成です:
security:
authorization: enabled
keyFile: '/etc/mongodKey'
コメントアウトするとkeyFile
インスタンスは実行されます。しかし、セキュリティが有効になっているため、他のノードに接続できません。また、無効にすることもできません。おかしいですか?
ただし、keyFile については... 私の理解では、mongod
開くことができないため、起動しません。/etc
そこに置くのに適切な場所ではないと思います。他のフォルダーを試しましたが、役に立ちませんでした。何も機能しません。
また、同僚が Robo 3T を使用してデータベースに接続する必要があるため、セキュリティ対策が必要です。したがって、外部 IP アドレスを削除することは問題外です。
何が間違っているのでしょうか? 髪の毛を抜いてしまいそうなので、助けてください。
これは次の出力ですsudo service mongod status
:
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2019-08-21 15:28:08 UTC; 4min 29s ago
Docs: https://docs.mongodb.org/manual
Process: 1024 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE)
Main PID: 1024 (code=exited, status=1/FAILURE)
Aug 21 15:28:08 m-vm-0 systemd[1]: Started MongoDB Database Server.
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Main process exited, code=exited, status=1/F
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Unit entered failed state.
Aug 21 15:28:08 m-0 systemd[1]: mongod.service: Failed with result 'exit-code'.
編集:
を確認しましたmongod.log
。はい、権限の問題です。解決できません。
やってみましたsudo chmod 400 /etc/mongodKey
が、何も起こりません。mongodb で読み取り可能なキー ファイルをどこに置けばよいか教えてください。これは非常に重要です。
答え1
レプリケーションを設定できる「MongoDB」という名前の GCP MongoDB マーケットプレイス デプロイメントを使用する場合は、次の点に注意してください。
初期構成ではセキュリティが設定されていないため、次の 2 つのオプションがあります。
- 外部IPをオフにする
- 認証を有効にする
mongod.conf
最初の解決策を選択した場合、他の外部ソースからデータベースに簡単に接続できなくなります。
2 番目の解決策を選択する場合は、次の操作を行う必要があります。
キーを生成します。プロセス全体はここで確認できます:https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/
ファイルの内容をコピーする
- すべての Compute Engine インスタンスに SSH で接続する
- ディレクトリを選択
sudo touch <path to key>
sudo nano <path to key>
- 生成したキーをコンピュータに貼り付けて保存します
sudo chmod 600 <path to key>
sudo chown mongodb: <path to key>
- 下記のアップデート
mongod.conf
をご覧ください/etc/mongod.conf
- コメント解除
security
、、authorization
keyFile
keyFile
キーファイルへのパスをキーの下に指定します- すべてのインスタンスを停止して再起動します
これで MongoDB はキーファイルにアクセスできるようになりました。
悪夢です。chmod 400 <path to key>
ドキュメントに指定されているとおりに動作しませんでした。 に設定する必要がありましたchmod 600 <path to key>
。