NTNX>日記

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

Nutanix Files の監査 Syslog を転送してみる。(Files API v3)

Nutanix CE で利用している Nutanix Files の監査情報を、Syslog 転送してみます。

Nutanix のドキュメントでは、下記の Tech Note が参考になります。

今回の内容です。

今回の環境

  • Nutanix CE 2020.09.16
  • Nutanix Files 3.8.1.1。FSVM は 1台構成、SMB 共有のみ利用
  • 転送先 Syslog サーバは Oracle Linux 7.9 の rsyslog

ファイル サーバー は、下記にあるような手順で作成ずみです。

転送先 Syslog サーバの用意

Oracle Linux 7 で、rsyslog のリモート受信を設定しておきます。

# cat /etc/system-release
Oracle Linux Server release 7.9

ファイアウォールは停止してしまいます。

# systemctl stop firewalld
# systemctl disable firewalld

TCP/514 ポートで、Syslog をリモート受信できるように設定追加しておきます。

# vi /etc/rsyslog.d/remote.conf
# cat /etc/rsyslog.d/remote.conf
module(load="imtcp")
input(type="imtcp" port="514")

rsyslog サービスを再起動しておきます。

# systemctl restart rsyslog

JSON データを扱うために、jq コマンドをインストールしておきます。

# yum install -y jq

Nutanix Files での Syslog 転送設定

Nutanix Files の Syslog 設定は、Files API v3 を利用します。

Nutanix Files API 用ユーザの作成

Nutanix Files API v3 は、FSVM にむけて実行します。そこで、FSVM への API 用ユーザを作成しておきます。

Prism Element の、「ファイル サーバー」→「File Server」を開きます。ファイル サーバーを選択してから、「Manage roles」を開きます。

f:id:gowatana:20211130093125p:plain

そして、「REST API アクセス ユーザー」の「新ユーザー」をクリックして、ユーザーを追加しておきます。今回は「filesapi」というユーザを作成してあります。

f:id:gowatana:20211130093252p:plain

Files API v3 での接続確認

Files API v3 のリファレンスは、下記のアドレスで確認できます。

  • https://<FSVM のアドレス>:9440/api/nutanix/v3/api_explorer/

接続に必要な情報を、変数に格納しておきます。

今回のファイル サーバーのアドレスは、「test-fs-01.ntnx.lab」です。

$ FS_USER=filesapi
$ FS_PASS='パスワード'
$ FS_ADDR=test-fs-01.ntnx.lab

curl コマンドで API をコールして、Nutanix Files のバージョンなどを取得してみます。出力結果の JSON データを見やすくするため、jq コマンドを利用しています。

$ curl -ks -u "$FS_USER:$FS_PASS" -H "Content-Type: application/json" -X GET --url "https://$FS_ADDR:9440/api/nutanix/v3/file_servers" | jq -r .
{
  "status": {
    "fs_uuid": "0a1bef2b-099c-4f52-9c89-eac01bd204bb",
    "name": "test-fs-01",
    "resources": {
      "version": "3.8.1.1",
      "configuration_list": [
        {
          "name": "max_backup_snapshots_per_share",
          "value": "20"
        },
        {
          "name": "max_backup_snapshot_diff_reqs",
          "value": "10"
        },
        {
          "name": "max_backup_snapshots_diff_list_retention_in_secs",
          "value": "2592000"
        }
      ]
    }
  },
  "api_version": "3.1",
  "metadata": {
    "kind": "file_server"
  }
}

Syslog 転送の設定

まず、partner server として転送先 Syslog サーバを登録します。

下記のような JSON ファイルを用意しておきます。

nutanix-files_syslog-server-01.json

  • ログ転送では usage_type に「NOTIFICATION」を指定。多種の連携ケースでは BACKUP / AV を指定する。
  • 転送先サーバのアドレスは、192.168.11.61
  • 転送先ポートは TCP 514

gist.github.com

partner_server を追加します。

$ curl -ks -u "$FS_USER:$FS_PASS" -H "Content-Type: application/json" -d @nutanix-files_syslog-server-01.json -X POST --url "https://$FS_ADDR:9440/api/nutanix/v3/partner_servers"

結果として JSON データが出力されるので、ここから partner server の UUID を確認します。

{"status": {"state": "PENDING", "execution_context": {"task_uuid": "80890e37-e3c7-4bc2-b407-c2cd1d3e5c33"}}, "spec": {"name": "syslog-transfer-01", "resources": {"usage_type": "NOTIFICATION", "vendor_name": "syslog", "server_info": {"server_type": "PRIMARY", "address": {"ip": "192.168.11.61", "port": 514}}}}, "api_version": "3.1", "metadata": {"owner_reference": {"kind": "user", "uuid": "fedea42b-7b2a-5faf-93fa-2bd75b93cc74", "name": "filesapi"}, "use_categories_mapping": false, "kind": "partner_server", "spec_version": 0, "uuid": "4f03e62a-5093-4beb-8120-28526c26271f"}}

あらためて UUID を取得して、変数 SERVER_UUID に格納しておきます。。

$ export SERVER_UUID=$(curl -ks -u "$FS_USER:$FS_PASS" -H "Content-Type: application/json"  -X POST -d '{}' --url "https://$FS_ADDR:9440/api/nutanix/v3/partner_servers/list" | jq -r '.entities[] | select(.spec.name=="syslog-transfer-01") | .metadata.uuid')

UUID が取得できました。

$ echo $SERVER_UUID
4f03e62a-5093-4beb-8120-28526c26271f

Syslog を転送する notification policy を定義した JSON ファイルを用意しておきます。

nutanix-files_syslog-policy-01.json

  • ファイル サーバーの、すべての共有フォルダが対象。
    ("all_mount_targets": true)
  • 対象のプロトコルは SMB のみ。
  • file_operation_list には、冒頭の Tech Note を参考に、SMB に関係するオペレーションのみ含めてある。

gist.github.com

envsubst コマンドで変数部分を置き換えつつ、/notification_policies の POST メソッドでポリシーを作成します。

$ cat nutanix-files_syslog-policy-01.json | envsubst | curl -ks -u "$FS_USER:$FS_PASS" -H "Content-Type: application/json" -d @- -X POST --url "https://$FS_ADDR:9440/api/nutanix/v3/notification_policies"

これで、ファイル サーバーの監査ログが Syslog サーバに転送され、/var/log/messages ファイルに保存されるようになります。

監査ログの様子

ためしに、「\\test-fs-01.ntnx.lab\share-01\何かのフォルダ\test-file.txt」ファイルを開いてから、削除した様子です。

  • ntnx-192-168-20-91-a-fsvm は、今回の転送元 FSVM のホスト名です。
  • FileRead、FileDelete の 2行が記録されています。
Nov 30 14:46:08 ntnx-192-168-20-91-a-fsvm SMB[43435]: NTNX.LAB\NTNX\Administrator(1100500)|S-1-5-21-2495205253-2353596005-483417297-500|192.168.10.170|FileRead|success|test-fs-01.ntnx.lab/share-01/何かのフォルダ/test-file.txt|256|9
Nov 30 14:46:18 ntnx-192-168-20-91-a-fsvm SMB[43435]: NTNX.LAB\NTNX\Administrator(1100500)|S-1-5-21-2495205253-2353596005-483417297-500|192.168.10.170|FileDelete|success|test-fs-01.ntnx.lab/share-01/何かのフォルダ/test-file.txt|256

以上。

Nutanix CE の Calm で 2048 を起動してみる。

Nutanix Calm で、2048 ゲームを起動できる Linux VM を作成してみます。

今回の内容です。

  • 今回の環境
  • 1. Nutanix クラスタ / Prism Central での事前準備
    • 1-1. ネットワークの用意
    • 1-2. CentOS7 OS イメージの用意
  • 2. Prism Central でのプロジェクトの準備
  • 3. Calm ブループリント(JSON ファイル)の用意
  • 4. Calm での 2048 ブループリント作成
    • 4-1. JSON ファイル アップロードでのブループリント作成
    • 4-2. ディスク イメージの指定
    • 4-3. vNIC でのネットワーク指定
    • 4-4. 認証情報の入力
  • 5. ブループリントの起動
続きを読む

Nutanix CE に Nutanix Files を展開する。(Ansible 編)

Ansible を利用して、Nutanix CE に シングル ノード構成の Nutanix Files ファイル サーバーを作成・削除してみます。

今回の内容です。

  • 今回の環境について
  • Ansible 設定ファイルの作成
  • 変数ファイルの作成
  • ファイル サーバーの作成
  • 共有フォルダの作成
  • ファイル サーバーの削除
続きを読む

Nutanix CE に Nutanix Files を展開する。(シングル ノード構築 REST API 編)

Nutanix REST API を利用して、Nutanix CE に シングル ノード構成の Nutanix Files ファイル サーバーを作成してみます。今回は、Nutanix とは関係していない外部の Linux クライアントから作業します。

今回の内容です。

  • 環境準備について
  • ネットワーク UUID の確認
  • ファイル サーバーのパラメータ用意
  • ファイル サーバーの作成
  • 共有フォルダのパラメータ用意
  • 共有フォルダの作成
続きを読む

Nutanix CE の Nutanix Files ファイル サーバーを削除する。(REST API 編)

Nutanix Files の ファイル サーバーを、REST API で削除してみます。

下記の投稿での操作を、curl で実施してみます。

今回の内容です。

  • 利用する Nutanix REST API について
  • 今回の環境
  • ファイル サーバー UUID の取得
  • DNS レコードの削除
  • ファイル サーバーのドメイン離脱
  • ファイル サーバーの削除
続きを読む

Nutanix CE に Nutanix Files を展開する。(シングル ノード構築 ncli 編)

ncli を利用して、Nutanix CE に シングル ノード構成の Nutanix Files ファイル サーバーを作成してみます。今回は、CVM に nutanix ユーザもしくは admin ユーザで SSH ログインして作業します。

事前準備は、下記のようにしてあります。

同様の作業を Prism から実施した様子です。

今回の内容です。

  • ネットワーク UUID の確認
  • ファイル サーバーの作成
  • 共有フォルダの作成
続きを読む

Nutanix CE の Nutanix Files ファイル サーバーを削除する。(ncli 編)

Nutanix Files の ファイル サーバーを、ncli で削除してみます。

下記の投稿で紹介されている Prism での操作を、ncli から実施してみます。

hanpamonoengineer.blogspot.com

削除するファイル サーバーは、下記の投稿で作成したものです。

今回の内容です。

  • Nutanix Files ファイル サーバー UUID の特定
  • DNS レコードの削除
  • コンピューター アカウントの削除
  • ファイル サーバーの削除
続きを読む

Nutanix CE に Nutanix Files を展開する。(シングル ノード構築編)

Nutanix CE に、Nutanix Files を展開してみます。シングル ノードの Nutanix クラスタに、FSVM がシングル ノードの Nutanix Files ファイル サーバーを作成します。

前回はこちら。

今回の内容です。

  • ファイル サーバーの作成
  • ファイル サーバーの確認
  • 共有フォルダ(Share)の作成
  • 共有フォルダへの接続確認
続きを読む

Nutanix CE に Nutanix Files を展開する。(準備編)

Nutanix CE に、Nutanix Files を展開してみます。まず、前提となるインフラと、Nutanix クラスタを準備します。

今回の内容です。

  • 環境について
    • ソフトウェアなど
    • ネットワーク
      • Nutanix Files のストレージ ネットワーク
      • Nutanix Files のクライアント サイド ネットワーク
  • Nutanix クラスタでの準備
    • Nutanix クラスタの構築
    • ネットワークの作成
    • iSCSI Data Services IP アドレスの設定
    • Nutanix Files ソフトウェアのダウンロード
  • Active Directory(兼 DNS)の準備
  • NTP サーバの準備
続きを読む
©2021 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。