Amazon FSx ファイルシステムのステータスを監視してみた

背景

FSxのステータス変更に関する通知を設定して、任意の数の Amazon FSx ファイルシステムのステータスを効率的に監視するための手順を検証する。
最小容量のストレージで作成し、ステータスが異常の場合、メール通知する仕組みを考えて、手順を残していきたいと思います。

前提条件

・検証用ファイルシステムが構築済みであること(OpenZFSの64 GiB)
・下記のAmazon SNSが作成されていること
①メール通知用トSNSピック作成しておく
②サブスクリプションに通知用メールアドレスを登録しておく

手順

1.関数の作成(Python3.12)

Lambda関数ロール事前に作成しておく(作成手順を割愛します。)

下記の環境変数を作成する
キー:LambdaSNSTopic 値:事前に作成したメール通知用トSNSピックのARN

Lambda関数のコードは以下の通りです。

import json
import boto3
import os

def lambda_handler(event, context):
    LAMBDASNSTOPIC = os.environ['LambdaSNSTopic']

    fsx = boto3.client('fsx')
    filesystems = fsx.describe_file_systems()
    for filesystem in filesystems.get('FileSystems'):
        status = filesystem.get('Lifecycle')
        filesystem_id = filesystem.get('FileSystemId')
        sns_client = boto3.client('sns')
        if status != 'AVAILABLE':
            print("The file system: {} needs attention.".format(filesystem_id))
            sns_client.publish(TopicArn=LAMBDASNSTOPIC,Message="File System: " + filesystem_id + " needs attention. The status is: " + status, Subject = "FSx Health Warning!")
        else:
            print("The file system: {} is in a healthy state, and is reachable and available for use.".format(filesystem_id))

2.Lambda関数の実行方法(通常運用時)

Amazon EventBridge ルールを作成し、
スケジュールパターンで、通常のレートで実行されるスケジュール(10 分ごとなど)でLambda関数を起動するようにルールを作成する(作成方法を割愛します)

3.Lambda関数の実行方法(テスト時)

Lambdaのテスト用イベントJSON を保存し、
コードタブの「Test」をクリックする。

テスト用イベントJSON(ディフォルト)
イベント名:test

実行例

file

4.メール通知の確認

file

参考

https://aws.amazon.com/jp/blogs/news/monitoring-the-health-of-amazon-fsx-file-systems-using-amazon-eventbridge-and-aws-lambda/

Last modified: 2024-07-20

Author