[Amazon FSx for NetApp ONTAP] 管理アクティビティの監査ログをSyslogのVPCエンドポイントを用いてCloudWatch Logsに配信してみた
管理アクティビティの監査ログを長期間保存したいけど専用のSyslogサーバーは建てたくない
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)の管理アクティビティの監査ログを長期間保存したいけど専用のSyslogサーバーは建てたくないと思ったことはありますか? 私はあります。
FSxNの管理アクティビティの監査ログ(以降単純に"監査ログ")は、最大48日 もしくは 4,800MBのどちらかです。これは監査ログのローテーション条件が1日1回もしくは、サイズが100MBを超えた場合に行われ、48世代保持されるためです。
1日100MB以上のログ出力はよっぽどのことがなければ発生しないため、基本的には48日分と理解しておくと良いでしょう。
しかし、組織の監査ログの保持ポリシー的に48日では不足している場合があります。半年や一ヶ月以上確実に保持しなければならない場合もあるでしょう。
そのような場合は監査ログをCloudWatch LogsやS3バケットに配信したいところです。ただし、以下記事で紹介しているようにFSxNから直接これらに配信することはできません。
対応として、Syslogサーバーを構築し、そちらに配信した後、SyslogサーバーからCloudWatch LogsやS3バケットに配信することが挙げられます。
この時、FSxNの制約事項としてSyslogの転送先はFSxNファイルシステムがあるサブネットと同じサブネットに存在している必要があります。つまりはFSxNファイルシステム専用のSyslogサーバーを建てるような形になります。
ただでさえEC2インスタンスのメンテナンスはしたくありません。また、可用性も気になります。AZ障害などでSyslogサーバーが潰れてしまうとその間はログ出力ができません。その対策でMulti-AZでSyslogサーバーを建てようにもActive/StandbyのHAクラスターとして動作させるような工夫をしなければ、平常時はログが二重に配信されてしまいます。これではログの運用性が下がってしまいます。ログ配信および保存時のコストが2倍になるのも気になりますね。
このように、ただログを出力したいだけなのに考えることが多すぎます。
今回アップデートによって、CloudWatch LogsがSyslogによる取り込みをサポートしました。
これにより、今までの辛みが一気に解消されることになります。実際に試してみます。
いきなりまとめ
- FSxNの管理アクティビティの監査ログを簡単にCloudWatch Logsに配信できるようになった
- ログストリームはVPCエンドポイント単位で作成されるため、用途ごとにVPCエンドポイントを作成しなければ、様々なログが混在してしまう
- EMSイベントについてもSyslogで配信できるようになったため、今までAWS側から認知ができなかったONTAP内部のイベントを把握して、運用に活かすことができるようになった
やってみた
検証環境
検証環境は以下のとおりです。

Multi-AZのFSxNファイルシステムを稼働させています。そして、SyslogのCloudWatch LogsのVPCエンドポイントをFSxNファイルシステムと同じサブネットに動作させています。
FSxNファイルシステムは以下のように作成しました。

セキュリティグループの作成
VPCエンドポイントを作成する前にセキュリティグループを作成しましょう。
CloudWatch LogsのSyslog取り込み機能では以下のプロトコル/ポートをサポートしています。
| Protocol | Port | Notes |
|---|---|---|
| TCP + TLS | 6514 | Encrypted in transit. Recommended for compliance requirements. |
| TCP plaintext | 1514 | Plaintext over AWS PrivateLink (network-isolated). |
| UDP | 514 | Best-effort delivery. |
抜粋 : Syslog ingestion - Amazon CloudWatch Logs
ONTAP側ではこれら全てをサポートしている形になっています。
[-protocol {udp-unencrypted|tcp-unencrypted|tcp-encrypted}] - Log Forwarding Protocol
The protocols are used for sending messages to the destination. The protocols can be one of the following values:udp-unencrypted - User Datagram Protocol with no security
tcp-unencrypted - Transmission Control Protocol with no security
tcp-encrypted - Transmission Control Protocol with Transport Layer Security (TLS)
確実な配信をしたい かつ ログ流量はそこまで多くないことからTCPであっても影響度は少ないと考え、今回はTCP/6514を選択しました。
VPCエンドポイントにアタッチするセキュリティグループではFSxNファイルシステムにアタッチしているセキュリティグループからのTCP/6514宛の通信を許可します。

VPCエンドポイントの作成
VPCエンドポイントの作成を行います。
syslog-logs.us-east-1.amazonaws.comと通常のCloudWatch LogsのVPCエンドポイントとサービスエンドポイントとは異なります。こちらをFSxNファイルシステムと同じサブネットに作成します。

数分で作成が完了しました。

それぞれのDNS名について名前解決をしてみましょう。
まずはVPC内のEC2インスタンスからです。
$ dig vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.18.33 <<>> vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62189
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.226
vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.105
;; Query time: 0 msec
;; SERVER: 10.0.1.2#53(10.0.1.2) (UDP)
;; WHEN: Thu Jun 25 01:18:27 UTC 2026
;; MSG SIZE rcvd: 133
$ dig vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.18.33 <<>> vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37740
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.226
;; Query time: 10 msec
;; SERVER: 10.0.1.2#53(10.0.1.2) (UDP)
;; WHEN: Thu Jun 25 01:18:35 UTC 2026
;; MSG SIZE rcvd: 128
$ dig vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.18.33 <<>> vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 801
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.105
;; Query time: 0 msec
;; SERVER: 10.0.1.2#53(10.0.1.2) (UDP)
;; WHEN: Thu Jun 25 01:18:41 UTC 2026
;; MSG SIZE rcvd: 128
$ dig syslog-logs.us-east-1.amazonaws.com
; <<>> DiG 9.18.33 <<>> syslog-logs.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44540
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;syslog-logs.us-east-1.amazonaws.com. IN A
;; ANSWER SECTION:
syslog-logs.us-east-1.amazonaws.com. 60 IN A 10.0.1.105
syslog-logs.us-east-1.amazonaws.com. 60 IN A 10.0.1.226
;; Query time: 10 msec
;; SERVER: 10.0.1.2#53(10.0.1.2) (UDP)
;; WHEN: Thu Jun 25 01:18:46 UTC 2026
;; MSG SIZE rcvd: 96
全て正常に名前解決できていますね。
手元のクライアントPCからも名前解決します。
> dig vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.10.6 <<>> vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60682
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.105
vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.226
;; Query time: 26 msec
;; SERVER: 127.0.2.2#53(127.0.2.2)
;; WHEN: Thu Jun 25 10:20:25 JST 2026
;; MSG SIZE rcvd: 205
> dig vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.10.6 <<>> vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40625
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-09052e1d54acb0298-1930h81z-us-east-1b.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.226
;; Query time: 69 msec
;; SERVER: 127.0.2.2#53(127.0.2.2)
;; WHEN: Thu Jun 25 10:20:40 JST 2026
;; MSG SIZE rcvd: 211
> dig vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.10.6 <<>> vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2800
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-09052e1d54acb0298-1930h81z-us-east-1a.syslog-logs.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.105
;; Query time: 29 msec
;; SERVER: 127.0.2.2#53(127.0.2.2)
;; WHEN: Thu Jun 25 10:20:44 JST 2026
;; MSG SIZE rcvd: 211
> dig syslog-logs.us-east-1.amazonaws.com
; <<>> DiG 9.10.6 <<>> syslog-logs.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 34014
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;syslog-logs.us-east-1.amazonaws.com. IN A
;; AUTHORITY SECTION:
us-east-1.amazonaws.com. 7200 IN SOA dns-external-route53.us-east-1.amazonaws.com. root.amazon.com. 1 3600 900 604800 900
;; Query time: 21 msec
;; SERVER: 127.0.2.2#53(127.0.2.2)
;; WHEN: Thu Jun 25 10:20:50 JST 2026
;; MSG SIZE rcvd: 156
syslog-logs.us-east-1.amazonaws.comのみ名前解決に失敗しました。
つまりはパブリックなサービスエンドポイントはなく、VPCエンドポイントが必須ということが分かります。
CloudWatch Logsロググループの作成
配信先のCloudWatch Logsのロググループを作成します。
特にこのタイミングでは特殊な設定はありません。

ロググループ作成後にSyslog設定を行います。アクション-Syslog設定を作成をクリックします。

事前に作成したVPCエンドポイントを指定して、作成をクリックします。

完了すると以下のようになります。

最後にCloudWatch Logsのリソースポリシーを更新し、VPCエンドポイントを経由したSyslogの取り込みを行えるようにしてあげます。
> aws logs put-resource-policy \
--policy-name syslog-ingestion \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "syslog.logs.amazonaws.com"
},
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream"
],
"Resource": "arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/syslog/non-97-fsxn:*:*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<AWSアカウントID>"
},
"ArnEquals": {
"aws:SourceArn": "arn:aws:ec2:us-east-1:<AWSアカウントID>:vpc-endpoint/vpce-09052e1d54acb0298"
}
}
}
]
}'
{
"resourcePolicy": {
"policyName": "syslog-ingestion",
"policyDocument": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"syslog.logs.amazonaws.com\"\n },\n \"Action\": [\n \"logs:PutLogEvents\",\n \"logs:CreateLogStream\"\n ],\n \"Resource\": \"arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/syslog/non-97-fsxn:*:*\",\n \"Condition\": {\n \"StringEquals\": {\n \"aws:SourceAccount\": \"<AWSアカウントID>\"\n },\n \"ArnEquals\": {\n \"aws:SourceArn\": \"arn:aws:ec2:us-east-1:<AWSアカウントID>:vpc-endpoint/vpce-09052e1d54acb0298\"\n }\n }\n }\n ]\n}",
"lastUpdatedTime": 1782352394718,
"policyScope": "ACCOUNT"
}
}
管理アクティビティ監査ログのSyslog設定
以降はFSxN側の設定です。
FSxNファイルシステムにSSH接続をしてONTAP CLIで操作できるようにします。
FsxId08042f911cbc0ead3::> version
NetApp Release 9.17.1P6: Wed Mar 25 15:38:10 UTC 2026
現在の監査ログは以下のとおりです。
FsxId08042f911cbc0ead3::> security audit log show -fields timestamp, node, application, vserver, username, input, state, message -application ssh -state Error|Success -timestamp >"Thu Jun 25 00:50:00 2026"
timestamp node application vserver username input state message
-------------------------- ------------------------- ----------- ---------------------- ----------------- ------------------------- ------- -------
"Thu Jun 25 00:58:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane set -privilege diagnostic Success -
"Thu Jun 25 00:58:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane Logging out Success -
"Thu Jun 25 00:58:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane set -privilege diagnostic Success -
"Thu Jun 25 00:58:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane security login unlock -username diag
Success -
"Thu Jun 25 00:58:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane Logging out Success -
"Thu Jun 25 01:08:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane set -privilege diagnostic Success -
"Thu Jun 25 01:08:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane Logging out Success -
"Thu Jun 25 01:08:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane set -privilege diagnostic Success -
"Thu Jun 25 01:08:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane security login unlock -username diag
Success -
"Thu Jun 25 01:08:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane Logging out Success -
"Thu Jun 25 01:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane set -privilege diagnostic Success -
"Thu Jun 25 01:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane Logging out Success -
"Thu Jun 25 01:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane set -privilege diagnostic Success -
"Thu Jun 25 01:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane security login unlock -username diag
Success -
"Thu Jun 25 01:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane Logging out Success -
"Thu Jun 25 01:22:33 2026" FsxId08042f911cbc0ead3-01 ssh FsxId08042f911cbc0ead3 fsxadmin Logging in Success -
16 entries were displayed.
これらの内容が確認していきましょう。
Syslog設定をする前にVPCエンドポイントのDNS名で名前解決できるかを確認します。
FSxNでは現時点で参照しているDNSサーバーは確認できません。
FsxId08042f911cbc0ead3::> dns show
This table is currently empty.
FsxId08042f911cbc0ead3::> set diag
Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y
FsxId08042f911cbc0ead3::*> dns show
This table is currently empty.
もし、裏側でRoute 53 VPC Resolverを使用しているのであれば、syslog-logs.us-east-1.amazonaws.comの名前解決ができるはずです。
FSxNでは直接的にDNSによる名前解決を行うコマンドはなさそうですので、pingを投げる過程で発生する名前解決結果を見て判断します。
FsxId08042f911cbc0ead3::*> network ping -node FsxId08042f911cbc0ead3-01 -vserver FsxId08042f911cbc0ead3 -destination vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com -count 1 -show-detail true
PING vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com (10.0.1.226): 56 data bytes
--- vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
FsxId08042f911cbc0ead3::*> network ping -node FsxId08042f911cbc0ead3-01 -vserver FsxId08042f911cbc0ead3 -destination vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com -count 1 -show-detail true
PING vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com (10.0.1.105): 56 data bytes
--- vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
FsxId08042f911cbc0ead3::*> network ping -node FsxId08042f911cbc0ead3-01 -vserver FsxId08042f911cbc0ead3 -destination syslog-logs.us-east-1.amazonaws.com -count 1 -show-detail true
ping: cannot resolve syslog-logs.us-east-1.amazonaws.com: Unknown host
はい、syslog-logs.us-east-1.amazonaws.comのみ名前解決に失敗しました。
と言うことで、裏側でRoute 53 VPC Resolverを参照している訳ではなさそうです。
それではSyslog設定を行います。
FsxId08042f911cbc0ead3::*> cluster log-forwarding show
This table is currently empty.
FsxId08042f911cbc0ead3::*> cluster log-forwarding create -destination vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com -port 6514 -protocol tcp-encrypted -facility local0 -verify-server true -force true -message-format rfc-5424
FsxId08042f911cbc0ead3::*> cluster log-forwarding show
Verify Syslog
Destination Host Port Protocol Server Facility
------------------------ ------ --------------- ------ --------
vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com
6514 tcp-encrypted true local0
IPspace: Default
FsxId08042f911cbc0ead3::*> cluster log-forwarding show -instance
Destination Host: vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com
Destination Port: 6514
Log Forwarding Protocol: tcp-encrypted
IPspace of Destination: Default
Verify Destination Server Identity: true
Syslog Facility: local0
Cached DNS of Last Successful Lookup: 10.0.1.226
Syslog Message Format: rfc-5424
Syslog Timestamp Format Override: no-override
Syslog Hostname Format Override: no-override
設定が完了しました。
配信されたログの確認
CloudWatch Logsを確認します。

はい、ログストリームが作成されていますね。ログストリームはVPCエンドポイントごとに作成されるようなので、VPCエンドポイントは用途ごとに専用で作成することになりそうです。個人的にはファシリティごとにプレフィックスが作成されると嬉しいなと感じました。
肝心のログは以下のとおりです。
<134>1 2026-06-25T01:54:50+00:00 FsxId08042f911cbc0ead3-01 kern 5679 audit - : FsxId08042f911cbc0ead3-01: 00000002.0000a935 0000b89a Thu Jun 25 2026 01:54:49 +00:00 [kern_audit:info:5679] 8003e800000011af:8003e80000001291 :: FsxId08042f911cbc0ead3:ssh :: 10.0.1.21:50316 :: FsxId08042f911cbc0ead3:fsxadmin:fsxadmin :: cluster log-forwarding create -destination vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com -port 6514 -protocol tcp-encrypted -facility local0 -verify-server true -force true -message-format rfc-5424 :: Pending
<134>1 2026-06-25T01:54:50+00:00 FsxId08042f911cbc0ead3-01 kern 5679 audit - : FsxId08042f911cbc0ead3-01: 00000002.0000a936 0000b89a Thu Jun 25 2026 01:54:49 +00:00 [kern_audit:info:5679] 8003e800000011af:8003e80000001291 :: FsxId08042f911cbc0ead3:ssh :: 10.0.1.21:50316 :: FsxId08042f911cbc0ead3:fsxadmin:fsxadmin :: cluster log-forwarding create -destination vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com -port 6514 -protocol tcp-encrypted -facility local0 -verify-server true -force true -message-format rfc-5424 :: Success

Syslog設定時の操作ログが記録されていますね。良い感じですね。
追加でコマンド実行します。
FsxId08042f911cbc0ead3::*> top
そのまま待つと、以下ログがCloudWatch Logsに配信されてきました。
<134>1 2026-06-25T01:58:14+00:00 FsxId08042f911cbc0ead3-01 kern 5679 audit - : FsxId08042f911cbc0ead3-01: 00000002.0000a96e 0000c095 Thu Jun 25 2026 01:58:13 +00:00 [kern_audit:info:5679] 8003e800000011af:8003e800000012aa :: FsxId08042f911cbc0ead3:ssh :: 10.0.1.21:50316 :: FsxId08042f911cbc0ead3:fsxadmin:fsxadmin :: top :: Pending
<134>1 2026-06-25T01:58:14+00:00 FsxId08042f911cbc0ead3-01 kern 5679 audit - : FsxId08042f911cbc0ead3-01: 00000002.0000a96f 0000c095 Thu Jun 25 2026 01:58:13 +00:00 [kern_audit:info:5679] 8003e800000011af:8003e800000012aa :: FsxId08042f911cbc0ead3:ssh :: 10.0.1.21:50316 :: FsxId08042f911cbc0ead3:fsxadmin:fsxadmin :: top :: Success
また、しばらくすると実際に私の方で操作した時のログだけではなく、裏側で実行されている時のログもどんどん出力されてきました。

ここら辺のログの絞り込みはFSxN側でコントロールすることはできないため、CloudWatch Logs側で後から加工する形になります。
次にCloudWatch Logs Insightsでログを確認してみましょう。
以下クエリを実行します。
SOURCE "arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/syslog/non-97-fsxn" START=-604800s END=0s |
fields @timestamp, @message
| parse @message "* :: * :: * :: * :: * :: *" as _hdr, access, client, principal, command, result
| filter result not like "Pending"
| filter principal not like "fsx-control-plane"
| parse principal "*:*:*" as _vs, _app, user
| parse client "*:*" as src_ip, _port
| sort @timestamp desc
| display @timestamp, src_ip, user, command, result
| limit 100

良い感じにfsxadminユーザーで操作したログだけが出力されました。
次に以下クエリを実行します。
SOURCE "arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/syslog/non-97-fsxn" START=-604800s END=0s |
fields @timestamp, hostname as node
| parse @message "* :: * :: * :: * :: * :: *" as _hdr, _access, _client, _principal, input, _result
| parse _access "*:*" as _avs, application
| parse _principal "*:*:*" as vserver, _appsvc, username
| parse _result /(?<state>[A-Za-z]+):?\s*(?<message>.*)/
| filter application = "ssh"
| filter state = "Success" or state = "Error"
| sort @timestamp desc
| display @timestamp, node, application, vserver, username, input, state, message

こちらも問題なく実行できていますね。
出力されている
FSxNフェイルオーバー時の管理アクティビティの監査ログ確認
FSxNがフェイルオーバーした際にも継続してログ出力されているかも確認したいです。
試してみましょう。
スループットキャパシティを変更してフェイルオーバーを行わせます。

フェイルオーバーが開始するとSSHのコネクションが切れます。
再接続を行い、LIFを確認すると、fsxadminやNFS/SMBの管理用のLIFが02ノードになっていることが分かります。
FsxId08042f911cbc0ead3::> network interface show
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId08042f911cbc0ead3
fsxadmin up/up 198.19.185.178/24 FsxId08042f911cbc0ead3-02
e0e false
inter_1 up/- 10.0.1.69/26 FsxId08042f911cbc0ead3-01
e0e true
inter_2 up/up 10.0.1.206/26 FsxId08042f911cbc0ead3-02
e0e true
svm
iscsi_1 up/- 10.0.1.87/26 FsxId08042f911cbc0ead3-01
e0e true
iscsi_2 up/up 10.0.1.249/26 FsxId08042f911cbc0ead3-02
e0e true
nfs_smb_management_1
up/up 198.19.185.130/24 FsxId08042f911cbc0ead3-02
e0e false
6 entries were displayed.
この状態でボリュームを作成します。
FsxId08042f911cbc0ead3::> volume create -vserver svm -volume vol2 -aggregate aggr1 -size 1GB -state online -policy default -tiering-policy none
[Job 52] Job succeeded: Successful
FsxId08042f911cbc0ead3::> vol show
Vserver Volume Aggregate State Type Size Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm svm_root aggr1 online RW 1GB 972.4MB 0%
svm vol1 aggr1 online RW 32GB 30.40GB 0%
svm vol2 aggr1 online RW 1GB 972.5MB 0%
3 entries were displayed.
FsxId08042f911cbc0ead3::> volume mount -vserver svm -volume vol2 -junction-path /vol2
監査ログを確認します。
FsxId08042f911cbc0ead3::> security audit log show -fields timestamp, node, application, vserver, username, input, state, message -application ssh -state Error|Success -timestamp >"Thu Jun 25 02:10:00 2026"
timestamp node application vserver username input state message
-------------------------- ------------------------- ----------- ---------------------- -------- ---------- ------- -------
"Thu Jun 25 02:17:46 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsxadmin Logging in Success -
"Thu Jun 25 02:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane
set -privilege diagnostic
Success -
"Thu Jun 25 02:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane
Logging out
Success -
"Thu Jun 25 02:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane
set -privilege diagnostic
Success -
"Thu Jun 25 02:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane
security login unlock -username diag
Success -
"Thu Jun 25 02:18:19 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsx-control-plane
Logging out
Success -
"Thu Jun 25 02:18:32 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsxadmin top Success -
"Thu Jun 25 02:20:17 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsxadmin volume create -vserver svm -volume vol2 -aggregate aggr1 -size 1GB -state online -policy default -tiering-policy none
Success -
"Thu Jun 25 02:24:30 2026" FsxId08042f911cbc0ead3-02 ssh FsxId08042f911cbc0ead3 fsxadmin volume mount -vserver svm -volume vol2 -junction-path /vol2
Success -
9 entries were displayed.
02ノードでコマンド受付がされていることが分かりますね。
それでは、CloudWatch Logs Insightsで以下クエリを実行します。
SOURCE "arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/syslog/non-97-fsxn" START=-1800s END=0s |
fields @timestamp, hostname as node
| parse @message "* :: * :: * :: * :: * :: *" as _hdr, _access, _client, _principal, input, _result
| parse _access "*:*" as _avs, application
| parse _principal "*:*:*" as vserver, _appsvc, username
| parse _result /(?<state>[A-Za-z]+):?\s*(?<message>.*)/
| filter state = "Success" or state = "Error"
| sort @timestamp asc
| display @timestamp, node, application, vserver, username, input, state, message

はい、フェイルオーバー中に実行したボリュームの作成およびマウントコマンドのログが配信されていることを確認できました。これは嬉しいですね。ちなみにログレコード内の時刻とCloudWatch Logsのタイムスタンプを見比べると配信までは1~4秒程度です。
スループットキャパシティの変更が完了し、フェイルバックが完了しました。
ボリュームをアンマウントします。
FsxId08042f911cbc0ead3::> vol unmount -vserver svm -volume vol2
FsxId08042f911cbc0ead3::> network interface show
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId08042f911cbc0ead3
fsxadmin up/up 198.19.185.178/24 FsxId08042f911cbc0ead3-01
e0e true
inter_1 up/up 10.0.1.69/26 FsxId08042f911cbc0ead3-01
e0e true
inter_2 up/- 10.0.1.206/26 FsxId08042f911cbc0ead3-02
e0e true
svm
iscsi_1 up/up 10.0.1.87/26 FsxId08042f911cbc0ead3-01
e0e true
iscsi_2 up/- 10.0.1.249/26 FsxId08042f911cbc0ead3-02
e0e true
nfs_smb_management_1
up/up 198.19.185.130/24 FsxId08042f911cbc0ead3-01
e0e true
6 entries were displayed.
FsxId08042f911cbc0ead3::> vol unmount -vserver svm -volume vol2
この時の監査ログは以下のとおりです。

今度は01のノードでfsxadminがボリュームのアンマウントをしたことがログからも確認できますね。
EMSイベントのSyslog転送
次にEMSイベントのSyslog転送ができるかどうか試してみます。
過去試した時にはFSxN側でEMSイベントに対してSyslog転送することはできませんでした。
試しに確認してみましょう。
FsxId08042f911cbc0ead3::> set diag
Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y
FsxId08042f911cbc0ead3::*> event notification ?
create Create an event notification
delete Delete event notifications
destination> Create, modify, delete and view event notification destinations.
history> The history directory
modify Modify event notifications
show Display event notifications
はい、どうやらできそうな雰囲気ですね。
つまりは従来CloudWatchメトリクスなどAWSレイヤーで検出できなかったイベントをCloudWatch Logsに配信されるログを介して把握し、管理者に通知をしたり、自動で対応をしたりということができるようになりました。アツいですね。
実際に試してみましょう。
まずは配信先の定義をします。
FsxId08042f911cbc0ead3::*> event notification destination create -name syslog -syslog vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com -syslog-port 6514 -syslog-transport tcp-encrypted -syslog-message-format rfc-5424
FsxId08042f911cbc0ead3::*> event notification destination show
Name Type Destination
-------------- ---------- ---------------------
syslog syslog vpce-09052e1d54acb0298-1930h81z.syslog-logs.us-east-1.vpce.amazonaws.com (port: 6514, transport: tcp-encrypted)
FsxId08042f911cbc0ead3::*> event notification destination show -instance
Destination Name: syslog
Type of Destination: syslog
Destination: vpce-09052e1d54acb0298-1930h81z.syslog-logs.
us-east-1.vpce.amazonaws.com (port: 6514,
transport: tcp-encrypted)
Server CA Certificates Present?: true
Client Certificate Issuing CA: -
Client Certificate Serial Number: -
Client Certificate Valid?: -
Syslog Port: 6514
Syslog Transport: tcp-encrypted
Syslog Message Format: rfc-5424
Syslog Timestamp Format Override: no-override
Syslog Hostname Format Override: no-override
System-Defined Destination: false
Access Control Role: fsxadmin
それではEMSイベントのSyslog配信設定を行います。フィルターはデフォルトで存在しているものを使用します。
FsxId08042f911cbc0ead3::*> event filter show
Filter Rule Rule SNMP Trap
Name Posn Type Message Name Severity Type Parameters
----------- ---- -------- ---------------- ------------- --------- -----------
default-trap-events
1 include * EMERGENCY, ALERT
* *=*
2 include callhome.* ERROR * *=*
3 include * * Standard, Built-in
*=*
4 exclude * * * *=*
important-events
1 include * EMERGENCY, ALERT
* *=*
2 include callhome.* ERROR * *=*
3 exclude * * * *=*
no-info-debug-events
1 include * EMERGENCY, ALERT, ERROR, NOTICE
* *=*
2 exclude * * * *=*
9 entries were displayed.
FsxId08042f911cbc0ead3::*> event notification create -filter-name no-info-debug-events -destinations syslog -access-control-role fsxadmin
FsxId08042f911cbc0ead3::*> event notification show
ID Filter Name Destinations
---- ------------------------------ -----------------
2 no-info-debug-events syslog
FsxId08042f911cbc0ead3::*> event notification show -instance
Internal Event Notification ID: 101
Event Notification ID: 2
Event Filter Name: no-info-debug-events
List of Event Notification Destinations: syslog
Access Control Role: fsxadmin
設定が完了しました。
試しにテストEMSイベントを発行します。
FsxId08042f911cbc0ead3::*> event notification destination check -node FsxId08042f911cbc0ead3-01 -destination-name syslog
Event "ems.eut.notice" was successfully sent to the specified destination.
CloudWatch Logsを確認すると、以下出力が愛rました。
<13>1 2026-06-25T02:56:33+00:00 FsxId08042f911cbc0ead3-01 notifyd - ems.eut.notice - A dummy syslog formatted string for a NOTICE event with value '0'.
<134>1 2026-06-25T02:56:34+00:00 FsxId08042f911cbc0ead3-01 kern 6223 audit - : FsxId08042f911cbc0ead3-01: 00000004.00005718 0000531d Thu Jun 25 2026 02:56:33 +00:00 [kern_audit:info:6223] 8003e800000002bf:8003e80000000541 :: FsxId08042f911cbc0ead3:ssh :: 10.0.1.21:55784 :: FsxId08042f911cbc0ead3:fsxadmin:fsxadmin :: event notification destination check -node FsxId08042f911cbc0ead3-01 -destination-name syslog :: Success
うまく配信されていますね。先ほどと同じVPCエンドポイントを使用してしまっているので、同じログストリームに出力されてしまっているのが少し分かりづらいところです。
実際にEMSイベントを配信させてみましょう。
イベントカタログを確認するパスワード変更でイベント発行がなされそうでした。
FsxId08042f911cbc0ead3::*> event catalog show -message-name *passwd*
Message Severity SNMP Trap Type
-------------------------------- ---------------- -----------------
passwd.changed NOTICE Severity-based
パスワード変更を行いEMSイベントを発行させます。
FsxId08042f911cbc0ead3::*> security login password -username fsxadmin
Enter your current password:
Enter a new password:
Enter it again:
FsxId08042f911cbc0ead3::*> event log show -time >"6/25/2026 03:00:00"
Time Node Severity Event
------------------- ---------------- ------------- ---------------------------
6/25/2026 03:07:32 FsxId08042f911cbc0ead3-01
NOTICE passwd.changed: passwd for user 'fsxadmin' changed.
しかし、待てども待てどもCloudWatch Logsにはこちらのログが配信されません。
フィルターが影響しているのかと思い検証してみましたが、特に問題ないように見えます。
FsxId08042f911cbc0ead3::*> event filter test -filter-name no-info-debug-events -message-name passwd.changed
The message-name "passwd.changed" is included in the given filter.
色々カタログを見ていると、ディスクフル状態にするEMSイベントが発行するようです。
ボリュームサイズを20MBにして、1GBの書き込みをしてあげます。
FsxId08042f911cbc0ead3::*> volume modify -volume vol1 -vserver svm -size 20MB
Volume modify successful on volume vol1 of Vserver svm.
FsxId08042f911cbc0ead3::*> volume show
Vserver Volume Aggregate State Type Size Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm svm_root aggr1 online RW 1GB 972.2MB 0%
svm vol1 aggr1 online RW 20MB 18.59MB 2%
svm vol2 aggr1 online RW 1GB 972.5MB 0%
3 entries were displayed.
$ sudo mount -t nfs svm-004edd82ad16c9420.fs-08042f911cbc0ead3.fsx.us-east-1.amazonaws.com:/vol1 /mnt/fsxn/
$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
svm-004edd82ad16c9420.fs-08042f911cbc0ead3.fsx.us-east-1.amazonaws.com:/vol1 nfs4 19M 384K 19M 2% /mnt/fsxn
$ sudo dd if=/dev/urandom of=/mnt/fsxn/random_pattern_binary_block_1GiB bs=1M count=1024
dd: error writing '/mnt/fsxn/random_pattern_binary_block_1GiB': No space left on device
94+0 records in
93+0 records out
97517568 bytes (98 MB, 93 MiB) copied, 0.457489 s, 213 MB/s
書き込みが途中で終了しました。
EMSイベントを確認すると、確かにディスクフルになったことによりイベントが発行されていました。
FsxId08042f911cbc0ead3::*> event log show -time >"6/25/2026 03:00:00"
Time Node Severity Event
------------------- ---------------- ------------- ---------------------------
6/25/2026 03:33:31 FsxId08042f911cbc0ead3-01
ALERT monitor.volume.full: Volume "vol1@vserver:97f93ade-702f-11f1-97f1-2bf30b9c5c7a" is full (using or reserving 100% of space and 0% of inodes).
6/25/2026 03:33:31 FsxId08042f911cbc0ead3-01
ALERT wafl.vol.full: Insufficient space on volume vol1@vserver:97f93ade-702f-11f1-97f1-2bf30b9c5c7a to perform operation. 72.0KB was requested but only 28.0KB was available.
6/25/2026 03:23:26 FsxId08042f911cbc0ead3-01
NOTICE passwd.changed: passwd for user 'fsxadmin' changed.
6/25/2026 03:07:32 FsxId08042f911cbc0ead3-01
NOTICE passwd.changed: passwd for user 'fsxadmin' changed.
4 entries were displayed.
また、CloudWatch Logsを確認すると以下ログが配信されていました。やったね。
<1>1 2026-06-25T03:33:31+00:00 FsxId08042f911cbc0ead3-01 kernel - monitor.volume.full - Volume "vol1@vserver:97f93ade-702f-11f1-97f1-2bf30b9c5c7a" is full (using or reserving 100% of space and 0% of inodes).
<1>1 2026-06-25T03:33:31+00:00 FsxId08042f911cbc0ead3-01 kernel - wafl.vol.full - Insufficient space on volume vol1@vserver:97f93ade-702f-11f1-97f1-2bf30b9c5c7a to perform operation. 72.0KB was requested but only 28.0KB was available.
Logs Insightsでも以下のようにクエリできます。
SOURCE "arn:aws:logs:us-east-1:<AWSアカウントID>:log-group:/syslog/non-97-fsxn" START=-1800s END=0s |
parse @message "<*>1 * * * - * - *" as pri, _ts, host, app, msgname, msg
| filter app = "kernel" or app = "notifyd"
| sort @timestamp desc
| display @timestamp, host, pri, msgname, msg

長期間ログを保存したい要件やEMSイベントをトリガーに通知や操作をする運用に対応しやすくなった
Amazon FSx for NetApp ONTAPの管理アクティビティの監査ログをSyslogのVPCエンドポイントを用いてCloudWatch Logsに配信してみました。
長期間ログを保存したい要件やEMSイベントをトリガーに通知や操作をする運用に対応しやすくなったなと感じています。個人的には非常に嬉しいアップデートでした。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!







