ACI-Vigilante で Cisco ACI の設定変更イベントをリアルタイムでモニタする
ACI-Vigilante を使うと Cisco ACI 上で設定関連のイベント(作成/変更/削除等)をリアルタイムでモニタ出来るようになります。
Python3 系のインストール
公式ページには以下と書かれています。
Python 2.7 or Python3.3 or above.
しかし、Python2.7 で ACI-Vigilante を実行するとエラーになってしまいます。 そこで Python3 系をインストールしておきます。 EPEL 上には 3.4 系しか無かったので、今回は IUS Community Project から 3.6 系をインストールします。 ACI-Vigilante 自体は 3.4 系でも 3.6 系でも動作したので、お好みのリポジトリからインストールすれば良いと思います。
| yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum -y install gcc python36u python36u-devel python36u-pip python36u-setuptools
|
ACI-Vigilante は acitoolkit に依存している為、先に acitoolkit をインストールしておきます。
| cd ~
git clone https://github.com/datacenter/acitoolkit
cd acitoolkit
python3.6 setup.py install
|
ACI-Vigilante のダウンロード
ACI-Vigilante を GitHub からクローンします。
| cd ~
git clone https://github.com/datacenter/aci-vigilante
cd aci-vigilante/
|
資格情報の修正
acitoolkit を使って ACI へログインする情報を aci-vigilante/credentials.py
に保存します。 デフォルトだと credentials.py
の中身は以下のようになっています。 URL
や LOGIN
、PASSWORD
等の情報を自分の環境に合わせて修正します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | ################################################################################
# _ ____ ___ ____ ____ _ _ _ _ #
# / \ | _ \_ _/ ___| / ___|_ __ ___ __| | ___ _ __ | |_(_) __ _| |___ #
# / _ \ | |_) | | | | | | '__/ _ \/ _` |/ _ \ '_ \| __| |/ _` | / __| #
# / ___ \| __/| | |___ | |___| | | __/ (_| | __/ | | | |_| | (_| | \__ \ #
# /_/ \_\_| |___\____| \____|_| \___|\__,_|\___|_| |_|\__|_|\__,_|_|___/ #
# #
# == APIC Credentials File == #
################################################################################
# APIC URL and access credentials
URL="https://192.168.0.1"
LOGIN="admin"
PASSWORD="password"
|
ACI-Vigilante を実行し、ACI の設定変更をモニタする
ここまで用意出来れば、後は ACI-Vigilante を実行するだけです。 資格情報に問題が無ければ以下のように表示され、ACI の設定変更イベント待ちの状態になります。
| # python3.6 aci-vigilante.py
_ ____ ___ __ ___ _ _ _
/ \ / ___|_ _| \ \ / (_) __ _(_) | __ _ _ __ | |_ ___
/ _ \| | | |____\ \ / /| |/ _` | | |/ _` | '_ \| __/ _ \
/ ___ \ |___ | |_____\ V / | | (_| | | | (_| | | | | || __/
/_/ \_\____|___| \_/ |_|\__, |_|_|\__,_|_| |_|\__\___|
|___/
== Configuration Change Monitoring Tool ==
[+] Successfully connected to https://192.168.0.1
[+] Waiting for events...
|
この状態で TenantA
というテナントを作成すると、ACI-Vigilante に以下のように表示されます。
| [+] monRtTenantMonPol:uni/tn-common/monepg-default/rtfvTenantMonPol-[uni/tn-Tenant1] was created
[+] fvTenant:uni/tn-Tenant1 was created
[+] fvTenant:uni/tn-Tenant1 was modified
|
ACI-Vigilante をデバッグモードで起動する
「ACI-Vigilante が上手く起動しない」等の場合はデバッグモードでトラブルシューティングします。 デバッグモードで起動するには --debug yes
オプションを指定します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | # python3.6 aci-vigilante.py --debug yes
_ ____ ___ __ ___ _ _ _
/ \ / ___|_ _| \ \ / (_) __ _(_) | __ _ _ __ | |_ ___
/ _ \| | | |____\ \ / /| |/ _` | | |/ _` | '_ \| __/ _ \
/ ___ \ |___ | |_____\ V / | | (_| | | | (_| | | | | || __/
/_/ \_\____|___| \_/ |_|\__, |_|_|\__,_|_| |_|\__\___|
|___/
== Configuration Change Monitoring Tool ==
[+] Successfully connected to https://192.168.0.1
[D] Subscribing to '/api/mo/uni/tn-common.json?query-target=subtree&subscription=yes'
[D] Subscribing to '/api/mo/uni/tn-infra.json?query-target=subtree&subscription=yes'
[D] Subscribing to '/api/mo/uni/tn-mgmt.json?query-target=subtree&subscription=yes'
[D] Subscribing to '/api/mo/uni/tn-test-saito.json?query-target=subtree&subscription=yes'
[+] Waiting for events...
[+] monRtTenantMonPol:uni/tn-common/monepg-default/rtfvTenantMonPol-[uni/tn-Tenant1] was created
[D] Subscribing to '/api/mo/uni/tn-Tenant1.json?query-target=subtree&subscription=yes'
[+] fvTenant:uni/tn-Tenant1 was created
[+] fvTenant:uni/tn-Tenant1 was modified
|