NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE の Event 情報を取得してみる。(Python 編)

Nutanix Advent Calendar 2017 の 5日目です。

Nutanix CE は製品版と同じように API にアクセスできるようになっているので、ためしに Python でイベント情報を取得してみました。

はじめに

取得するのは、Prism の Alert → Event でみられる、ほとんど監査情報のものです。

f:id:gowatana:20171205232821p:plain

今回は、たまたまあった Oracle Linux 7.3 からスクリプトを実行しています。

$ cat /etc/oracle-release
Oracle Linux Server release 7.3
$ python -V
Python 2.7.5

用意したスクリプト

下記のようなスクリプトを作成してみました。今回は Nutanix API V2 を利用しています。Python には、requests が必要です。(pip install requests などにて)

Python3 用

gist.github.com

Python2 用

get-ntnx-event_py2.py · GitHub

スクリプトの実行

スクリプトを実行してみます。

Prism へのログイン情報は、スクリプトとは別に prism-config.json というファイルを用意して下記のように記載しています。

gist.github.com

Prism で見られる情報であれば取得できます。Entities の情報は、ほぼ cluster なので省略しました。

$ python3 ./get-ntnx-event.py ../prism-config.json
event_time_stamp, severity, alert_type, audit_user, acknowledged, message
2017-12-05 23:07:35 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-12-05 08:45:44 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-12-05 08:26:10 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-12-04 09:16:39 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-12-04 08:05:19 kAudit UserAudit gowatana False User ntnx-audit updated
2017-12-04 08:05:01 kAudit UserAudit gowatana False User ntnx-audit updated
2017-12-04 08:04:41 kAudit UserAudit gowatana False User ntnx-audit updated
2017-12-04 08:04:12 kAudit UserAudit gowatana False User ntnx-audit updated
2017-12-04 08:03:39 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-12-04 08:03:31 kAudit LoginInfoAudit ntnx-audit False User ntnx-audit has logged out from 192.168.1.197
2017-12-04 08:03:16 kAudit LoginInfoAudit ntnx-audit False User ntnx-audit has logged in from 192.168.1.197
2017-12-04 08:02:45 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-12-04 08:02:13 kAudit UserAudit gowatana False User ntnx-audit updated
2017-12-04 08:01:13 kAudit UserAudit gowatana False User ntnx-audit added
2017-12-04 07:56:25 kAudit LoginInfoAudit gowatana True User gowatana has logged in from 192.168.1.197
2017-12-04 02:03:08 kAudit LoginInfoAudit gowatana True User gowatana has logged out from 192.168.1.197
2017-12-04 01:38:01 kAudit LoginInfoAudit gowatana True User gowatana has logged in from 192.168.1.197
2017-12-03 21:44:08 kAudit LoginInfoAudit gowatana True User gowatana has logged out from 192.168.1.197
2017-12-03 21:27:51 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-12-02 22:30:14 kAudit LoginInfoAudit gowatana True User gowatana has logged out from 192.168.1.197
2017-12-02 21:14:42 kAudit LoginInfoAudit gowatana True User gowatana has logged in from 192.168.1.197
2017-11-30 09:16:12 kAudit LoginInfoAudit gowatana True User gowatana has logged out from 192.168.1.197
2017-11-30 08:56:39 kAudit LoginInfoAudit gowatana True User gowatana has logged in from 192.168.1.197
2017-11-30 02:59:35 kAudit LoginInfoAudit gowatana True User gowatana has logged out from 192.168.1.197
2017-11-30 02:41:51 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-11-30 02:41:42 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-11-30 02:23:13 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-11-29 23:14:52 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-11-29 22:47:59 kAudit RemoteSiteAudit gowatana False Remote site ce-n02 marked for removal
2017-11-29 22:47:51 kAudit RemoteSiteAudit gowatana False Remote site ntnx-gb marked for removal
2017-11-29 22:30:29 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-11-29 21:06:54 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-11-29 20:48:51 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-11-29 09:19:38 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-11-29 09:14:27 kAudit LoginInfoAudit gowatana False User gowatana has logged out from 192.168.1.197
2017-11-29 08:51:51 kAudit LoginInfoAudit gowatana False User gowatana has logged in from 192.168.1.197
2017-11-29 08:51:44 kAudit LoginInfoAudit admin False User admin has logged out from 192.168.1.197
2017-11-29 08:51:39 kAudit UserAudit admin False User gowatana updated
2017-11-29 08:50:52 kAudit UserAudit admin False User gowatana updated
2017-11-29 08:50:52 kAudit PasswordAudit admin False Password reset for user gowatana
2017-11-29 08:50:05 kAudit LoginInfoAudit admin False User admin has logged in from 192.168.1.197
2017-09-08 02:28:51 kAudit LoginInfoAudit admin False User admin has logged out from 192.168.1.197
2017-09-08 02:12:37 kAudit LoginInfoAudit admin False User admin has logged in from 192.168.1.197
$

このように、Nutanix CE は、ツールやスクリプトの開発でも利用できます。

ついでの気づき・・・

  • ほとんどログイン監査情報。ただしログイン失敗は出ない。
  • Prism にログインできるユーザで実行可能。ROLES は User Admin も Cluster Admin もチェック OFF でいける。
  • API でのアクセスは Event にログイン記録が残らない・・・

以上。

 

元のスクリプトだと、イベントによってはエラーになってしまうので 'alert_type_uuid' をユーザやログイン関連の 'LoginInfoAudit', 'PasswordAudit', 'UserAudit' だけに絞りました。ちなみにこの環境では、下記のような種類のイベントがあがっていました。

[gowatana@client01 ~]$ curl -ks -X GET --header 'Accept: application/json' -u "$USER:$PASS" 'https://ntnx-n01.go-lab.jp:9440/PrismGateway/services/rest/v2.0/events' | jq -C '.entities[] | .alert_type_uuid' | sort | uniq -c
      2 "ClusterParamsAudit"
      1 "ContainerAudit"
    175 "LoginInfoAudit"
      5 "ModifyProtectionDomainSnapshotAudit"
      4 "NameServersAudit"
      2 "PasswordAudit"
     12 "PdOOBScheduleAudit"
      5 "ProtectionDomainAudit"
      6 "ProtectionDomainChangeModeAudit"
      5 "ProtectionDomainEntitiesAudit"
      9 "RemoteSiteAudit"
     28 "ReplicationSystemStateAudit"
     35 "SnapshotReadyAudit"
      8 "UserAudit"
©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。