Configurez le logiciel SystemLink Enterprise pour qu'il accède à une ou plusieurs bases de données MongoDB distantes afin d'améliorer l'évolutivité et la tolérance aux pannes.

Vous devez migrer vos données MongoDB existantes dans les conditions suivantes.
  • Vous effectuez une mise à niveau d'une version SystemLink Enterprise antérieure à 2023-10.
  • Vous définissez global.mongodb.install sur vrai.

Pour en savoir plus sur les conditions de migration, reportez-vous aux notes de version.

  1. Si vous installez SystemLink Enterprise pour la première fois, provisionnez les bases de données répertoriées dans le tableau suivant.
  2. Open systemlink-secrets.yaml.
  3. Définissez le mot de passe pour chaque base de données.
    Remarque Pour utiliser un même jeu d'identifiants pour toutes les bases de données, vous pouvez laisser le champ password vide pour chaque base de données.
    Tableau 16. Paramètres de configuration pour une instance MongoDB
    Service Base de données Utilisateur Mot de passe
    alarmservice nialarm nialarm alarmservice.secrets.mongodb.servicePassword
    assetservice niapm niapm assetservice.secrets.mongodb.servicePassword
    comments comments nicomments comments.secrets.mongodb.servicePassword
    dataframeservice nidataframe nidataframe dataframeservice.secrets.mongodb.servicePassword
    fileingestion files files fileingestion.secrets.mongodb.servicePassword
    filescdc (optional) files files fileingestioncdc.secrets.mongodb.password
    feedservice nifeeds nifeeds feedservice.secrets.mongodb.servicePassword
    nbexecservice ninbexec ninbexec nbexecservice.secrets.mongodb.servicePassword
    notification ninotification ninotification notification.secrets.mongodb.servicePassword
    repository nirepo nirepo repository.secrets.mongodb.servicePassword
    routinescheduletrigger niroutinescheduletrigger niroutinescheduletrigger routinescheduletrigger.secrets.mongodb.servicePassword
    routineservice niroutines niroutines routineservice.secrets.mongodb.servicePassword
    saltmaster minions minions saltmaster.secrets.mongodb.minionsPassword
    saltmaster pillars pillars saltmaster.secrets.mongodb.pillarsPassword
    specificationmanagement (optional) specifications nispecificationmanagement specificationmanagement.secrets.mongodb.servicePassword
    systems nisystemsmanagement nisystems systems.secrets.mongodb.servicePassword
    systemsstate nisystemsstate nisystemsstate systemsstate.secrets.mongodb.servicePassword
    tags tags tags tags.secrets.mongodb.servicePassword
    taghistorian taghistorian taghistorian taghistorian.secrets.mongodb.servicePassword
    userdata niuserdata niuserdata userdata.secrets.mongodb.servicePassword
    userservices keyservices keyservice userservices.secrets.mongodb.keyServicePassword
    userservices users userservice userservices.secrets.mongodb.userServicePassword
    webappservices webapps webapps webappservices.secrets.mongodb.servicePassword
    workorder (optional) workorders niworkorder workorder.secrets.mongodb.servicePassword
  4. Déterminez ce qui suit en contactant le support technique de NI.
    • Le nombre d'instances MongoDB pour votre déploiement.
    • Le ou les services qui doivent se connecter à une instance spécifique.
  5. Configurez la ou les chaînes de connexion MongoDB pour votre déploiement. Pour en savoir plus sur la manière de formater les chaînes de connexion, reportez-vous aux tableaux suivants.
    Tableau 17. Étapes de configuration basées sur les étapes de déploiement
    Type de déploiement Étapes de configuration
    Votre déploiement comprend une instance MongoDB.
    1. Ouvrez le fichier systemLink-secrets.yaml.
    2. Définissez global.secrets.mongodb.connection_string avec la valeur de chaîne de connexion appropriée.
    Cette chaîne connecte chaque service à cette instance.
    Votre déploiement comprend plusieurs instances MongoDB.

    Pour chaque service du tableau Paramètres de configuration pour une instance MongoDB, configurez la chaîne de connexion.

    1. Ouvrez le fichier systemlink-values.yaml.
    2. Définissez <service_name>.mongodb.connection_string avec la valeur appropriée pour l'instance MongoDB à laquelle vous voulez que ce service se connecte.
    3. Remplacez <service_name> par la valeur de la colonne Service du tableau Paramètres de configuration pour une instance MongoDB.

    Par exemple, pour configurer la chaîne de connexion Service d'alarme, définissez la valeur alarmservice.mongodb.connection_string. Pour les services qui apparaissent plusieurs fois dans le tableau, comme les userservices, ne définissez la chaîne de connexion qu'une seule fois.

    Remarque SystemLink remplace les éléments de substitution entre chevrons tels que <username>, <password> et <database> de manière dynamique lorsque vous effectuez le déploiement. Vous n'avez pas besoin de remplacer ces éléments de substitution manuellement. Saisissez la chaîne telle qu'elle apparaît, sauf indication contraire.
    Tableau 18. Chaîne de connexion basée sur le type MongoDB
    Type MongoDB Chaîne de connexion
    MongoDB Atlas mongodb+srv://<username>:<password>@my-atlas-cluster.mongodb.net/<database>
    MongoDB Community mongodb://<username>:<password>@my-mongodb-cluster-0,my-mongodb-cluster-1,my-mongodb-cluster-2/<database>?replicaSet=rs0
    MongoDB Community avec un même jeu d'identifiants mongodb://myusername:mypassword@my-mongodb-cluster-0,my-mongodb-cluster-1,my-mongodb-cluster-2/<database>?replicaSet=rs0

    Avec les dispositions suivantes :

    • mon_nom_utilisateur est le nom d'utilisateur pour votre instance MongoDB.
    • mon_mot_de_passe est le mot de passe pour votre instance MongoDB.
  6. Ouvrez systemlink-values.yaml.
  7. Définissez globals.mongodb.install à false.

Choisir un déploiement MongoDB

La plupart des services SystemLink utilisent MongoDB comme base de données principale. Vous pouvez utiliser une instance MongoDB dans le même cluster Kubernetes que votre installation SystemLink Enterprise, ou une instance externe. À partir de la version 2023-10 de SystemLink Enterprise, les services prennent en charge l'utilisation d'une seule instance MongoDB autonome.

Utilisez le tableau suivant pour choisir le déploiement MongoDB qui correspond le mieux à votre scénario d'utilisation.
Tableau 19. Choisir un déploiement MongoDB
Déploiement Quand l'utiliser Détails
MongoDB Atlas Vous souhaitez simplifier la mise en service, le fonctionnement et la sauvegarde de la base de données, et la restauration des opérations. NI vous recommande d'utiliser les indications suivantes pour votre déploiement.
  • Utilisez un cluster dédié.
  • Assurez-vous que chaque réplica dispose de 4 cœurs de processeur et de 32 Go de mémoire.
  • Vérifiez que vous disposez de 512 Go de stockage pour l'instance.
  • Déployez l'instance dans la même région de fournisseur de cloud si votre cluster Kubernetes s'exécute dans le cloud.
Remarque Vous pouvez utiliser les fonctionnalités d'Atlas pour initialiser une instance plus petite et effectuer la mise à l'échelle automatique si nécessaire. Définissez des limites pour éviter que le coût ne dépasse votre budget.
Instance MongoDB autonome telle que MongoDB Enterprise Advanced Vous souhaitez contrôler votre base de données mais un contrôle supplémentaire au niveau de l'entreprise est nécessaire.

NI vous recommande d'utiliser les indications suivantes pour votre déploiement.

  • Utilisez un cluster dédié.
  • Assurez-vous que chaque réplica dispose de 4 cœurs de processeur et de 32 Go de mémoire.
  • Vérifiez que vous disposez de 512 Go de stockage pour l'instance.
MongoDB dans un chart Helm tel que le chart MongoDB Bitnami
  • Vous avez besoin de votre base de données dans le même cluster Kubernetes que votre installation SystemLink Enterprise.
  • Votre organisation peut gérer aisément une instance MongoDB.

Vous pouvez exécuter cette instance sur des nœuds de travail Kubernetes existants ou des nœuds de travail dédiés en utilisant des taints et des tolérances.

NI vous recommande d'utiliser les paramètres personnalisés suivants lors du déploiement. Vous pouvez ajuster les requêtes et les limites pour les adapter aux autres pods sur le nœud de travail Kubernetes.
resources:
  requests:
    cpu: 4
    memory: 32Gi
  limits:
    memory: 32Gi

persistence:
  enabled: true
  accessModes:
    - ReadWriteOnce
  size: 512Gi
  annotations: {}