Files
help365/platform/configure-mongodb.html
koziavin 00717a92fb
All checks were successful
Deploy Static Site / deploy (push) Successful in 6m6s
update
2025-05-29 16:42:45 +04:00

344 lines
32 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<title>MongoDB cluster</title>
<meta name="generator" content="Help+Manual" />
<meta name="keywords" content="" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="For the correct operation of the system, MongoDB version 3.66.0 is required. The article describes the installation of MongoDB 6.0 for the Ubuntu Linux 22.04 OS. You can also..." />
<meta name="picture" content="" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
<meta property="og:url" content="https://brix365.com/en/help" />
<meta property="og:image" content="" />
<link rel="icon" href="favicon.png" type="image/png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./jquery-ui.min.css" />
<link rel="stylesheet" href="default.css" />
<link rel="stylesheet" href="./search-yandex.css" />
<link rel="stylesheet" href="./article.css" />
<link rel="stylesheet" href="./glossary.css" />
<link rel="stylesheet" href="./theme.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="helpman_settings.js"></script>
<script type="text/javascript" src="helpman_topicinit.js"></script>
<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
$(document).ready(function(){highlight();});
</script>
</head>
<body>
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
<header class="header elma-365">
<div class="container">
<a class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-en.svg" alt="header logo">
</a>
<!-- <div class="hero__search-form" id="search-panel">
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
<label class="search-form__label">
<span id="reset-search" class="search__icon"></span>
<input class="search-form__input" type="text">
</label>
<input class="search-form__submit" type="submit" value="Submit">
</form>
</div> -->
<div class="hero__search-form" id="search-panel"> <form class="search-form"> <label class="search-form__label"> <span id="reset-search" class="search__icon"></span> <input class="search-form__input" type="text"> </label> <input class="search-form__submit" type="submit" value="Submit"> </form> </div>
<div class="hero__search">
<a href="#" id="search-icon" class="hero__search-icon">
<img src="search-icon-white.svg" alt="search string">
</a>
<a href="#" id="side-menu-icon" class="hero__side-icon">
<img src="side_menu.svg" alt="side menu">
</a>
</div>
<div class="header__navi">
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
</div>
</div>
</header>
<main class="main container">
<aside class="sidebar" id="sidebar">
<div class="sidebar__header">
<a class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-light-en.svg">
</a>
<span class="sidebar__close elma-365-close" id="close"></span>
</div>
<div class="sidebar__wrapper" id="side-menu">
</div>
</aside>
<article class="article" id="article">
<div class="article-inner">
<div class="content">
<header class="article__header">
<div class="article__bread" style="display:flex; gap:10px;">
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
<div class="topic__breadcrumbs">
<p><a href="elma365-on-premises.html">BRIX On-Premises</a> &gt; <a href="infrastructure-preparation.html">Prepare infrastructure</a> &gt; Databases &gt; High availability infrastructure / MongoDB cluster</p>
</div>
</div>
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">MongoDB cluster</span></h1>
</div>
</header>
<section class="article__content">
<div class="scroll-top-inner">
<a href="#h1-article" class="scroll-top"></a>
</div>
<!-- Placeholder for topic body. -->
<p class="p_Normal">For the correct operation of the system, MongoDB version 3.66.0 is required. The article describes the installation of MongoDB 6.0 for the Ubuntu Linux 22.04 OS. You can also refer to the guide in the <a href="https://www.mongodb.com/docs/manual/installation/" target="_blank" class="weblink">official MongoDB documentation</a>.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px;">In this example, the database name is </span><span style="font-size: 15px; font-weight: bold;">elma365</span><span style="font-size: 15px;">, the user is </span><span style="font-size: 15px; font-weight: bold;">elma365</span><span style="font-size: 15px;">, and the password is </span><span style="font-size: 15px; font-weight: bold;">SecretPassword</span><span style="font-size: 15px;">. When configuring the cluster, set these data according to the security policy adopted in your organization</span>.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<p class="p_Normal" style="line-height: 1.20;">The installation consists of 7 steps:</p>
<ol style="list-style-type:decimal">
<li value="1" class="p_Normal"><a href="configure-mongodb.html#preparation-node" class="topiclink">Prepare the nodes (servers)</a>.</li><li value="2" class="p_Normal"><a href="configure-mongodb.html#installation-mongodb" class="topiclink">Install MongoDB</a>.</li><li value="3" class="p_Normal"><a href="configure-mongodb.html#setting-mongodb" class="topiclink">Configure MongoDB</a>.</li><li value="4" class="p_Normal"><a href="configure-mongodb.html#setting-connection-to-mongodb" class="topiclink">Configure connection to MongoDB</a>.</li><li value="5" class="p_Normal"><a href="configure-mongodb.html#initialization-replica" class="topiclink">Initialize the replica</a>.</li><li value="6" class="p_Normal"><a href="configure-mongodb.html#safety-mongodb" class="topiclink">MongoDB security</a>.</li><li value="7" class="p_Normal"><a href="configure-mongodb.html#connection-to-mongodb" class="topiclink">Connect to MongoDB</a>.</li></ol>
<h2 class="p_Heading2"><a id="preparation-node" class="hmanchor"></a><span class="f_Heading2">Step 1: Prepare the nodes (servers)</span></h2>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Начало&nbsp;внимание</span></p>
<p class="p_Normal">The minimum number of servers to organize a cluster is three.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Конец&nbsp;внимание</span></p>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Create three nodes (servers) with sequentially numbered host name:</li></ol>
<ul style="list-style-type:disc">
<li class="p_Normal"><span style="font-weight: bold;">mongodb-server1.your_domain</span>;</li><li class="p_Normal"><span style="font-weight: bold;">mongodb-server2.your_domain</span>;</li><li class="p_Normal"><span style="font-weight: bold;">mongodb-server3.your_domain</span>.</li></ul>
<ol style="list-style-type:upper-roman" start="2">
<li value="2" class="p_Normal">Create the necessary host name mappings in DNS. If this is not possible, add the required entries to<span style="font-weight: bold;"> </span><code><b>/etc/hosts</b></code>.</li></ol>
<h2 class="p_Heading2"><a id="installation-mongodb" class="hmanchor"></a><span class="f_Heading2">Step 2: Install MongoDB</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">To install MongoDB on each node, add the official repository::</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;apt-get&nbsp;install&nbsp;gnupg</span><br />
<span class="f_CodeExample">curl&nbsp;-fsSL&nbsp;</span><span class="f_CodeExample">https://pgp.mongodb.com/server-6.0.asc&nbsp;|&nbsp;sudo&nbsp;gpg&nbsp;-o&nbsp;/usr/share/keyrings/mongodb-server-6.0.gpg&nbsp;--dearmor</span><br />
<span class="f_CodeExample">echo&nbsp;&quot;deb&nbsp;[&nbsp;arch=amd64,arm64&nbsp;signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg&nbsp;]&nbsp;https://repo.mongodb.org/apt/ubuntu&nbsp;jammy/mongodb-org/6.0&nbsp;multiverse&quot;&nbsp;|&nbsp;sudo&nbsp;tee&nbsp;/etc/apt/sources.list.d/mongodb-org-6.0.list</span><br />
<span class="f_CodeExample">sudo&nbsp;apt-get&nbsp;update</span></p>
<ol style="list-style-type:upper-roman">
<li value="2" class="p_Normal">Install MongoDB on each node:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;apt&nbsp;install&nbsp;mongodb-org</span></p>
<ol style="list-style-type:upper-roman">
<li value="3" class="p_Normal">Start MongoDB on each node:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;systemctl&nbsp;enable&nbsp;--now&nbsp;mongod</span></p>
<h2 class="p_Heading2"><a id="setting-mongodb" class="hmanchor"></a><span class="f_Heading2">Step 3: Configure MongoDB</span></h2>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;примечание</span></p>
<p class="p_Normal"><span style="font-weight: bold;">Note</span></p>
<p class="p_Normal">For the password, the following characters are allowed:</p>
<ul style="list-style-type:disc">
<li class="p_Normal">Uppercase Latin letters: A to Z</li><li class="p_Normal">Lowercase Latin letters: a to z</li><li class="p_Normal">Digits: 0 to 9</li><li class="p_Normal">Symbols: -_</li></ul>
<p class="p_Normal">Reserved (invalid) symbols:</p>
<p class="p_Normal">! * ' ( ) ; : @ &amp; = + $ , / ? % # [ ]</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;примечание</span></p>
<p class="p_Normal">The following actions are performed on the<span style="font-weight: bold;"> mongodb-server1.your_domain </span>node:</p>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Enter <span style="font-weight: bold;">mongosh</span> (Command Line Interface) and create a database:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">mongosh</span></p>
<ol style="list-style-type:upper-roman">
<li value="2" class="p_Normal">Use the elma365 database. If the database is missing, create it:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">use&nbsp;elma365</span></p>
<ol style="list-style-type:upper-roman">
<li value="3" class="p_Normal">Create a separate user <span style="font-weight: bold;">elma365</span> to work with the database with the password <span style="font-weight: bold;">SecretPassword</span>. The username and password are provided for example purposes::</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">db.createUser({user:'elma365',&nbsp;pwd:'SecretPassword',&nbsp;roles:[{role:&quot;readWrite&quot;,&nbsp;db:&quot;elma365&quot;},{&quot;role&quot;:&quot;root&quot;,&nbsp;&quot;db&quot;:&quot;admin&quot;}]})</span></p>
<ol style="list-style-type:upper-roman">
<li value="4" class="p_Normal">Ensure the user is created:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">show&nbsp;users</span></p>
<ol style="list-style-type:upper-roman">
<li value="5" class="p_Normal">Create a superuser to enable authentication:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">use&nbsp;admin</span><br />
<span class="f_CodeExample">db.createUser({user:'superuser',&nbsp;pwd:'SecretPassword',&nbsp;roles:&nbsp;[&quot;root&quot;]})</span></p>
<ol style="list-style-type:upper-roman">
<li value="6" class="p_Normal">Ensure the user is created:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">show&nbsp;users</span></p>
<ol style="list-style-type:upper-roman" start="7">
<li value="7" class="p_CodeExample" style="page-break-inside: avoid;">Finish&nbsp;the&nbsp;configuration:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">exit</span></p>
<h2 class="p_Heading2"><a id="setting-connection-to-mongodb" class="hmanchor"></a><span class="f_Heading2">Step 4: Configure connection to MongoDB</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Make changes to the configuration file <code><b>/etc/mongod.conf</b></code> on each node:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;nano&nbsp;/etc/mongod.conf</span></p>
<ol style="list-style-type:upper-roman" start="2">
<li value="2" class="p_Normal">Configure the variable values:</li></ol>
<ul style="list-style-type:disc">
<li class="p_Normal"><span style="font-weight: bold;">bindIp</span> is the list of addresses from which connections on port 27017 can be accepted (in this case, it makes the MongoDB service accessible from all external addresses).</li></ul>
<ul style="list-style-type:disc">
<li class="p_Normal"><span style="font-weight: bold;">replSetName</span> is the replica name, by default <span style="font-weight: bold;">rs0</span>. </li></ul>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">.&nbsp;.&nbsp;.</span><br />
<span class="f_CodeExample">#&nbsp;network&nbsp;interfaces</span><br />
<span class="f_CodeExample">net:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;port:&nbsp;27017</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;bindIp:&nbsp;0.0.0.0</span><br />
<span class="f_CodeExample">.&nbsp;.&nbsp;.</span><br />
<span class="f_CodeExample">replication:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;replSetName:&nbsp;&quot;rs0&quot;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;enableMajorityReadConcern:&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">true</span><br />
<span class="f_CodeExample">.&nbsp;.&nbsp;.</span></p>
<p class="p_Normal"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">Configuring TLS/SSL in MongoDB</a></p>
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.80; padding: 0 0 0 0; margin: 0 0 0 0;"><table style="border:none; border-spacing:0;">
<tr>
<td style="vertical-align:top; padding:0; border:none"><p class="p_Normal">&nbsp;<br />
To enable TLS/SSL support in MongoDB, follow these steps:</p>
<ol style="list-style-type:decimal">
<li value="1" class="p_Normal">Prepare a fullchain certificate. See the <a href="fullchain-sertificate.html" class="topiclink">Create a fullchain certificate</a> article for instructions on how to do this.</li><li value="2" class="p_Normal">Copy the contents of the <span style="font-weight: bold;">your_domain.key</span> private key into <span style="font-weight: bold;">mongodb.pem</span>:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">cat&nbsp;your_domain.key&nbsp;&gt;&nbsp;mongodb.pem</span></p>
<ol style="list-style-type:decimal" start="3">
<li value="3" class="p_Normal">Copy the contents of the fullchain certificate into <span style="font-weight: bold;">mongodb.pem</span>.</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">cat&nbsp;fullchain_your_domain.pem&nbsp;&gt;&gt;&nbsp;mongodb.pem</span></p>
<ol style="list-style-type:decimal" start="4">
<li value="4" class="p_Normal">Add a configuration block for net on each node. In the <span style="font-weight: bold;">net.tls.certificateKeyFile</span> parameter, specify the path to the <span style="font-weight: bold;">PEM</span> file containing the fullchain certificates and associated private keys. Each node has unique domain names, and certificates must be issued for each node.</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">net:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;tls:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;mode:&nbsp;requireTLS</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;certificateKeyFile:&nbsp;/path/to/mongodb.pem</span></p>
<p class="p_Normal">&nbsp;<br />
For more detailed information on configuring TLS/SSL in MongoDB, refer to the <a href="https://www.mongodb.com/docs/v5.0/tutorial/configure-ssl/" target="_blank" class="weblink">official MongoDB documentation</a>.</p>
</td>
</tr>
</table>
</div>
<p class="p_Normal">&nbsp;</p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" class="p_Normal">Restart MongoDB on each node for the changes to take effect:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;systemctl&nbsp;restart&nbsp;mongod</span></p>
<h2 class="p_Heading2"><a id="initialization-replica" class="hmanchor"></a><span class="f_Heading2">Step 5: Initialize the replica</span></h2>
<p class="p_Normal">The following actions are performed on the<span style="font-weight: bold;"> mongodb-server1.your_domain </span>node:</p>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Open the <span style="font-weight: bold;">mongosh</span> console for configuration.</li></ol>
<p class="p_Normal">To connect to MongoDB, execute the following command:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;mongosh&nbsp;-u&nbsp;superuser&nbsp;admin</span></p>
<p class="p_Normal">To connect to MongoDB with TLS/SSL enabled:</p>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">sudo mongosh -u superuser --tls --host mongodb-server1.your_domain --tlsCAFile /etc/ssl/CA.pem</span></p>
<ol style="list-style-type:upper-roman" start="2">
<li value="2" class="p_CodeExample" style="page-break-inside: avoid;">Initialize&nbsp;the&nbsp;replica:</li></ol>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">rs.initiate({ _id: &quot;rs0&quot;, members: [{ _id: 0, host: &quot;mongodb-server1.your_domain&quot; },{ _id: 1, host: &quot;mongodb-server2.your_domain&quot; },{ _id: 2, host: &quot;mongodb-server3.your_domain&quot; }]})</span></p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" class="p_Normal">Check the configuration: </li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">rs.conf()</span></p>
<h2 class="p_Heading2"><a id="safety-mongodb" class="hmanchor"></a><span class="f_Heading2">Step 6: MongoDB security</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Create and specify permissions for the file with the shared authentication key. All <span style="font-weight: bold;">Replica Set</span> members will use this key to communicate with each other:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">openssl&nbsp;rand&nbsp;-base64&nbsp;756&nbsp;&gt;&nbsp;/var/lib/mongodb/keyfile</span><br />
<span class="f_CodeExample">chmod&nbsp;400&nbsp;/var/lib/mongodb/keyfile</span><br />
<span class="f_CodeExample">chown&nbsp;mongodb:mongodb&nbsp;/var/lib/mongodb/keyfile</span></p>
<ol style="list-style-type:upper-roman" start="2">
<li value="2" class="p_Normal">Copy the key file to each replica.</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p class="p_Normal">The contents of the key file on all nodes must be identical while preserving access rights.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" class="p_Normal">Enable secure access to the MongoDB server if it is in an open zone.</li><li value="4" class="p_Normal">To configure, edit the <code><b>/etc/mongod.conf</b></code> file on each of the servers. The lines should look like this:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">.&nbsp;.&nbsp;.</span><br />
<span class="f_CodeExample">setParameter:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;enableLocalhostAuthBypass:&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">false</span><br />
<span class="f_CodeExample">security:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;authorization:&nbsp;&quot;enabled&quot;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;keyFile:&nbsp;/</span><span class="f_CodeExample" style="font-weight: bold;">var</span><span class="f_CodeExample">/lib/mongodb/keyfile</span><br />
<span class="f_CodeExample">.&nbsp;.&nbsp;.</span></p>
<ol style="list-style-type:upper-roman" start="4">
<li value="4" class="p_Normal">Restart MongoDB on each node:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;systemctl&nbsp;restart&nbsp;mongod</span></p>
<ol style="list-style-type:upper-roman" start="5">
<li value="5" class="p_Normal">Open the <span style="font-weight: bold;">mongosh</span> console using the user for MongoDB access.</li></ol>
<p class="p_Normal">To connect to MongoDB, execute the command:</p>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: auto;"><span class="f_CodeExample">sudo mongosh -u superuser</span></p>
<p class="p_Normal">To connect to MongoDB with TLS/SSL enabled:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo&nbsp;mongosh&nbsp;-u&nbsp;superuser&nbsp;--tls&nbsp;--host&nbsp;mongodb-server1.your_domain&nbsp;--tlsCAFile&nbsp;/etc/ssl/CA.pem</span></p>
<ol style="list-style-type:upper-roman" start="6">
<li value="6" class="p_Normal">Check the configuration: </li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">rs.conf()</span></p>
<h2 class="p_Heading2"><a id="connection-to-mongodb" class="hmanchor"></a><span class="f_Heading2">Step 7: Connect to MongoDB</span></h2>
<p class="p_Normal">Connection string to connect to MongoDB:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">mongodb:</span><span class="f_CodeExample">//elma365:SecretPassword@mongodb-server1.your_domain:27017,mongodb-server2.your_domain:27017,mongodb-server3.your_domain:27017/elma365?replicaSet=rs0&amp;readPreference=nearest&amp;maxStalenessSeconds=120</span></p>
<p class="p_Normal">Connection string to connect to MongoDB with TLS/SSL:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">mongodb</span><span class="f_CodeExample">://elma365:SecretPassword@mongodb-server1.your_domain:27017,mongodb-server2.your_domain:27017,mongodb-server3.your_domain:27017/elma365?ssl=true&amp;replicaSet=rs0&amp;readPreference=nearest&amp;maxStalenessSeconds=120</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Prepare a MongoDB database for restoration</span></h2>
<p class="p_Normal">If you need to restore a database from backup, first prepare the database for restoration. For more details, refer to the article <a href="mongodb.html#prepare-to-restore" class="topiclink">MongoDB</a>.</p>
<div class="bottom-nav">
<a id="prev-link" class="topic__navi_prev" href="configure-hot-standby-postgresql.html">
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
class="bottom-nav__link">configure-hot-standby-postgresql.html</span>
</a>
<a id="next-link" class="topic__navi_next" href="configure-redis.html">
<span class="bottom-nav__link">configure-redis.html</span> <span
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
</a>
</div>
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
</section>
</div>
<aside class="article__sidebar" style="display:none">
<input type="checkbox" />
<div class="article__arrow"></div>
<div class="table-of-contents elma365-right" id="toc2Content">
<h3 class="h3-toc">In this topic</h3>
<nav id="toc2"></nav>
</div>
</aside>
</div>
</article>
</main>
<footer class="footer">
<div class="footer-container">
<div class="footer-mobile">
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
</div>
<div class="footer-wrap">
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
<div class="footer-flex-b">
<span class="footer-copy">&copy; 2025 BRIX</span>
<ul class="footer-list">
<li class="footer-item">
<a href="#" class="arrow-top" style="display: block;"></a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<iframe name="hmnavigation" style="display:none!important"></iframe>
<script src="./jquery-ui.js"></script>
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
<script src="./jquery.tocify.min.js"></script>
<script src="./TypoReporter.min.js"></script>
<script src="./google-search.js"></script>
<script src="./main.js"></script>
<script type="text/javascript">
HMInitToggle('TOGGLE0186A1','hm.type','dropdown','hm.state','0');
</script>
</body>
</html>