【vRLI】ログデータのアーカイブについて

アーカイブの動き

ログデータはバケットに保存される。

バケットに保存されるログのサイズがバケットの容量(500MB)に達すると、バケットは読み取り専用(シール済み)としてマークされ、新しいメッセージ用に新しいバケットが作成される。

そしてアーカイブが有効になっている場合、完全なバケットのコピーがNFS共有に書き込まれ、このプロセスはLog Insightがストレージを使い果たすまで繰り返される。

アーカイブを有効にしておらず、複数バケットが存在する状態で有効にした場合、順次NFSアーカイブが作成される。

ストレージ容量を使い果たした場合、最も古いバケットは削除され新しいバケットのためのスペースが確保される。

NFSにコピーされているアーカイブコピーはそのまま残る。

インデックスパーティションとは

インデックスパーティションを利用することでログの分類が可能となり、アーカイブの有無や異なる保持期間、アーカイブ場所をログ分類毎に設定できるようになる。

デフォルトでは、「デフォルト」パーティションのみが存在する。

フィルタはフィールドの値に対して設定できる。

ログのフィールドの値は以下で確認できる。

フィルタはワイルドカードを利用した設定もできる。

↓ログの確認

インデックスパーティションの動き

以下のように、GreenとOrangeといったパーティションを作成した場合、ログ分類の挙動は以下のようになる。

①Greenパーティションのフィルタに当てはまればログを格納

②Orangeパーティションのフィルタに当てはまればログを格納

③Defaultパーティションにログを格納

パーティションはアルファベット順にチェックされるため、Green→Orangeといった順番でチェックされる。

また、パーティション作成前のログについてのチェックは行われないため、パーティション作成後にフィルター条件にマッチする過去ログが移動することはない。

※翻訳元

vRealize Log Insight Index Partitions and Variable Retention Deep Dive – VMware Cloud Management

【vSphere】アラーム環境変数

アラーム環境変数とは

vCenterにおけるアラームは以下の変数を用いてスクリプトへ渡すことができる

※出典

https://docs.vmware.com/jp/VMware-vSphere/6.5/com.vmware.vsphere.monitoring.doc/GUID-B8DF4E10-89E3-409D-9111-AE405B7E5D2E.html

アラーム環境変数の利用例

・アラーム設定

デフォルトで定義されている「ホストの接続と電源状態」にて、"/root/test.sh {targetName}"を実行するように設定

スクリプト

#!/bin/bash
SERVER=$1

echo "echo "`date "+%Y-%m-%d %H:%M:%S" ` $SERVER" disconnected" >> /tmp/out.txt

・出力

# cat /tmp/out.txt
echo 2023-11-16 03:05:03 24-esxi-03.env.lab disconnected

・各種変数の出力例

・eventDescription
Alarm Host connection and power state on

・targetName
24-esxi-03.env.lab

・alarmName
changed from Green to Red 24-esxi-03.env.lab alarm.HostConnectionStateAlarm

・triggeringSummary
State is equal to Not responding AND State is equal to Unknown

・declaringSummary
(([Red state Is equal to notResponding] AND [Red state Not equal to standBy]))

・oldStatus
Normal

・newStatus
Critical

・target
HostSystem:host-18

【Avi】コントローラークラスターについて

Aviはシングルノード展開と、3ノードのコントローラークラスター構成をとることができる。

シングルノードにおいては1つのノードで実行される、管理機能と分析データの収集と処理が以下のように3ノードで分散実行されるようになる。

 プライマリノード:管理機能を実行

 フォロワーノード:分析データの収集

ハートビート

コントローラーノードは、TCPポート22を使用して暗号化されたSSHトンネルを介して、クラスター内の他のAviコントローラーノードに定期的にハートビートメッセージを送信する

ハートビート間隔は10秒であり、連続して4つのハートビートにしパイした場合ノードがダウンしているとみなされる

障害時の挙動

1ノード障害時は残り2ノードにてサービスを継続する

障害ノードがプライマリノードであった場合は新規プライマリノードを選出する

その選出プロセスには約50~60秒かかり、その間データ機には影響はないが、新規VIP作成などの操作はできなくなる

そして、2ノード障害時はクラスタ全体がダウンする。

※関連

moukuto.hatenablog.com

moukuto.hatenablog.com

※参考リンク

High Availability for Avi Controllers

【Avi】コントローラークラスターのノード障害時の挙動とリストア方法

障害前の状態

1ノード障害

障害対象ノード:リーダーノード(172.16.20.15)

1.リーダーノードを強制停止

数分後にクラスターIPへ再接続可能となり、以下のようにリーダーノードが変更されていることが確認できる

2.停止ノード(172.16.20.15)を削除

3.新規ノード(172.16.20.18)をデプロイ

アクセスできることを確認

4.クラスターのノードIPを変更

Processingへ変更されることを確認

数分待つと、以下のように正常状態となる

2ノード障害

障害対象ノード:リーダーノード(172.16.20.16)、フォロワーノード(172.16.20.18)

1.対象ノードを強制停止

クラスターIPにも、RIP(172.16.20.17)にもGUIアクセスができない

フォロワーの2ノードを停止した場合も同じ挙動となる

→以下リンクにて2ノード停止時は稼働しないとの記載あり

High Availability for Avi Controllers

その場合、正常に稼働するコントローラーノードをシングルノークラスターに変換することでアクセス可能になる

2.シングルノークラスターへの変換

admin@172-16-20-17:~$ sudo /opt/avi/scripts/recover_cluster.py
[sudo] password for admin:

This script will remove Cluster configuration and make this Controller a standalone node. Use this script ONLY if the other Controllers are POWERED OFF or not accessible.

WARNING: Please make sure other Controllers in this cluster are either POWERED OFF, DELETED or DISCONNECTED from the network.

Would you like to continue? (Enter yes or no): yes

~~省略~~

The controller services on this VM are now starting; the controller should be ready in a minute or two...

3.障害ノードを削除

4.2ノードを新規デプロイ

5.クラスター構成

以下リンクのようにクラスターIPとフォロワーノードを設定

【Avi】コントローラークラスターの構成 - いんふらブログ

正常に構成されたことを確認

※または障害状況により、もしアクセスできる場合は以下にて対応可能か

1.クラスターIPとフォロワーノードを削除してSAVE

172.16.20.17にてクラスターIPや自分以外のノードが表示されないことを確認

2.停止ノードを削除

3.2ノード(172.16.20.15,172.16.20.16)を新規デプロイ

4.クラスター構成

3ノード障害

1.3ノードを削除

2.3ノードを新規デプロイ

3.リーダーノードにて、ログインできるようにアカウント作成のみを実施

※障害時にリーダーノードであったノードで行う必要はなく、リーダーノードとしたいノードで行えば問題ない

4.リーダーノードへバックアップjsonを配置

5.①.リーダーノードのみ復旧させる場合

admin@172-16-20-17:/tmp$ sudo /opt/avi/scripts/restore_config.py --config avi_conf.json --passphrase VMware1! --do_no
t_form_cluster DO_NOT_FORM_CLUSTER --flushdb
[sudo] password for admin:
Restoring config will duplicate the environment of the config. If the environment is active elsewhere there will be conflicts.
                Please confirm if you still want to continue (yes/no)yes
Restoring config as the consent was given.
Tue Oct 31 08:05:46 2023 cmd: /opt/avi/python/bin/portal/manage.py import_configuration --file avi_conf.json --passphrase VMware1! --check-passphrase
Tue Oct 31 08:05:50 2023 cmd: python3 /opt/avi/python/bin/upgrade/config_migrator.py --config-file /tmp/avi_conf.json.updt --output-file /tmp/avi_conf.json.mig
======== Starting Import Configuration ========
Tue Oct 31 08:06:00 2023 Stopping process supervisor

~~省略~~

======== Configuration Restored for 1-node cluster ========

正常に復旧したことを確認

初回デプロイ時と同様の手順にてクラスタを作成することで復旧完了

5-②.3ノードのクラスタ復旧まで実施する場合

admin@172-16-20-17:/tmp$ sudo /opt/avi/scripts/restore_config.py --config avi_conf.json --passphrase VMware1! --flushdb --vip 172.16.20.14 --followers 172.16.20.15 172.16.20.16
[sudo] password for admin:
Restoring config will duplicate the environment of the config. If the environment is active elsewhere there will be conflicts.
                Please confirm if you still want to continue (yes/no)yes
Restoring config as the consent was given.
Tue Oct 31 08:22:20 2023 cmd: /opt/avi/python/bin/portal/manage.py import_configuration --file avi_conf.json --passphrase VMware1! --check-passphrase
Tue Oct 31 08:22:24 2023 cmd: python3 /opt/avi/python/bin/upgrade/config_migrator.py --config-file /tmp/avi_conf.json.updt --output-file /tmp/avi_conf.json.mig
======== Starting Import Configuration ========
Tue Oct 31 08:22:35 2023 Stopping process supervisor

~~省略~~

======== Configuration Restored for 3-node cluster ========

正常に復旧したことを確認

・参考資料

Changing Avi Controller Cluster Configuration

Backup and Restore of Avi Vantage Configuration

Recover a Non-Operational Controller Cluster

【Avi】コントローラークラスターの構成

Aviコントローラークラスターを構成するためには、3台のコントローラーをデプロイする必要がある。

3台のコントローラーは、1台のリーダーノードと2台のフォロワーノードに分かれる。

以下の環境を構築する。

バージョン:22.1.1

コントローラーIP:172.16.20.15~17

vCenterからのデプロイ

[OVFテンプレートのデプロイ]からコントロールパネル3台をデプロイ

全てを起動し、「https://${IP}」にて接続できることを確認

Avi(リーダーノード)における設定

パスワードを指定し、adminユーザーを作成

DNSなど初期設定を実施

Administration→Controller→Nodesから、クラスターを設定

クラスターIPを入力

クラスターノードを追加 ※IPを入力してSAVE

全ての入力情報が正しいことを確認して、SAVE

設定画面に戻るとノードが増えてはいないが、[Processing]になっていることが確認できる

数分経つと以下画面へ遷移

完了後、クラスターIPからもアクセス可能であることが確認できる

※ その他

・証明書

デフォルト証明書では以下のようにVCD登録時にエラーとなる。

そのため、VCDからの接続のためには証明書の変更が必要

Administrator→Settings→Access Settingから編集

既存証明書を2つとも削除

[Create Certificate]から新規証明書を作成

名前、コモンネーム、SANを入力しSAVE

作成した証明書が選択されていることを確認し、Save

正常にVCDから登録されることを確認

・参考資料

Deploying an Avi Controller Cluster

【VMware Cloud Director】10.4.2.2からの新規機能

VMware Cloud Director 10.4.2.2 リリース ノート

仮想マシンの自動生成パスワードの長さを変更できるようになった

デフォルトでは8桁のパスワードが生成される

例:パスワードを10桁へ変更

1.設定変更

root@vcd [ ~ ]# /opt/vmware/vcloud-director/bin/cell-management-tool manage-config -n AdminPasswordLength -v 10
New property being stored: Property "AdminPasswordLength" has value "10"
root@vcd [ ~ ]#

※DBでの確認

vcloud=#
vcloud=# select * from config where  name = 'AdminPasswordLength';
 config_id |  cat   |        name         | value | sortorder |         timestamp          | is_hidden
-----------+--------+---------------------+-------+-----------+----------------------------+-----------
      3361 | vcloud | AdminPasswordLength | 10    |         0 | 2023-10-30 01:41:01.273+00 | f
(1 row)

vcloud=#

2.VM停止

3.VM起動

4.確認

※参考手順

VMware Cloud Director でゲスト OS カスタマイズが有効な仮想マシンの自動生成パスワードの長さを構成

「adminPasswordLength」となっておりこれでは機能せず、1文字目が大文字である必要がある。

【vSphere】vmxファイルの更新

仮想マシンの設定ファイルである filename.vmxの更新方法

vCenterからの更新

例:cloud.uuidを削除

VMを右クリック→「Edit Settings」→「Advanced」→「EDIT CONFIGURATION」

cloud.uuidの値を空欄にして保存

確認

変更前
grep cloud test01.vmx
cloud.uuid = "f451570b-3c4e-4567-98bc-1efcaa7c142c"

変更後
grep cloud test01.vmx
※出力なし

ESXiからの更新

例:cloud.uuidの値を空欄にして保存

vmxへ追記
vi test01.vmx

確認
grep cloud test01.vmx
cloud.uuid = "f451570b-3c4e-4567-98bc-1efcaa7c142c"

vCenterから確認

cloud.uuidが追記されたことが反映されていない

ESXiにおける変更を反映

[root@23-esxi-01:~] vim-cmd vmsvc/getallvms | grep test01
4      test01                                      [share] test01/test01.vmx                                                                         centos8_64Guest       vmx-19                                                                                                                                                                                                                                                                                                                                                                                                                        
[root@23-esxi-01:~]
[root@23-esxi-01:~] vim-cmd vmsvc/reload 4
[root@23-esxi-01:~]

vCenterから再確認