MongoDB è un sistema di gestione dei database NoSQL basato su documenti. La presente guida descrive come attivare MongoDB sul Managed Flex Server.
Requisiti
MongoDB può essere utilizzato con un Managed Flex Server M, L, XL o XXL.
Attivare MongoDB
Per il Suo Managed Flex Server, Hostpoint mette a disposizione l’insieme di tool compatibile con il sistema operativo per MongoDB. La versione standard è fornita al rispettivo link /usr/local/bin/ . e versioni specifiche sono reperibili su /usr/local/mongodbXX. La denominazione XX indica la versione. Consigliamo ove possibile di utilizzare la versione standard.
La informeremo per e-mail rispetto a eventuali modifiche alle versioni disponibili. Raccomandiamo di leggere sempre con attenzione tali e-mail. In questo modo potrà ricevere tutti gli aggiornamenti sui lavori di manutenzione necessari, così da pianificarli ed eseguirli di conseguenza.
In merito rimandiamo anche al paragrafo «3. Manutenzione» delle presenti istruzioni.
Predisporre un indice dei dati
È necessaria una cartella specifica sulla home affinché il server MongoDB possa salvare i Suoi dati.
Per poter eseguire i seguenti passaggi è necessario aver effettuato l’accesso al Managed Flex Server tramite SSH.
Nelle presenti istruzioni utilizzeremo come esempio la cartella nascosta ~/.mongod/data/db/ sulla home. Creare la cartella secondo le seguenti indicazioni:
[username@flex:~] 1 $ mkdir -p ~/.mongod/data/db
Avvio manuale di MongoDB
Per la configurazione, avviare il server MongoDB manualmente in una shell tramite il seguente comando:
[username@flex:~] 1 $ /usr/local/bin/mongod --dbpath ~/.mongod/data/db
Il server MongoDB inizializza l’indice dei dati precedentemente creato e attende poi la connessione. Sul Suo terminal compariranno diverse indicazioni di testo sullo status attuale e su possibili problemi relativi all’avvio e all’operazione. Non interrompa il comando, bensì proceda al passaggio successivo con la creazione di un utente per il database.
(Il paragrafo «2.4 Integrazione di MongoDB nel Custom Service Control (CSC)», qui sotto nelle presenti istruzioni, illustra come avviare in modo ordinario il servizio per l’utilizzo sul server web).
Installazione di mongosh
Questi passi sono necessari per installare l'applicazione CLI mongosh in modo da poter comunicare con MongoDB tramite CLI.
Per prima cosa è necessario creare o modificare questi due file e inserire il contenuto appropriato:
NPM_PACKAGES="${HOME}/.npm-packages"
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
export PATH="$NPM_PACKAGES/bin:$PATH"
prefix=${HOME}/.npm-packages
Queste voci consentono di installare pacchetti globali con NPM.
Per rendere attive le modifiche nel file .profile, è necessario disconnettersi e riconnettersi, oppure eseguire il comando source:
source ~/.profile
Per concludere, è necessario installare solo il pacchetto mongosh con NPM:
npm install -g @mongosh/cli-repl
Creazione di un utente per il database
Nel prossimo passaggio viene creato un utente e impostata la password corrispondente per un accesso protetto al Suo server MongoDB.
Per compiere questa operazione è necessario avviare un’ulteriore sessione shell e dare al Flex Server l’ordine mongosh per collegarsi al processo MongoDB avviato precedentemente:
[username@flex:~] 1 $ mongosh MongoDB shell version v5.0.12 connecting to: mongodb://127.0.0.1:27017/[..] >
Comunicare al server MongoDB che ora si desidera utilizzare l’admin del database:
use admin
Ora è possibile creare il profilo utente. L’esempio seguente mostra come creare un utente admin con accesso a tutti i database. Ulteriori informazioni sui diversi ruoli sono disponibili nella documentazione MongoDB in merito al Role-Based Access Control.
db.createUser( { user: "User", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Una volta creato il profilo utente per il database, saranno predisposti anche i requisiti per l’attivazione ordinaria del Suo server MongoDB. È possibile chiudere il server MongoDB nel primo terminal con Ctrl+C e proseguire con il passaggio successivo.
Integrazione di MongoDB nel Custom Service Control (CSC)
Il Custom Service Control (CSC) si occupa del funzionamento e della gestione automatica della Sua applicazione (ad es. dell’avvio e dell’arresto per gli interventi di manutenzione).
La configurazione di MongoDB nel CSC è molto semplice. È sufficiente creare un nuovo custom service per MongoDB:
[username@flex:~] 1 $ hpservices supervisord add mongodb
Nel ~/.services/supervisord/mongodb/service.conf viene creato uno schema di configurazione per il nuovo servizio. Apra questo file in un editor di testo. Per MongoDB è necessario essenzialmente adeguare il command , oppure in alternativa accettare i valori proposti e commentare le righe corrispondenti (eliminare i punti all’inizio di ciascuna riga tranne per la riga directory):
[program:mongodb] command=/usr/local/bin/mongod --auth --dbpath %(ENV_HOME)s/.mongod/data/db ;directory=%(ENV_HOME)s/app/mongodb/ ; directory to cwd to before exec (default no cwd) autostart=true ; start application at supervisord start (default: true) stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10) stdout_logfile=%(ENV_HOME)s/.services/supervisord/mongodb/log/default.log stdout_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default ist 50MB) stdout_logfile_backups=10 ; number of stdout logfile backups (0 means none, default 10) stderr_logfile=%(ENV_HOME)s/.services/supervisord/mongodb/log/default.err stderr_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default is 50MB) stderr_logfile_backups=10 ; number of stderr logfile backups (0 means none, default 10)
Se utilizza il CSC per la prima volta è necessario ora attivarlo. In questo caso consigliamo anche una lettura approfondita della Documentazione sul Custom Service Control.
[username@flex:~] 1 $ hpservices supervisord start
Se utilizza già il CSC per altri servizi, con supervisorctl update update è possibile aggiungere e attivare la nuova configurazione per MongoDB. Con la definizione del service sopra indicata, MongoDB si avvia automaticamente:
[username@flex:~] 1 $ supervisorctl update mongodb: added process group
[username@flex:~] 1 $ supervisorctl status mongodb RUNNING pid 92108, uptime 1:13:39
Le indicazioni del server MongoDB sono ora disponibili al stdout_logfile definito in precedenza per il service.
Testare un’istanza MongoDB
Il Suo server MongoDB è ora pronto per accogliere collegamenti. Per eseguire un test, utilizzare il CLI MongoDB:
[username@flex:~] 1 $ mongosh
Se la configurazione è avvenuta correttamente si ottiene la seguente indicazione:
MongoDB shell version vX.X.X connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("[..]") } MongoDB server version: X.X.X >
Manutenzione
In caso di aggiornamenti alla versione MongoDB, è possibile che siano necessari lavori di manutenzione da parte Sua. Riceverà tramite e-mail eventuali informazioni in merito agli aggiornamenti software in arrivo sul Suo Managed Flex Server. Legga con attenzione tali e-mail e, in caso di aggiornamento della versione MongoDB, verifichi nelle Release Notes del progetto MongoDB se sono necessari eventuali lavori di manutenzione per il Suo database.
Backup
MongoDB memorizza i dati in formato binario nella cartella da Lei selezionata.
Tale cartella si trova nella home, per cui i dati vengono di norma inclusi nel backup regolare dei dati. Considerando che si tratta di dati DB strutturati con determinati requisiti di backup e un modello di modifica specifico per l’applicazione, è consigliabile comunque pensare a una strategia di backup idonea. A tal proposito raccomandiamo la lettura della documentazione di MongoDB.
Ulteriori informazioni
- MongoDB
- Istruzioni: Custom Service Control
Per richieste di supporto la preghiamo di usare invece questo modulo.