Introducción
Este documento describe cómo configurar porcentajes de umbral de fragmentación de base de datos personalizados en Cisco Policy Suite (CPS).
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
Nota: Cisco recomienda que tenga acceso de usuario root con privilegios a CPS CLI.
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- CPS 20.2
- Unified Computing System (UCS)-B
- MongoDB v3.6.17
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
CPS utiliza MongoDB para constituir su estructura de base de datos básica (DB).
La fragmentación es una característica de MongoDB. Con esta alerta, usted monitorea proactivamente la fragmentación de MongoDB y así evita una posible mayor utilización de recursos (disco y memoria) debido a MongoDB.
CPS genera una alarma de protocolo simple de administración de red (SNMP) cuando el porcentaje de fragmentación de MongoDB supera un valor especificado.
/etc/collectd.d/dbMonitorList.cfg
El archivo presente en las máquinas virtuales (VM) de sessionmgr contiene la lista de bases de datos y sus respectivos valores porcentuales de umbral de fragmentación.
Configurar
Configuraciones
Enfoque para CPS alojado en OpenStack
Paso 1. Desde la VM del Administrador de clústeres, ejecute este comando para crear una copia de seguridad del archivo de configuración actual.
#cp /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg.bkp
Paso 2. Ejecute este comando desde el Administrador de clústeres para obtener la configuración actual de las VM de sessionmgr (para comparar y validar después del cambio).
#for host in $(hosts-all.sh | grep 'sessionmgr'); do echo checking in $host; ssh $host "cat /etc/collectd.d/dbMonitorList.cfg"; done
Ejemplo de resultado
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
Paso 3. Modifique el umbral predeterminado (40) con el valor recomendado (por ejemplo, 60). Ejecute este comando desde el Administrador de clústeres.
Nota: Este comando cambia el umbral para todas las bases de datos. Si el requisito es actualizar el umbral para una base de datos específica, actualice el archivo manualmente.
#sed -i 's/40/60/g' /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg
Paso 4. Ejecute este comando para comparar los archivos del Administrador de clústeres y validar el cambio.
#diff /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg.bkp
Ejemplo de resultado
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
Paso 5. Ejecute este comando para generar el cambio en el Administrador de clústeres.
[root@installer ~]# /var/qps/bin/build/build_puppet.sh
Copying /etc/puppet to /var/qps/images/puppet.tar.gz...
Creating MD5 Checksum...
[root@installer ~]#
Paso 6. Ejecute este comando desde el Administrador de clústeres para aplicar el cambio en las VM de 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 ~]#
Paso 7. Esperar a que el títere se complete. Ejecute este comando desde el Administrador de clústeres para ver el progreso de la configuración de títeres.
#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
Enfoque para CPS alojado en VMWare
Paso 1. Actualice el /var/qps/config/deploy/csv/Configuration.csv
en el Administrador de clústeres con el nombre de base de datos necesario y su respectivo valor porcentual de umbral. El formato para proporcionar el valor de porcentaje de umbral personalizado es el siguiente (donde XX es el valor numérico de porcentaje...por ejemplo; 60).
session_cache,XX,
sk_cache,XX,
diameter,XX,
spr,XX,
balance_mgmt,XX,
Configuración de ejemplo:
session_cache,60,
sk_cache,60,
diameter,60,
spr,60,
balance_mgmt,60,
Paso 2. Ejecute estos comandos para actualizar el /etc/collectd.d/dbMonitorList.cfg
para que tenga los nuevos valores de umbral del archivo 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 ~]#
Paso 3. Ejecute este comando desde el Administrador de clústeres para aplicar el cambio en las VM de 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 ~]#
Paso 4. Esperar a que el títere se complete. Ejecute este comando desde el Administrador de clústeres para ver el progreso de la configuración de títeres.
#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
Verificación
Utilize esta sección para confirmar que su configuración funcione correctamente.
Valide la configuración más reciente en las VM de sessionManager y compárela con el resultado del paso 2. Ejecute este comando desde el Administrador de clústeres.
[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 ~]#
Troubleshoot
En esta sección se brinda información que puede utilizar para resolver problemas en su configuración.
Esta alerta de fragmentación MongoDB se introdujo en 20.1 y no se midió en versiones anteriores. De forma predeterminada, el valor de umbral de fragmentación es 40%. Este valor de umbral debe modificarse en función del tamaño de implementación, los patrones de tráfico (modelos de llamadas) y otros factores de patrones de tráfico. De lo contrario, CPS emite alertas de no fragmentación de base de datos no deseada o con umbral de fragmentación infringido.