Hitachi

JP1 Version 13 JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス


11.2.2 導入(AWS Lambda連携ツール(JP1イベント登録コマンド対応版))

〈この項の構成〉

(1) 事前準備

(a) CloudWatch Logs(EC2上のアプリケーションログをJP1イベントとして登録する場合)

JP1イベントとして登録したいアプリケーションログをCloudWatch Logsへ転送するために,対象のEC2にCloudWatch Logsエージェントのインストールとセットアップを行います。

詳細については,Amazon CloudWatchのドキュメントを参照してください。

■クイックスタート:実行中のEC2 LinuxインスタンスにCloudWatch Logsエージェントをインストールして設定する

(b) CloudTail(CloudTrailの証跡をJP1イベントとして登録する場合)

CloudTrailが記録した証跡をJP1イベントとして登録する場合,CloudTailの証跡をCloudWatch Logsへ転送する設定を行います。

詳細については,AWS Cloud Trailのドキュメントを参照してください。

■CloudWatch Logsへのイベントの送信

(c) S3の事前準備

Lambda関数を動作させるため,Lambda関数の設定ファイルを格納するバケットを作成します。

詳細については,Amazon Simple Storage Serviceのドキュメントを参照してください。

■バケットの作成

重要

AWS Lambda連携ツール(JP1イベント登録コマンド対応版)のLambda関数からダウンロードできる設定とする必要があります。

(d) SQSの事前準備

AWS Lambda連携ツール(JP1イベント登録コマンド対応版)を動作させるため,JP1イベント情報を格納するSQSを作成します。

詳細については,Amazon Simple Queue Serviceのドキュメントを参照してください。

■Amazon SQS(Amazon Simple Queue Service)の開始方法

「ステップ1:キューを作成する」の4.では「FIFO」を選択します。説明に従い,キュー名称のサフィックスに「.fifo」を付与してください。

重要
  • AWS Lambda連携ツール(JP1イベント登録コマンド対応版)のLambda関数からキューを追加できる設定にする必要があります。

  • AWS Lambda連携ツール(JP1イベント登録コマンド対応版)のJP1イベント送信機能からキューを取得/削除できる設定にする必要があります。

(2) インストール

(a) JP1イベント送信機能の配置

JP1イベント送信機能を配置します。

  1. JP1イベント送信機能の実行サーバーへログインします。

  2. 「sendevent_aws_lambda」ディレクトリを任意のディレクトリにコピーします。

  3. 手順2.でコピーしたディレクトリおよびファイルに必要な権限を付与します。

    表11‒5 JP1イベント送信機能のディレクトリ構成

    項番

    ディレクトリ構成

    説明

    必要な権限

    1

    sendevent_aws_lambda

    AWS Lambda連携ツールディレクトリ

    書込権限※1

    2

    sendevent_aws.py

    AWS Lambda連携ツール

    実行権限※2

    3

    logging.conf

    ログ設定ファイル

    読込権限※3

    注※1

    書込権限:JP1イベント送信機能を実行するユーザーが,書き込みできる権限を付与してください。

    注※2

    実行権限:JP1イベント送信機能を実行するユーザーが,実行できる権限を付与してください。

    注※3

    読込権限:JP1イベント送信機能を実行するユーザーが,読み込みできる権限を付与してください。

(b) Lambda関数の設定ファイルの配置

Lambda関数の設定ファイルを配置します。

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「S3」を選択します。

  3. 11.2.2(1)(c) S3の事前準備」で作成したバケットを選択します。

  4. 「sendevent_sqs」ディレクトリにある次のファイルをアップロードします。

    • eventconf.csv

    • eventignore.csv

    • logging.conf

(c) Lambda関数の作成

Lambda関数を作成します。

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「Lambda」−「関数」を選択します。

  3. 「関数の作成」をクリックします。

  4. 「一から作成」を選択し,次の情報を入力します。「関数の作成」をクリックします。

    表11‒6 Lambda関数の基本的な情報

    項番

    項目

    1

    関数名

    sendevent_sqs

    2

    ランタイム

    Python 3.7

    3

    実行ロール

    次の権限を持つロールを指定

    ・CloudWatch Logsに書き込み可能なアクセス権限※1

    ・S3のファイルを読み込み可能なアクセス権限※2

    ・SQSに書き込み可能なアクセス権限※3

    注※1

    CloudWatch Logsへのアクセスに必要なポリシーを次に示します。

    ・CreateLogGroup

    ・CreateLogStream

    ・PutLogEvents

    注※2

    S3へのアクセスに必要なポリシーを次に示します。

    ・GetObject

    注※3

    SQSへのアクセスに必要なポリシーを次に示します。

    ・SendMessage

  5. 「Lambda」−「関数」−「sendevent_sqs」−「設定」タブを選択します。

  6. 「関数コード」に次の表に示す情報を入力します。

    表11‒7 Lambda関数の関数コード

    項番

    項目

    1

    コードエントリタイプ

    .zipファイルをアップロード

    「sendevent_sqs」ディレクトリの「sendevent_sqs.zip」を選択します。

    2

    ランタイム

    Python3.7

    3

    ハンドラ

    sendevent_sqs.lambda_handler

  7. 「保存」をクリックします。

(3) セットアップ

(a) JP1イベント送信機能(sendevent_aws_lambda.py)

JP1イベント送信機能のAWS CLI,JP1/Baseに関する設定手順について説明します。

設定項目
  • AWS CLIインストールディレクトリ

  • JP1/Baseインストールディレクトリ

  • AWSアクセスキーID/シークレットアクセスキー

  • AWSリージョン

  • プロキシ設定

  • SQS URL

  1. AWS Lambda連携ツール(JP1イベント登録コマンド対応版)のJP1イベント送信機能の実行サーバーへログインします。

  2. 11.2.2(2)(a) JP1イベント送信機能の配置」でコピーした「sendevent_aws_lambda」ディレクトリ配下にある「sendevent_aws_lambda.py」をテキストエディターで開きます。

  3. 18〜25行目のユーザー可変値を設定します。

    表11‒8 JP1イベント送信機能(sendevent_aws_lambda.py)のユーザー可変値

    項番

    パラメーター

    必須/任意

    内容

    1

    AWS_CLI_DIR

    必須

    AWS CLIのインストールディレクトリを指定します。

    2

    BASE_DIR

    必須

    JP1/BASEのインストールディレクトリを指定します。

    3

    ACCESS_KEY

    任意

    AWSのアクセスキーIDを設定します。ただし,AWS CLI(aws configure)でアクセスキーIDを設定されている場合は設定不要です。※1

    4

    SECRET_ACCESS_KEY

    任意

    AWSのシークレットアクセスキーを設定します。ただし,AWS CLI(aws configure)でシークレットアクセスキーを設定されている場合は設定不要です。※1

    5

    DEFAULT_REGION

    必須

    AWSのリージョンを設定します。

    6

    HTTP_PROXY

    任意

    AWS CLIをプロキシ経由でアクセスする場合は,プロキシURL,ユーザー名,パスワードを指定します。※2

    指定されていない場合は,OS側で設定されているHTTP_PROXY/HTTPS_PROXYの値を使用します。

    7

    HTTPS_PROXY

    任意

    8

    SQS_QUEUE_URL

    必須

    11.2.2(1)(d) SQSの事前準備」で作成したJP1イベント情報が格納されているSQSのURLを指定します。

    注※1

    指定するアカウントには,次のポリシーが必要です。

    ・ReceiveMessage

    ・DeleteMessage

    注※2

    設定値については,Amazon Command Line Interfaceのドキュメントを参照してください。

    ■HTTPプロキシを使用する−プロキシを認証する

    設定例を次に示します。

    15: ###############################################################
    16: # ユーザー可変値(値はダブルクォートでくくる)
    17: ###############################################################
    18: AWS_CLI_DIR = r"C:\Program Files\Amazon\AWSCLI\bin"
    19: BASE_DIR = r"C:\Program Files (x86)\Hitachi\JP1Base"
    20: ACCESS_KEY = "AAAAAAAAAA"
    21: SECRET_ACCESS_KEY = "BBBBBBBBBB"
    22: DEFAULT_REGION = "ap-northeast-1"
    23: HTTP_PROXY = "http://username:password@proxy.example.com:1234"
    24: HTTPS_PROXY = "http://username:password@proxy.example.com:1234"
    25: SQS_QUEUE_URL = "https://sqs.ap-northeast-1.amazonaws.com/999999999999/queue.fifo"
    26: ###############################################################
  4. 手順2.でユーザー可変値を設定したあと,次に示す文字コード/改行コードで保存してください。

    表11‒9 JP1イベント送信機能(sendevent_aws_lambda.py)の文字コード/改行コード

    項番

    項目

    1

    文字コード

    UTF-8(BOM無し)

    2

    改行コード

    LF(\n)またはCRLF(\r\n

(b) JP1イベント送信機能のログ設定ファイル(logging.conf)

JP1イベント送信機能のログに関する設定手順について説明します。

設定項目
  • ログレベル

  • ログファイル

  • ログローテーションサイズ

  • ログ世代数

  1. JP1イベント送信機能の実行サーバーへログインします。

  2. 11.2.2(2)(a) JP1イベント送信機能の配置」でコピーした「sendevent_aws_lambda」配下にある「logging.conf」をテキストエディターで開きます。

  3. 次の行を変更します。

    11行目

    11: level=INFO※1

    17行目

    17: args=('sendevent_aws_lambda.log', 'a', 2097152, 3, 'utf-8')※2※3※4
    注※1

    ログレベルを指定します。DEBUG,INFO,WARNING,ERROR,またはCRITICALを指定できます。

    注※2

    ログファイルパスを指定します。絶対パス,または相対パスを指定できます。

    注※3

    ログローテーションサイズ(バイト)を指定します。

    注※4

    ログ世代数を指定します。

    詳細については,Pythonのドキュメントを参照してください。

    ■環境設定ファイルの書式

  4. 手順2.でユーザー可変値を設定したあと,次に示す文字コード/改行コードで保存してください。

    表11‒10 JP1イベント送信機能のログ設定ファイル(logging.conf)の文字コード/改行コード

    項番

    項目

    1

    文字コード

    UTF-8

    2

    改行コード

    LF(\n)またはCRLF(\r\n

(c) イベント定義ファイル(eventconf.csv)

AWS Lambda連携ツール(JP1イベント登録コマンド対応版)の登録するJP1イベントの設定手順について説明します。

設定項目
  • JP1イベント登録条件

  • JP1イベント情報

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「S3」を選択します。

  3. 11.2.2(1)(c) S3の事前準備」で作成したバケットを選択します。

  4. 手順3.で選択したバケットから「eventconf.csv」を適当なディレクトリへダウンロードします。

    バケットにファイルが存在しない場合は「sendevent_sqs」配下にある上記ファイルを,適当なディレクトリへコピーしてください。

  5. 手順4.でダウンロードまたはコピーした「eventconf.csv」を,テキストエディターで開き,イベント定義を設定します。

    • 1行1エントリーで記載してください。

    • 1文字目が「#」の行はコメント行となり無視されます。

    • CSV形式で記載してください。

    • JP1イベント定義は上から検索され,はじめに条件に合致した条件のJP1イベントが発行されます。

    CSVの各カラムを次の表に示します。

    表11‒11 イベント定義の各カラム

    カラム番号

    設定値

    必須/任意

    値の範囲

    1

    JP1イベントとして登録したいログを特定する正規表現を指定します。

    必須

    正規表現がサポートする範囲

    2

    JP1イベントとして登録したいログのロググループ名を指定します。

    省略した場合は,すべてのロググループが対象となります。

    任意

    AWSのロググループ名がサポートする範囲

    3

    登録するJP1イベントのイベントIDを指定します。※1

    任意

    jevsendコマンドの引数-iがサポートする範囲

    4

    登録するJP1イベントのメッセージテキストを指定します。

    省略した場合は,対象のログを使用します。※2

    任意

    jevsendコマンドの引数-mがサポートする範囲

    5

    登録するJP1イベントの送信先イベントサーバー名を指定します。※1

    任意

    jevsendコマンドの引数-dがサポートする範囲

    6

    登録するJP1イベントの送信元イベントサーバー名を指定します。※1

    任意

    jevsendコマンドの引数-sがサポートする範囲

    7以降

    登録するJP1イベントの拡張属性を指定します。※1※3

    拡張属性を複数指定する場合は,カラム番号:7以降で指定します。

    任意

    jevsendコマンドの引数-eがサポートする範囲。

    なお,拡張属性値にスペースが含まれる場合でも「"」の指定は不要です。(「"」も拡張属性値と認識されます)

    注※1

    省略時は,対応するjevsendコマンドのオプションの省略時の動作となります。

    注※2

    1,023バイトを超えるメッセージの場合は,1,023バイトまでを対象とします。

    また,メッセージに改行コードが含まれている場合は,改行コードは半角スペースに変換されます。

    注※3

    指定された拡張属性以外にAWS Lambda連携ツール(JP1イベント登録コマンド対応版)が追加する拡張属性があります。追加する拡張属性を次に示します。

    表11‒12 AWS Lambda連携ツール(JP1イベント登録コマンド対応版)が追加する拡張属性

    項番

    属性名

    1

    AWS_LAMBDA_LOG_TIMESTAMP

    ログがCloudWatch Logsへ登録されたUNIX時間

    2

    AWS_LAMBDA_LOG_GROUP

    対象のロググループ名

    3

    AWS_LAMBDA_LOG_STREAM

    対象のログストリーム名

    4

    AWS_LAMBDA_SUBSCRIPTION_FILTERS

    対象のサブスクリプション フィルター名をコンマ区切りで設定した値

    (設定値が1つの場合はコンマなし)

    5

    AWS_LAMBDA_LOG_DATETIME

    項番1を「YYYY/mm/dd HH:MM:SS」に変換した文字列

    6

    AWS_LAMBDA_MSGID

    対象JP1イベント固有のID

    注※ 同じ値であれば,同一のJP1イベントと判断することが可能です。

    設定例を次に示します。

    #Condition,LogGroupId,EventID,Message,Destination,Source,ExtAttr
    .*Error.*,LOGGROUP1,1111,message1,DEST_HOST,SRC_HOST,EXATTR1=value1,EXATTR2=value2
    .*Warning.*,,2222,message2,DEST_HOST,SRC_HOST,EXATTR1=aaa bbb,EXATTR2=value
  6. 手順5.で設定を変更したあと,次に示す文字コード/改行コードで保存してください。

    表11‒13 イベント定義ファイル(eventconf.csv)の文字コード/改行コード

    項番

    項目

    1

    文字コード

    UTF-8

    2

    改行コード

    LF(\n)またはCRLF(\r\n

  7. 手順3.のバケットを再度選択し,設定変更した「eventconf.csv」をアップロードします。

(d) イベント除外ファイル(eventignore.csv)

AWS Lambda連携ツール(JP1イベント登録コマンド対応版)の除外するJP1イベントの設定手順について説明します。

設定項目
  • JP1イベント除外条件

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「S3」を選択します。

  3. 11.2.2(1)(c) S3の事前準備」で作成したバケットを選択します。

  4. 手順3.で選択したバケットから「eventignore.csv」を適当なディレクトリへダウンロードします。

    バケットにファイルが存在しない場合は「sendevent_sqs」配下にある上記ファイルを,適当なディレクトリへコピーしてください。

  5. 手順4.でダウンロードまたはコピーした「eventignore.csv」をテキストエディターで開き,イベント定義を設定します。

    • 1行1エントリーで記載してください。

    • 1文字目が「#」の行はコメント行となり無視されます。

    • CSV形式で記載してください。

    • JP1イベント除外定義は上から順番に判定され,合致した場合JP1イベント対象外となります。

    CSVの各カラムを次の表に示します。

    表11‒14 イベント除外定義の各カラム

    カラム番号

    設定値

    必須/任意

    値の範囲

    1

    JP1イベントとして除外したいログを特定する正規表現を指定します。

    必須

    正規表現がサポートする範囲

    2

    JP1イベントとして除外したいログのロググループ名を指定します。

    省略した場合は,すべてのロググループが対象となります。

    任意

    AWSのロググループ名がサポートする範囲

    設定例を次に示します。

    #Condition,LogGroupId
    .*INFO.*,LOGGROUP2
    .*DEBUG.*,
  6. 手順2.で設定を変更したあと,次に示す文字コード/改行コードで保存してください。

    表11‒15 イベント除外ファイル(eventignore.csv)の文字コード/改行コード

    項番

    項目

    1

    文字コード

    UTF-8

    2

    改行コード

    LF(\n)またはCRLF(\r\n

  7. 手順3.のバケットを再度選択し,設定変更した「eventignore.csv」をアップロードします。

(e) Lambda関数(sendevent_sqs.py)

Lambda関数の設定手順について説明します。

設定項目
  • SQS URL

  • S3バケット名

  • 実行トリガー(JP1イベント登録対象ログ)

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「Lambda」−「関数」−「sendevent_sqs」−「設定」タブを選択します。

  3. 「環境変数」に次の表に示す内容を設定します。

    表11‒16 Lambda関数の環境変数

    項番

    キー

    1

    SQS_QUEUE_URL

    11.2.2(1)(d) SQSの事前準備」で作成したJP1イベント情報が格納されているSQSのURLを指定します。

    2

    S3_BUCKET_NAME

    11.2.2(1)(c) S3の事前準備」で作成したAWS Lambda連携ツール(JP1イベント登録コマンド対応版)のLambda関数の設定ファイルを格納するS3バケット名を指定します。

  4. 「Designer」の「+ トリガーを追加」をクリックし,JP1イベントとして登録したいログをトリガーとして追加します。複数のトリガーを追加できます。

    表11‒17 Lambda関数のトリガー

    項番

    項目

    備考

    1

    トリガー

    CloudWatch Logs

    2

    ロググループ

    JP1イベントとして登録したいログを含むロググループを指定します。

    AWS Lambda連携ツール(JP1イベント登録コマンド対応版)のLambda関数自身が出力するログを含むロググループは指定しないでください。

    3

    フィルターの名前

    フィルターの名前を指定します

    4

    フィルターパターン

    JP1イベントとして登録したいログのフィルターパターンを指定します。

    特に指定しなくても問題ありません。

  5. 「保存」をクリックします。

(f) Lambda関数のログ設定ファイル(logging.conf)

AWS Lambda連携ツール(JP1イベント登録コマンド対応版)のLambda関数のログに関する設定手順について説明します。

設定項目
  • ログレベル

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「S3」を選択します。

  3. 11.2.2(1)(c) S3の事前準備」で作成したバケットを選択します。

  4. 手順3.で選択したバケットから「logging.conf」を適当なディレクトリへダウンロードします。

    バケットにファイルが存在しない場合は「sendevent_sqs」配下にある上記ファイルを適当なディレクトリへコピーしてください。

  5. 手順4.でダウンロードまたはコピーした「logging.conf」をテキストエディターで開き,次の行を変更します。

    11行目

    11: level=INFO
    注※

    ログレベルを指定します。DEBUG,INFO,WARNING,ERROR,またはCRITICALを指定できます。

    詳細については,Pythonのドキュメントを参照してください。

    ■環境設定ファイルの書式

  6. 手順2.で設定を変更したあと,次の文字コード/改行コードで保存してください。

    表11‒18 Lambda関数のログ設定ファイル(logging.conf)の文字コード/改行コード

    項番

    項目

    1

    文字コード

    UTF-8

    2

    改行コード

    LF(\n)またはCRLF(\r\n

  7. 手順3.のバケットを再度選択し,設定変更した「logging.conf」をアップロードします。

  8. 設定ファイルをアップロードしたあと,Lambda関数を再起動(Lambda関数の保存など)します。

(4) アンインストール

(a) JP1イベント送信機能のアンインストール

JP1イベント送信機能のアンインストール手順を次に示します。

  1. JP1イベント送信機能の実行サーバーへログインします。

  2. 11.2.2(2)(a) JP1イベント送信機能の配置」でコピーした「sendevent_aws_lambda」ディレクトリを削除します。

(b) Lambda関数のアンインストール

Lambda関数のアンインストール手順を次に示します。

  1. ブラウザーからAWSマネジメントコンソールにログインします。

  2. サービスから「Lambda」−「関数」を選択します。

  3. 「sendevent_sqs」を選択し,「アクション」−「削除」を実行します。

  4. サービスから「S3」を選択します。

  5. 11.2.2(1)(c) S3の事前準備」で作成したバケットを選択します。

  6. 次のファイルを選択し,「アクション」−「削除」を実行します。

    • entconf.csv

    • eventignore.csv

    • logging.conf