| Scroll Ignore | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
|
Concept
L'authentification par mot de passe à MongoDB garantit que seul l'utilisateur Shinken peut accéder aux données dans la base.
Activer l'authentification par mot de passe dans MongoDB
Pour activer l'authentification dans MongoDB, il rajoute le champ suivant dans le fichier de configuration /etc/mongod.conf
| Code Block | ||||
|---|---|---|---|---|
| ||||
security:
authorization: enabled |
Exemple de fichier de configuration :
| Code Block | ||||
|---|---|---|---|---|
| ||||
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid
# network interfaces
# NOTE: when go as a replicat member (cluster), change the 27017 to 27018 according to configuration
# and comment the bindIp parameter
net:
port: 27017
unixDomainSocket:
enabled: false
bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
storage:
engine: wiredTiger
security:
authorization: enabled |
Pour prendre en compte l'activation de l'authentification, il faut redémarrer le démon de la base de données :
| Code Block | ||||
|---|---|---|---|---|
| ||||
systemctl restart mongod |
Tant qu'aucun utilisateur n'a été crée, la base dispose d'une exception de connexion en localhost pour créer un utilisateur ayant mes privilèges de créer d'autres utilisateurs
Créer l'utilisateur Shinken
Il faut se connecter au shell MongoDB sur le serveur où se trouve la base ( il faut être en localhost lors de cette connexion )
Lancer le shell MongoDB
| Code Block | ||||
|---|---|---|---|---|
| ||||
mongo |
Depuis le shell MongoDB lancer les commandes suivantes :
| Code Block | ||||
|---|---|---|---|---|
| ||||
use admin |
| Code Block | ||||
|---|---|---|---|---|
| ||||
db.createUser(
{ user : 'YOUR_USER',
pwd : 'YOUR_PASSWORD',
roles : [ { role : 'root', db : 'admin' } ]
}
) |
Adapter la commande au nom de votre utilisateur et à votre mot de passe.
Il ne faut pas changer le champ role et db. En effet pour que Shinken fonctionne correctement, il a besoin de privilèg avancé sur l'ensemble des bases.
A partir de maintenant, seul l'utilisateur qui vient d'être crée peut se connecter à la base.
Déclarer l'utilisateur et le mot de passe dans Shinken
Il faut désormais déclarer l'utilisateur et le mot de passe dans Shinken.
L'ensemble des composants de Shinken qui se connectent à MongoDB et qui doivent avoir leur configuration modifiée sur le serveur de l'Arbiter :
- Le démon Synchronizer : ( voir la page Paramètres globaux ( synchronizer.cfg ) )
- Le module event-manager-reader : ( voir la page Module event-manager-reader )
- Le module event-manager-writer : ( voir la page FOR_MERGE - 005.0 - SEF-11716 - Module event-manager-writer )
- Le module Graphite-Perfdata : ( voir la page Module Graphite-Perfdata )
- Le module MongoDB : ( voir la page Module MongoDB )
- Le module MongodbRetention : ( voir la page Module MongodbRetention ( Rétention en base de données centralisée par royaume ) )
- Le module SLA : ( voir la page Module SLA )
- Le module livedata-module-sla-provider ( voir la page Le livedata-module-sla-provider)
- La source discovery ( voir la page Paramètres globaux ( synchronizer.cfg ) )
- Le fichier mongodb_inventory_reader ( voir la page Paramètres globaux ( synchronizer.cfg ) )
Dans les fichiers de configuration
Dans les commandes
...