目录

简介

先决条件

要求

使用的组件

背景信息

问题

在Sessionmgr中恢复Mongod实例

简介

本文档介绍如何排除由于DATA_PATH空间利用率增加而导致的思科策略套件(CPS)会话管理器中的主实例故障。

先决条件

要求

Cisco 建议您了解以下主题：

- Linux

- CPS

- MongoDB

使用的组件

本文档中的信息基于以下软件和硬件版本：

- CPS 20.2

- MongoDB v3.6.17

- UCS-B

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

CPS使用MongoDB，其中mongod进程在会话管理器虚拟机(VM)上运行，以构成其基本数据库结构。

多个mongod实例在会话管理器上运行，并且每个实例都分配了不同的端口号。这些mongod实例将参与各种副本集。

问题

无论何时，由于其关联的DATA PATH的DATA_PATH空间消耗增加而停止任何特定单一实例，您都会在该会话管理器的诊断中注意到相同的情况。到特定端口的连接失败，/var/data/sessions.X分区的利用率为100%。因此，该单一实例将进入各自副本集中的OFF-LINE状态。随后，其在该副本集中的参与状态变为“未知”。

提供诊断中的示例错误。输入 diagnostics.sh 命令，以检查mongod和副本集的当前状态。

Could not connect to port 27718 on sessionmgr02 (set02)...[FAIL]

Disk usage on sessionmgr02...[FAIL]

Disk usage is above critical threshold (97%) on sessionmgr02.

Results of: ssh root@sessionmgr02 -x 'df -hP -x iso9660'

-----------------------------------

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 95G 28G 62G 32% /

tmpfs 48G 0 48G 0% /dev/shm

tmpfs 57G 0 57G 0% /var/data/sessions.1

tmpfs 12G 12G 0 100% /var/data/sessions.2

-----------------------------------

|---------------------------------------------------------------------------------------------|

| BALANCE:set02 |

| Status via arbitervip:27718 sessionmgr01:27718 |

| Member-1 - 27718 : - UNKNOWN - sessionmgr02 - OFF-LINE - 19003 days - 2 |

| Member-2 - 27718 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 3 |

| Member-3 - 27718 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

|---------------------------------------------------------------------------------------------|

在Sessionmgr中恢复Mongod实例

本节详细介绍在会话管理器中由于DATA_PATH空间消耗增加而关闭的mongod实例恢复过程。

在开始此过程之前，您必须具有访问以下内容的权限：

- 对CPS CLI的根访问

- “qns-svn”用户对CPS GUI的访问 — 策略生成器和CPS中心

此处提供了sessionmg02和端口27718的过程，这是set02的一部分。

1. 登录到相应的会话管理器。

2. 输入此命令以标识存储该特定set02数据的分区。

[root@dc1-sessionmgr02 ~]# cat /etc/broadhop/mongoConfig.cfg | grep -A6 set02 | grep "DATA_PATH"

ARBITER_DATA_PATH=/var/data/sessions.2

DATA_PATH=/var/data/sessions.2

3. 输入此命令以验证 aido_client 进程是否存在。

[root@dc1-sessionmgr02 ~]# monsum

Monit 5.26.0 uptime: 11d 2h 9m

┌─────────────────────────────────┬────────────────────────────┬───────────────┐

│ Service Name │ Status │ Type │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ dc1-sessionmgr02 │ OK │ System │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ whisper │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ snmpd │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ memcached │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ collectd │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ auditrpms.sh │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ aido_client │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ primary_db_frag │ OK │ Program │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ cpu_load_monitor │ OK │ Program │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ cpu_load_trap │ OK │ Program │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ gen_low_mem_trap │ OK │ Program │

└─────────────────────────────────┴────────────────────────────┴───────────────┘

4. 如果 aido_client 进程存在，请输入 monit stop aido_client 命令以停止它。

5. 输入此命令以验证各个单实例进程是否仍处于活动状态。

[root@dc1-sessionmgr02 ~]# ps -ef | grep 27718

root 12292 11114 0 02:05 pts/0 00:00:00 grep --color=auto 27718

root 19620 1 0 2021 ? 01:36:51 /usr/bin/mongod --ipv6 --syncdelay 1 --slowms 500 --storageEngine

mmapv1 --bind_ip_all --port 27718 --dbpath=/var/data/sessions.2 --replSet set02 --fork --pidfilepath

/var/run/sessionmgr-27718.pid --oplogSize 5120 --logpath /var/log/mongodb-27718.log --logappend --quiet

[root@dc1-sessionmgr02 ~]#

6. 如果mongod实例仍处于活动状态，请输入此命令以停止它。

[root@dc1-sessionmgr02 ~]# /etc/init.d/sessionmgr-27718 stop

Stopping sessionmgr-27718 (via systemctl): [ OK ]

[root@dc1-sessionmgr02 ~]#

7. 导航至步骤1中接收的DATA_PATH。

[root@dc1-sessionmgr02 ~]# cd /var/data/sessions.2

[root@dc1-sessionmgr02 sessions.2]# ls -lrt

total 6616100

-rw------- 1 root root 16777216 Jun 22 2018 admin.ns

-rw------- 1 root root 67108864 Jun 22 2018 admin.0

-rw------- 1 root root 69 Nov 10 07:27 storage.bson

-rw------- 1 root root 16777216 Nov 10 07:27 vouchers.ns

-rw------- 1 root root 67108864 Nov 10 07:27 vouchers.0

-rw------- 1 root root 2146435072 Nov 10 07:27 local.2

drwx------ 2 root root 4096 Nov 10 07:27 local

-rw------- 1 root root 67108864 Nov 10 07:27 local.0

-rw------- 1 root root 16777216 Jan 7 14:38 config.ns

-rw------- 1 root root 67108864 Jan 7 14:38 config.0

-rw------- 1 root root 16777216 Jan 11 02:06 local.ns

-rw------- 1 root root 2146435072 Jan 11 02:06 local.1

drwx------ 2 root root 4096 Jan 11 02:06 diagnostic.data

-rw------- 1 root root 2146435072 Jan 11 02:06 local.3

-rw------- 1 root root 0 Jan 11 02:07 mongod.lock

drwx------ 2 root root 4096 Jan 11 02:08 journal

[root@dc1-sessionmgr02 sessions.2]#

8. 输入命令 rm -rf * 以清除DATA_PATH。

9. 输入此命令以启动mongod实例。此命令需要几分钟才能完成。

[root@dc1-sessionmgr02 ~]# /etc/init.d/sessionmgr-27718 start

Starting sessionmgr-27718 (via systemctl): [ OK ]

[root@dc1-sessionmgr02 ~]#

10. 如果您已阻止 aido_client 流程，输入 monit start adio_client 命令以再次启动。

11. 输入 diagnostics.sh 命令，以确认各个主实例已恢复并在副本集中变为联机。

|---------------------------------------------------------------------------------------------|

| BALANCE:set02 |

| Status via arbitervip:27718 sessionmgr01:27718 sessionmgr02:27718 |

| Member-1 - 27718 : - SECONDARY - sessionmgr02 - ON-LINE - 0 sec - 2 |

| Member-2 - 27718 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 3 |

| Member-3 - 27718 : XX.XX.XX.XX - ARBITER - arbitervip - ON-LINE - -------- - 0 |

|---------------------------------------------------------------------------------------------|