はじめに
Disaster Recovery(DR) に関するトラブルシューティングを進めるにあたり、
調査に必要な以下の情報を取得していただく手順について説明します。
- GUI 画面キャプチャ
- RCA ログバンドル
- コマンドログ
- スクリプトを用いたステータス情報
事前準備
以降の操作は、TAC からの依頼があった場合にのみ実施いただくことが前提となっております。
また、各種操作を行うには、シェルを bash に切り替える必要があるため、以下の記事を参照いただき、
対応中のサービスリクエスト(SR)の中で Token Response の発行を依頼して、シェルを切り替えてください。
DNAC: magshell (Restricted Shell) の概要と bash 使用手順
https://community.cisco.com/t5/-/-/ta-p/4656679
出力例:
[Saturday Oct 11 14:07:45 UTC] maglev@169.254.6.66 (maglev-master-169-254-6-66)
$ _shell
Please secure authentication via request of a consent token for bash shell-access.
Proceed to generate a challenge? [y/n] : y
Enter authentication time-out(in minutes - max 10080[default 4 days]) : 10080
Generating Challenge.....................................
Challenge String (Please copy everything between the asterisk lines exclusively):
*****************************************************************************************
jeiRMgAAAQUBAAQAAAABAgAEAAAAAAMACAAAAAAAAAAABAAQV/OHYlRyGI+Gu1Hv7BD56QUABAAAJ2AGAARETkFDBwAMTUFHU0hFTExfQ1QyCAALRE4zLUhXLUFQTAoJACRmYWEzYTNhYy0zZmE1LTk5NDQtZWVlZC0zN2Q0MGQ2ZGMzOTE=
*****************************************************************************************
Validate the generated challenge using [_shell -v] command for bash shell-access.
[Saturday Oct 11 14:09:24 UTC] maglev@169.254.6.66 (maglev-master-169-254-6-66)
$ _shell -v aF78QwAAAQUBAAQAAAABAgAEAAAAAAMBYkQ1MkdrSkxQTnUrUWh5SjNwVE51cTNCRVpWRitmdUR1ZC9LSlpsalgzYlpIL1poWDdRYllpaGdJRHl2QStFbXcNCnkvdk82YmRvSGM1dFRxL1ZsUHZ0SFFTbHhUVzFzQmY5MWwwSzE3bzJpeVZwZjdHODFoczRzbGQ3b2xqTCtmOXENCm41Zm5mZnltdWxGOCs2MGNROERvbW0vMFdVcU43V1FZbVNneFpjUFBOc2lDQWVrTlArOGJkM3RudGJnWXJuOGUNCkYrdVE3SkJqR1VYaGNSeTMvbkpEY3h5SStsNTFKUnlDTk82c0lSNWRpL1NVZE12Y1A0YlEyZVVNQnBYQ25KTUgNCkhrbHBkL2xIdlgycGdDMyt0SUFsYzFvWEd6WnFvOHRha241bmNIZThjM1o0U1d5Q0J5QjdMZW5ZemlSMkhHUHINCndmclhoaDlvU1lxK2RHNnlkTnZhdkE9PQ==
Warning! Activity within this shell can jeopardize the functioning of the system!
maglev@maglev-master-169-254-6-66:~$
取得手順
- GUI 画面キャプチャを英語で取得
下記のコンテンツを参考に、GUI を英語に変更ください。
DNAC: DNA Center の GUI 表示言語を変更する方法
https://community.cisco.com/t5/-/-/ta-p/3947978
その後、下記の画面遷移のキャプチャをご取得いただけますでしょうか。
System > Disaster Recovery > Monitoring > Logical
System > Disaster Recovery > Monitoring > Logical > Main Site にマウスオーバー > Main Site Details
System > Disaster Recovery > Monitoring > Physical
System > Disaster Recovery > Monitoring > Event Timeline (エラーイベントについては展開して詳細を表示)
System > Disaster Recovery > Configure
- RCA ログバンドルを取得
- コマンドログの取得
各サイトで下記のコマンド出力を取得します。(それぞれ1行ずつで1つのコマンドとなります)
※Main と Recovery サイトでは、前述の事前準備にある通りシェルを bash に切り替える必要があります。
- Main、Recovery サイトにて
cat /etc/maglev/release-info.yaml
ntpq -p
maglev dr state display
mkdir /data/rca/tmp
cd /data/rca/tmp
magctl service exec disaster-recovery -c consul consul members
magctl service logs -r disaster-recovery -c disasterrecoveryservice > disaster-recovery.log
magctl service logs -r mongodb-replicator > mongodb-replicator.log
magctl service logs -r replication-service > replication-service.log
magctl service logs -r postgres-operator > postgres-operator.log
sudo ipsec status
sudo ipsec statusall
systemctl status ipsec
etcdctl cluster-health
ETCDCTL_API=3 etcdctl get --prefix dr | grep tasks
ETCDCTL_API=3 etcdctl get --prefix dr | grep active
ETCDCTL_API=3 etcdctl get --prefix dr/leader
ETCDCTL_API=3 etcdctl get --prefix dr/state
ETCDCTL_API=3 etcdctl get --prefix dr/main
ETCDCTL_API=3 etcdctl get --prefix dr/recovery
ETCDCTL_API=3 etcdctl get --prefix dr/witness
for key in $(etcdctl ls -r /maglev/config/network_advertisement);do echo -e "$key -> ";etcdctl get $key 2>/dev/null;done
magctl service exec -D -i true mongodb -m mongodb "mongo --quiet --eval \"db = connect('admin', 'admin', cat('/vault/mongodb-admin'));rs.secondaryOk();db = db.getSiblingDB('sys-ops');db.disasterrecovery.find()\""
※ETCDCTL のコマンドは Catalyst Center のバージョンによっては何も出力されない場合がございますが、問題ございません。
※上記で出力された拡張子「.log」のファイルは、WinSCP 等で /data/rca/tmp ディレクトリより回収します。
ファイル転送例:
ローカル端末にて操作し、Catalyst Center 上のファイルをローカル端末に転送
scp -P 2222 maglev@XXX.XXX.XXX.XXX:/data/rca/tmp/*.log .
- Witness にて
docker exec dr-witness consul members
docker ps → <CONTAINER ID> を確認ください
docker logs <CONTAINER ID>
docker exec dr-witness ipsec status
docker exec dr-witness ipsec statusall
- スクリプトによるステータス確認
本ページに添付されている「dr_v3.zip」をダウンロードしてください。
次に、Main、Recovery サイトの /data/rca/tmp ディレクトリに上記ファイルを転送し、
それぞれのサイトで下記の手順でスクリプトを実行ください。
※シェルを bash に切り替える必要があります。
cd /data/rca/tmp
unzip dr_v3.zip
ls -l | grep v3 → dr_v3.sh があることを確認
chmod +x dr_v3.sh
./dr_v3.sh get state
./dr_v3.sh get mongo data dr/state/local
./dr_v3.sh get consul data
./dr_v3.sh state check
※別途 SR 中で入手したスクリプトを利用して、実行時にエラーとなった場合は、
以下コマンドで改行コードの変換(CR+LF→LF) を行った上で再度お試しください。
sed -i 's/\r$//' dr_v3.sh
以上