konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

Splunk で Nutanix と Files の syslog を受け取ってみる

Splunk でもうちょっと専門的なことにチャレンジしてみます

Nutanixクラスタのログを受信して可視化を行ってみたいと思います
Prism Central には syslogサーバーの設定項目があるのですが、Prism Elementには設定する箇所が見当たりません
まずは Nutanix のシスログってどうやってどばすの?ってのをググってみますと、昨年の Nutanix Advent Calendar 2019の記事が見つかります
(苦い思い出が蘇ります)
Nutanix Syslogをサーバに出力してみる - Qiita

こちらを参考に Nutanix CVM に rsyslog の設定を仕込みたいと思います
(本家はこちらのドキュメントになります)

<イメージ図>
f:id:konchangakita:20201107184555p:plain


【Splunk やってみたシリーズ】
Splunk を Kubernetes と Karbon Platform Service で動かしてみる
Splunkで syslog 受信してみる CentOS編
Splunk で システムログを受信してみる Windows編
・Splunk で Nutanix と Files のシスログ受け取ってみる ←今ココ
Splunk で Nutanix Flowログ確認


==環境=======
CentOS 8
Docker 19.03.13
Splunk Enterprise 8.1.0
AOS 5.15
AHV 20170830.395
============

Splunk 環境の起動

まずは、検証用の Splunk 環境を Dockerコンテナ で起動します
今まで使ってきたポートに今回は UDP で port 10514 を追加して受け取ってみます

docker run -p 8000:8000 -p 10514:10514/udp -p 30514:30514 -p 8089:8089 -p 9997:9997 -e SPLUNK_PASSWORD=password -e SPLUNK_START_ARGS=--accept-license -it splunk/splunk:latest

ハマりポイント・Docker で UDP受け取るにはちゃんと UDP 指定してやる必要がある


CVM の rsyslog 設定

現状Nutanixクラスタシスログ設定は、Prism Element の GUI では提供されていませんので、CVMに ssh接続して CLI にて設定してやる必要があります
実際に飛ばすログは、CVM に ssh接続し ~/data/logs をみてますと
Nutanix のいろいろなサービスごとのログが溜まっています
f:id:konchangakita:20201106005357p:plain

トラブルシューティングなどで一番お世話になったのは、genesis.out ですかね
f:id:konchangakita:20201106005735p:plain

では、この genesis のログを送信する設定を例に設定していきます

nCLIコマンドモード

CVM に ssh接続 して ncli モードへ入ります

$ ncli
<ncli>


「tab」ボタンでコマンドの一覧が確認できます
この中の rsyslog-config を使います
f:id:konchangakita:20201106010601p:plain

syslogサーバ登録

syslogサーバとして、Splunkマシンを登録

<ncli> rsyslog-config add-server name=splunk-server ip-address=192.168.199.11 port=10514 network-protocol=UDP relp-enabled=false
    Name                      : test-splunk
    IP Address                : 192.168.199.11
    Port                      : 10514
    Protocol                  : UDP
    Relp Enabled              : false


送信ログを選択

送信ログの種類は、moduleとして指定します
module の種類は
CASSANDRA, CEREBRO, CURATOR, GENESIS, PRISM, STARGATE, SYSLOG_MODULE, ZOOKEEPER, UHURA, LAZAN, API_AUDIT, AUDIT, CALM, EPSILON, ACROPOLIS, MINERVA_CVM, FLOW
ログレベルは
DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY

<ncli> rsyslog-config add-module server-name=splunk-server module-name=GENESIS level=info include-monitor-logs=false         

    RSyslog Servers           : test-splunk
    Module Name               : GENESIS
    Log Level                 : INFO
    Include Monitor Logs      : false


設定内容を確認

<ncli> rsyslog-config ls-servers                             

    Name                      : test-splunk
    IP Address                : 192.16.199.11
    Port                      : 10514
    Protocol                  : UDP
    Relp Enabled              : false

        Module Name               : ACROPOLIS
        Log Level                 : ERROR
        Include Monitor Logs      : false

        Module Name               : GENESIS
        Log Level                 : INFO
        Include Monitor Logs      : false

        Module Name               : CASSANDRA
        Log Level                 : INFO
        Include Monitor Logs      : false

基本的な設定は以上です
これで Splunk に向かってログが送信開始されます

もし、一時的に rsyslog-config の OFF/ONする場合は

<ncli> rsyslog-config set-status enable=false
<ncli> rsyslog-config set-status enable=true



Splunk受信設定

Splunk Enterprise で ローカル入力「UDP:10514」の受信設定を行います
f:id:konchangakita:20201106133858p:plain
f:id:konchangakita:20201113145647p:plain


ソースタイプはどれが良いんだろう、、、とりあえず普通にsyslog で
f:id:konchangakita:20201106134119p:plain


サーチで受信内容を確認、INFOレベルで取得しているので、大量のログが確認できると思います
実用レベルだと、ERRORでよいのかな?
f:id:konchangakita:20201106134236p:plain


Nutanix Files Audit ログも受信してみる

Nutanix の Native NAS 機能の Files には、無償で使える Files Analytics がついてきます

主な機能はこんなのがついてます
 ・ファイルサーバ内のデータ分析・可視化
 ・ディレクトリ、ファイルのアクセス履歴
 ・監査ログを取得
 ・異常検知

無料で使える割にいろいろ揃っています、が
ただ、ログが遡れるのは1年までなんですよね。。。惜しい
特に監査ログは、アーカイブして数年の保存しておきたかったりします
今のところエクスポートする機能も見当たらないので、外部への送信と保管を Splunk で受信してみます

<イメージ図>
f:id:konchangakita:20201107201802p:plain

ログ送信設定のためユーザーを作成

Files設定画面の「役割を管理する」
f:id:konchangakita:20201105001611p:plain


REST APIアクセスユーザーを追加する
f:id:konchangakita:20201105001508p:plain

FSVM REST API画面に接続

https://<FSVMのIP>:9440/api/nutanix/v3/api_explorer/index.html
f:id:konchangakita:20201105001248p:plain


上部のここにREST API アクセスユーザ記入して「Explore」をクリックしておきます
(クリックしても変化は無いです)
f:id:konchangakita:20201105001745p:plain

Partner Server の設定

送信先の Partner Server として、Splunkサーバーを設定します
partner_server の POST を選択し
f:id:konchangakita:20201107195902p:plain


body に Partner Server 登録の設定情報を入力
f:id:konchangakita:20201106232015p:plain

{
     "spec": {
                "description": "partner_server_description", 
                "resources": {
                    "usage_type": "NOTIFICATION", 
                    "server_info": {
                        "address": {
                            "ip": "192.168.199.11",  # SplunkIP
                            "port": 30514 # TCP送信ポート
                        }, 
                        "server_type": "PRIMARY"
                    }, 
                    "vendor_name": "syslog"
                }, 
                "name": "test-splunk" # Splunkの名前
    },
    "api_version": "3.0", 
    "metadata": {
        "kind": "partner_server"
    }
}

ハマりポイントUDPだとダメでした


入力後「Try it out!」
Response Code 202ならOK
f:id:konchangakita:20201105010515p:plain

Partner Server のUUID確認

Partner Serverの一覧を取得して、登録したサーバのUUIDを取得
f:id:konchangakita:20201107200600p:plain

{
  "kind": "partner_server",
  "offset": 0,
  "length": 10
}


Response Body で UUIDを確認f:id:konchangakita:20201106233222p:plain

送信ログ内容の設定

Splunk サーバーのUUID で notification_policy を作成
f:id:konchangakita:20201105010737p:plain
f:id:konchangakita:20201106233529p:plain

{    
    "spec": {
        "name": "notification_policy",
        "resources": {
            "partner_server_reference_list": [
                {
                    "kind": "partner_server",
                    "uuid": "6719ec81-5aee-4314-bafe-xxxxxxxxxxx" # Partner ServerUUID
                }
            ],
            "file_operation_list": [
                    "FILE_CREATE",
                    "FILE_DELETE",
                    "FILE_READ",
                    "FILE_WRITE",
                    "FILE_OPEN",
                    "FILE_CLOSE",
                    "DIRECTORY_CREATE",
                    "DIRECTORY_DELETE",
                    "RENAME",
                    "SETATTR",
                    "SYMLINK_CREATE",
                    "LINK_CREATE",
                    "SECURITY"
            ],
            "protocol_type_list": [
                "SMB"
            ],
	    "all_mount_targets": true
        }
    },
    "api_version": "3.0",
    "metadata": {
        "kind": "notification_policy"
    }
}


これで、FSVM側の設定は完了です

Splunk Enterprise で Files 監査ログを受信

TCP:30514 でデータ入力設定してやると、操作のログが確認できます
f:id:konchangakita:20201105014447p:plain


なんとなくユーザごと操作の円グラフ作ってみたり
f:id:konchangakita:20201107011818p:plain


ちなみに Nutanix Flow の シスログは Prism Central で簡単に設定できます
(オタクはちなみにが好き)