소개
이 문서에서는 CPS(Cisco Policy Suite)에서 사용자 지정 데이터베이스 조각화 임계값 백분율을 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
참고: CPS CLI에 대한 루트 사용자 액세스 권한이 있는 것이 좋습니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- CPS 20.2
- UCS(Unified Computing System)-B
- MongoDB v3.6.17
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
CPS는 MongoDB를 사용하여 기본 데이터베이스(DB) 구조를 구성합니다.
조각화는 MongoDB의 특성입니다. 이 알림을 통해 MongoDB 프래그먼트화를 사전 예방적으로 모니터링하므로 MongoDB로 인해 더 높은 리소스(디스크 및 메모리) 사용률이 발생하지 않습니다.
CPS는 MongoDB 조각화 백분율이 지정된 값을 초과할 때 SNMP(Simple Network Management Protocol) 경보를 생성합니다.
이 /etc/collectd.d/dbMonitorList.cfg
sessionmgr 가상 컴퓨터(VM)에 있는 파일에는 데이터베이스 목록 및 각 조각화 임계값 백분율이 들어 있습니다.
구성
설정
OpenStack에서 호스팅되는 CPS에 대한 접근 방식
1단계. 클러스터 관리자 VM에서 이 명령을 실행하여 현재 구성 파일의 백업을 생성합니다.
#cp /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg.bkp
2단계. 클러스터 관리자에서 이 명령을 실행하여 sessionmgr VM에서 현재 구성을 가져옵니다(변경 후 비교 및 확인).
#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|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
3단계. 기본 임계값(40)을 권장 값(예: 60)으로 수정합니다. 클러스터 관리자에서 이 명령을 실행합니다.
참고: 이 명령은 모든 DB의 임계값을 변경합니다. 특정 DB에 대한 임계값을 업데이트해야 하는 경우 파일을 수동으로 업데이트합니다.
#sed -i 's/40/60/g' /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg
4단계. 클러스터 관리자의 파일을 비교하여 변경 사항을 검증하려면 이 명령을 실행합니다.
#diff /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg /etc/puppet/modules/qps/templates/collectd_worker/collectd.d/dbMonitorList.cfg.bkp
샘플 출력:
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
5단계. 클러스터 관리자에서 변경 사항을 작성하려면 이 명령을 실행합니다.
[root@installer ~]# /var/qps/bin/build/build_puppet.sh
Copying /etc/puppet to /var/qps/images/puppet.tar.gz...
Creating MD5 Checksum...
[root@installer ~]#
6단계. 클러스터 관리자에서 이 명령을 실행하여 sessionmgr VM의 변경 사항을 적용합니다.
[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 ~]#
7단계. 인형이 완료될 때까지 기다립니다. 클러스터 관리자에서 이 명령을 실행하여 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
VMWare에서 호스팅되는 CPS에 대한 접근 방식
1단계. 업데이트 /var/qps/config/deploy/csv/Configuration.csv
필요한 데이터베이스 이름 및 해당 임계값 백분율이 포함된 클러스터 관리자의 파일 사용자 지정 임계값 백분율 값을 제공하는 형식은 다음과 같습니다(여기서 XX는 백분율의 숫자 값...).예: 60).
session_cache,XX,
sk_cache,XX,
diameter,XX,
spr,XX,
balance_mgmt,XX,
샘플 설정:
session_cache,60,
sk_cache,60,
diameter,60,
spr,60,
balance_mgmt,60,
2단계. 이 명령을 실행하여 /etc/collectd.d/dbMonitorList.cfg
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 ~]#
3단계. 클러스터 관리자에서 이 명령을 실행하여 sessionmgr VM의 변경 사항을 적용합니다.
[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 ~]#
4단계. 인형이 완료될 때까지 기다립니다. 클러스터 관리자에서 이 명령을 실행하여 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
다음을 확인합니다.
구성이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.
sessionmgr VM의 최신 컨피그레이션을 검증하고 2단계의 출력과 비교합니다. 클러스터 관리자에서 이 명령을 실행합니다.
[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 ~]#
문제 해결
이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
이 MongoDB 프래그먼트화 알림은 20.1에 도입되었으며 이전 릴리스에서는 측정되지 않았습니다. 기본적으로 프래그먼트화 임계값은 40%입니다. 이 임계값은 구축 크기, 트래픽 패턴(통화 모델) 및 기타 트래픽 패턴 요인에 따라 변경해야 합니다. 그렇지 않으면 CPS는 원치 않는 데이터베이스 조각화 임계값 위반 알림을 throw하지 않습니다.