Introduction
Ce document décrit comment configurer des pourcentages de seuil de fragmentation de base de données personnalisés dans Cisco Policy Suite (CPS).
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Linux
- CPS
- base de données mongole
Remarque : Cisco recommande que vous disposiez d'un accès utilisateur racine privilégié à l'interface de ligne de commande CPS.
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- CPS 20.2
- Système d'informatique unifiée (UCS)-B
- MongoDB v3.6.17
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
CPS utilise MongoDB pour constituer sa structure de base de données (DB).
La fragmentation est une caractéristique de la MongoDB. Par cette alerte, vous surveillez de manière proactive la fragmentation de MongoDB et évitez ainsi une utilisation possible des ressources plus élevées (disque et mémoire) en raison de MongoDB.
CPS génère une alarme SNMP (Simple Network Management Protocol) lorsque le pourcentage de fragmentation MongoDB dépasse une valeur spécifiée.
Les /etc/collectd.d/dbMonitorList.cfg
Le fichier présent sur les machines virtuelles Sessionmgr contient la liste des bases de données et leurs valeurs de pourcentage de seuil de fragmentation respectives.
Configurer
Configurations
Approche pour CPS hébergé dans OpenStack
Étape 1. À partir de la machine virtuelle Cluster Manager, exécutez cette commande pour créer une sauvegarde du fichier de configuration actuel.
#cp /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg.bkp
Étape 2. Exécutez cette commande à partir de Cluster Manager pour obtenir la configuration actuelle des machines virtuelles Sessionmgr (pour comparer et valider les modifications ultérieures).
#for host in $(hosts-all.sh | grep 'sessionmgr'); do echo checking in $host; ssh $host "cat /etc/collectd.d/dbMonitorList.cfg"; done
Exemple de sortie :
checking in sessionmgr01
session_cache|session|40
sk_cache|secondary_key|40
diameter|endpoints|40
spr|subscriber|40
balance_mgmt|account|40
checking in sessionmgr02
session_cache|session|40
sk_cache|secondary_key|40
diameter|endpoints|40
spr|subscriber|40
balance_mgmt|account|40
Étape 3. Modifiez le seuil par défaut (40) à la valeur recommandée (par exemple, 60). Exécutez cette commande à partir du Gestionnaire de cluster.
Remarque : cette commande modifie le seuil pour toutes les bases de données. Si vous devez mettre à jour le seuil d'une base de données spécifique, mettez à jour le fichier manuellement.
#sed -i 's/40/60/g' /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg
Étape 4. Exécutez cette commande pour comparer les fichiers dans le Gestionnaire de cluster afin de valider la modification.
#diff /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg.bkp
Exemple de sortie :
4c4
< session_cache|session|60
---
> session_cache|session|40
9c9
< sk_cache|secondary_key|60
---
> sk_cache|secondary_key|40
14c14
< diameter|endpoints|60
---
> diameter|endpoints|40
19c19
< spr|subscriber|60
---
> spr|subscriber|40
24c24
< balance_mgmt|account|60
---
> balance_mgmt|account|40
Étape 5. Exécutez cette commande pour générer la modification dans le Gestionnaire de cluster.
[root@installer ~]# /var/qps/bin/build/build_puppet.sh
Copying /etc/puppet to /var/qps/images/puppet.tar.gz...
Creating MD5 Checksum...
[root@installer ~]#
Étape 6. Exécutez cette commande à partir de Cluster Manager pour appliquer la modification dans les machines virtuelles Sessionmgr.
[root@installer ~]# for host in $(hosts-all.sh | grep 'sessionmgr'); do echo starting vm-init in $host; ssh $host "/etc/init.d/vm-init > /dev/null 2>&1 &"; done
starting vm-init in sessionmgr01
starting vm-init in sessionmgr02
[root@installer ~]#
Étape 7. Attendez que la marionnette soit terminée. Exécutez cette commande à partir du Gestionnaire de cluster pour afficher la progression de la configuration Puppet.
#for host in $(hosts-all.sh | grep 'sessionmgr' | tail -1); do echo checking in $host; ssh $host "tail -f /var/log/puppet.log"; done
2022-11-08 06:32:23 +0000 Service[whisper](provider=cps) (info): whisper will be managed using monit.
2022-11-08 06:32:23 +0000 Service[whisper](provider=cps) (info): whisper will be managed using monit.
2022-11-08 06:32:23 +0000 /Stage[main]/Whisper/Service[whisper] (notice): Triggered 'refresh' from 1 event
2022-11-08 06:32:27 +0000 Stage[main] (info): Unscheduling all events on Stage[main]
2022-11-08 06:32:28 +0000 Puppet (notice): Applied catalog in 83.52 seconds
[Tue Nov 08 06:32:30 +0000 2022] * Completed puppet configuration for dc1-sessionmgr02...
[Tue Nov 08 06:32:30 +0000 2022] - NTP sync started, check the logs in vm-init.log
Approche pour CPS hébergé dans VMWare
Étape 1. Mettre à jour /var/qps/config/deploy/csv/Configuration.csv
dans le Gestionnaire de clusters avec le nom de base de données requis et leur valeur de seuil respective en pourcentage. Le format pour fournir la valeur de pourcentage de seuil personnalisée est le suivant (où XX est la valeur numérique du pourcentage...par exemple ; 60).
session_cache,XX,
sk_cache,XX,
diameter,XX,
spr,XX,
balance_mgmt,XX,
Exemple de configuration :
session_cache,60,
sk_cache,60,
diameter,60,
spr,60,
balance_mgmt,60,
Étape 2. Exécutez ces commandes pour mettre à jour le /etc/collectd.d/dbMonitorList.cfg
afin qu'il ait les nouvelles valeurs de seuil du fichier Configuration.csv :
[root@installer ~]# /var/qps/install/current/scripts/import/import_deploy.sh
Filenames that will be processed
AdditionalHosts.csv Configuration.csv DBConfigServer.csv Definitions.csv Hosts.csv ReplicationSets.csv SessionCache.csv VLANs.csv VMSpecification.csv SecureConfig.csv VipProxyConfiguration.csv DSCPConfig.csv CriticalFiles.csv
The CSV files in /var/qps/config/deploy/csv are converted to json files in /var/qps/config/deploy/json..
build the hosts file to /var/www/html/hosts...
build the /etc/hosts file from the json configuation... /etc/hosts is backed to /etc/hosts.back
Skipping backup of '/etc/hosts' -- no changes detected.
Redis by default disabled -DenableQueueSystem=false in /etc/broadhop/qns.conf
Removing feature configs moved to core
Removing ws feature from pb and pcrf feature file
Building /etc/broadhop...
Copying to /var/qps/images/etc.tar.gz...
Creating MD5 Checksum...
Generating /etc/broadhop/servers.all
Rebuilding facts for: 'installer' (aka 'installer')
Creating md5sum for hosts file to validate later
Rebuilding facts for: 'dc1-lb01' (aka 'lb01')
Rebuilding facts for: 'dc1-sessionmgr01' (aka 'sessionmgr01')
Rebuilding facts for: 'dc1-lb02' (aka 'lb02')
Rebuilding facts for: 'dc1-qns01' (aka 'qns01')
Rebuilding facts for: 'dc1-qns02' (aka 'qns02')
Rebuilding facts for: 'dc1-pcrfclient01' (aka 'pcrfclient01')
Rebuilding facts for: 'dc1-sessionmgr02' (aka 'sessionmgr02')
Rebuilding facts for: 'dc1-pcrfclient02' (aka 'pcrfclient02')
No file for VipProxyConfiguration found
Copying /etc/puppet to /var/qps/images/puppet.tar.gz...
Creating MD5 Checksum...
[root@installer ~]#
Étape 3. Exécutez cette commande à partir de Cluster Manager pour appliquer la modification dans les machines virtuelles Sessionmgr.
[root@installer ~]# for host in $(hosts-all.sh | grep 'sessionmgr'); do echo starting vm-init in $host; ssh $host "/etc/init.d/vm-init > /dev/null 2>&1 &"; done
starting vm-init in sessionmgr01
starting vm-init in sessionmgr02
[root@installer ~]#
Étape 4. Attendez que la marionnette soit terminée. Exécutez cette commande à partir du Gestionnaire de cluster pour afficher la progression de la configuration Puppet.
#for host in $(hosts-all.sh | grep 'sessionmgr' | tail -1); do echo checking in $host; ssh $host "tail -f /var/log/puppet.log"; done
2022-11-08 06:48:34 +0000 Service[whisper](provider=cps) (info): whisper will be managed using monit.
2022-11-08 06:48:34 +0000 Service[whisper](provider=cps) (info): whisper will be managed using monit.
2022-11-08 06:48:34 +0000 /Stage[main]/Whisper/Service[whisper] (notice): Triggered 'refresh' from 1 event
2022-11-08 06:48:39 +0000 Stage[main] (info): Unscheduling all events on Stage[main]
2022-11-08 06:48:40 +0000 Puppet (notice): Applied catalog in 93.27 seconds
[Tue Nov 08 06:48:42 +0000 2022] * Completed puppet configuration for dc1-sessionmgr02...
[Tue Nov 08 06:48:42 +0000 2022] - NTP sync started, check the logs in vm-init.log
Vérifier
Utilisez cette section pour confirmer que votre configuration fonctionne correctement.
Validez la dernière configuration dans les machines virtuelles Sessionmgr et comparez-la avec le résultat de l'étape 2. Exécutez cette commande à partir du Gestionnaire de cluster.
[root@installer ~]# for host in $(hosts-all.sh | grep 'sessionmgr'); do echo checking in $host; ssh $host "cat /etc/collectd.d/dbMonitorList.cfg"; done
checking in sessionmgr01
session_cache|session|60
sk_cache|secondary_key|60
diameter|endpoints|60
spr|subscriber|60
balance_mgmt|account|60
checking in sessionmgr02
session_cache|session|60
sk_cache|secondary_key|60
diameter|endpoints|60
spr|subscriber|60
balance_mgmt|account|60
[root@installer ~]#
Dépannage
Cette section fournit des informations que vous pouvez utiliser pour dépanner votre configuration.
Cette alerte de fragmentation MongoDB a été introduite dans la version 20.1 et n'a pas été mesurée dans les versions précédentes. Par défaut, le seuil de fragmentation est de 40 %. Cette valeur de seuil doit être modifiée en fonction de la taille de votre déploiement, des modèles de trafic (modèles d'appel) et d'autres facteurs de modèles de trafic. Sinon, CPS émet des alertes de dépassement de seuil de fragmentation de base de données non autorisé/non souhaité.