11.6.2 導入(AWS CloudWatch連携ツール)
- 〈この項の構成〉
(1) 事前準備
(a) CloudWatch Logs(EC2上のアプリケーションログをJP1イベントとして登録する場合)
-
JP1イベントとして登録したいアプリケーションログをCloudWatch Logsへ転送するために,対象のEC2にCloudWatch Logsエージェントのインストールとセットアップを行います。
詳細については,Amazon CloudWatchのドキュメントを参照してください。
■クイックスタート:実行中のEC2 LinuxインスタンスにCloudWatch Logsエージェントをインストールして設定する
-
CloudWatch Logsへ転送されるアプリケーションログを解析するためのメトリクスフィルタを作成します。
詳細については,Amazon CloudWatchのドキュメントを参照してください。
■クイックスタート:フィルターを使用したログイベントからのメトリクスの作成
-
作成したメトリクスフィルタを監視するアラームを作成します。
詳細については,Amazon CloudWatchのドキュメントを参照してください。
■クイックスタート:Amazon CloudWatch でのアラームの使用
(b) CloudTrailの証跡をJP1イベントとして登録する場合
-
CloudTrailが記録した証跡をJP1イベントとして登録する場合,CloudTrailの証跡をCloudWatch Logsへ転送する設定を行います。
詳細については,AWS Cloud Trailのドキュメントを参照してください。
■CloudWatch Logsへのイベントの送信
-
CloudTrailの証跡を解析するメトリクスフィルタを作成し,メトリクスフィルタを監視するアラームを作成します。
詳細については,Amazon CloudWatchのドキュメントを参照してください。
■Creating CloudWatch alarms for CloudTrail events: examples(英語)
(2) インストール
(a) AWS CloudWatch連携ツールの配置
AWS CloudWatch連携ツールを配置します。
-
AWS CloudWatch連携ツールの実行サーバーへログインします。
-
「sendevent_aws」ディレクトリを任意のディレクトリにコピーします。
-
手順2.でコピーしたディレクトリおよびファイルに必要な権限を付与します。
表11‒79 AWS CloudWatch連携ツールのディレクトリ構成 項番
ディレクトリ構成
説明
必要な権限
1
sendevent_aws
AWS CloudWatch連携ツールディレクトリ
書込権限※1
2
sendevent_aws.py
AWS CloudWatch連携ツール
実行権限※2
3
logging.conf
ログ設定ファイル
読込権限※3
4
eventconf.csv
イベント定義ファイル
読込権限※3
5
eventignore.csv
イベント除外ファイル
読込権限※3
- 注※1
-
書込権限:AWS CloudWatch連携ツールを実行するユーザーが,書き込みできる権限を付与してください。
- 注※2
-
実行権限:AWS CloudWatch連携ツールを実行するユーザーが,実行できる権限を付与してください。
- 注※3
-
読込権限:AWS CloudWatch連携ツールを実行するユーザーが,読み込みできる権限を付与してください。
(3) セットアップ
(a) AWS CloudWatch連携ツール
AWS CloudWatch連携ツールのAWS CLI,JP1/Baseに関する設定手順について説明します。
- 設定項目
-
-
AWS CLIインストールディレクトリ
-
JP1/Baseインストールディレクトリ
-
AWSアクセスキーID/シークレットアクセスキー
-
AWSリージョン
-
プロキシ設定
-
-
AWS CloudWatch連携ツールの実行サーバーへログインします。
-
「11.6.2(2)(a)AWS CloudWatch連携ツールの配置」でコピーした「sendevent_aws」ディレクトリ配下にある「sendevent_aws.py」をテキストエディターで開きます。
-
18〜25行目のユーザー可変値を設定します。
表11‒80 AWS CloudWatch連携ツール(sendevent_aws.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
任意
- 注※1
-
指定するアカウントには,次のポリシーが必要です。
・DescribeAlarms
・DescribeAlarmHistory
- 注※2
-
設定値については,Amazon Command Line Interfaceのドキュメントを参照してください。
■HTTPプロキシを使用する−プロキシを認証する
設定例を次に示します。
19: ############################################################### 20: # ユーザ可変値(値はダブルクォートで括る) 21: ############################################################### 22: AWS_CLI_DIR = r"C:\Program Files\Amazon\AWSCLI\bin" 23: BASE_DIR = r"C:\Program Files (x86)\Hitachi\JP1Base" 24: ACCESS_KEY = "AAAAAAAAAA" 25: SECRET_ACCESS_KEY = "BBBBBBBBBB" 26: DEFAULT_REGION = "ap-northeast-1" 27: HTTP_PROXY = "http://username:password@proxy.example.com:1234" 28: HTTPS_PROXY = "http://username:password@proxy.example.com:1234" 29: ###############################################################
-
手順2.でユーザー可変値を設定したあと,次に示す文字コード/改行コードで保存してください。
表11‒81 AWS CloudWatch連携ツール(sendevent_aws.py)の文字コード/改行コード 項番
項目
値
1
文字コード
UTF-8(BOM無し)
2
改行コード
LF(\n)またはCRLF(\r\n)
(b) AWS CloudWatch連携ツールのログ設定ファイル(logging.conf)
AWS CloudWatch連携ツールのログに関する設定手順について説明します。
- 設定項目
-
-
ログレベル
-
ログファイル
-
ログローテーションサイズ
-
ログ世代数
-
-
AWS CloudWatch連携ツールの実行サーバーへログインします。
-
「11.6.2(2)(a)AWS CloudWatch連携ツールの配置」でコピーした「sendevent_aws」配下にある「logging.conf」をテキストエディターで開きます。
-
次の行を変更します。
11行目
11: level=INFO※1
17行目
17: args=('sendevent_aws.log', 'a', 2097152, 3, 'utf-8')※2※3※4- 注※1
-
ログレベルを指定します。DEBUG,INFO,WARNING,ERROR,またはCRITICALを指定できます。
- 注※2
-
ログファイルパスを指定します。絶対パス,または相対パスを指定できます。
- 注※3
-
ログローテーションサイズ(バイト)を指定します。
- 注※4
-
ログ世代数を指定します。
詳細については,Pythonのドキュメントを参照してください。
■環境設定ファイルの書式
-
手順2.でユーザー可変値を設定したあと,次に示す文字コード/改行コードで保存してください。
表11‒82 AWS CloudWatch連携ツールのログ設定ファイル(logging.conf)の文字コード/改行コード 項番
項目
値
1
文字コード
UTF-8
2
改行コード
LF(\n)またはCRLF(\r\n)
(c) イベント定義ファイル(eventconf.csv)
AWS CloudWatch連携ツールの登録するJP1イベントの設定手順について説明します。
- 設定項目
-
-
JP1イベント登録条件
-
JP1イベント情報
-
-
AWS CloudWatch連携ツールの実行サーバーへログインします。
-
AWS CloudWatch連携ツールディレクトリ配下にある「eventconf.csv」をエディタで開き,イベント定義を設定します。
-
1行1エントリーで記載してください。
-
1文字目が「#」の行はコメント行となり無視されます。
-
CSV形式で記載してください。
-
JP1イベント定義は上から検索され,はじめに条件に合致した条件のJP1イベントが発行されます。
CSVの各カラムを次の表に示します。
表11‒83 イベント定義の各カラム カラム番号
設定値
必須/任意
値の範囲
1
JP1イベントとして登録したいアラームのアラーム名を指定します。
該当のアラームを対象としたい場合に指定します。
必須※1
AWSのアラーム名がサポートする範囲
2
JP1イベントとして登録したいアラームのメトリクスの名前空間を指定します。
該当のメトリクスの名前空間のアラームを対象としたい場合に指定します。
メトリクス名(カラム番号:3)を指定する場合は指定必須です。
アラーム名(カラム番号:1)を指定した場合は無視されます。
必須※1
AWSのメトリクスの名前空間がサポートする範囲
3
JP1イベントとして登録したいアラームのメトリクス名を指定します。
該当のメトリクスのアラームを対象としたい場合に指定します。
アラーム名(カラム番号:1)を指定した場合は無視されます。
必須※1
AWSのメトリクス名がサポートする範囲
4
登録するJP1イベントのイベントIDを指定します。※2
任意
jevsendコマンドの引数-iがサポートする範囲
5
登録するJP1イベントのメッセージテキストを指定します。
省略した場合は,アラームのstateReasonの値を使用します。※4
任意
jevsendコマンドの引数-mがサポートする範囲
6
登録するJP1イベントの送信先イベントサーバー名を指定します。※2
任意
jevsendコマンドの引数-dがサポートする範囲
7
登録するJP1イベントの送信元イベントサーバー名を指定します。※2
任意
jevsendコマンドの引数-sがサポートする範囲
8以降
登録するJP1イベントの拡張属性を指定します。※2※3
拡張属性を複数指定する場合は,カラム番号:7以降で指定します。
任意
jevsendコマンドの引数-eがサポートする範囲。
なお,拡張属性値にスペースが含まれる場合でも「"」の指定は不要です。(「"」も拡張属性値と認識されます)
- 注※1
-
JP1イベント登録条件(カラム番号:1〜3)は,次のどれかのパターンで指定する必要があります。
・アラーム名(カラム番号:1)
・メトリクスの名前空間(カラム番号:2)
・メトリクスの名前空間(カラム番号:2)とメトリクス名(カラム番号:3)
- 注※2
-
省略時は,対応するjevsendコマンドのオプションの省略時の動作となります。
- 注※3
-
指定された拡張属性以外にAWS CloudWatch連携ツールが追加する拡張属性があります。追加する拡張属性を次に示します。
表11‒84 AWS CloudWatch連携ツールが追加する拡張属性 項番
属性名
値
1
AWS_ALARM_TIMESTAMP
アラームが発生した日時(UNIX時間)
2
AWS_ALARM_DATETIME
アラームが発生した日時(YYYY/mm/dd HH:MM:SS形式)
- 注※4
-
1,023バイトを超えるメッセージの場合は,1,023バイトまでを対象とします。
設定例を次に示します。
#AlermName,NameSpace,MetricName,EventID,Message,Destination,Source,ExtAttr ALARM1,,,1111,message1,DEST_HOST,SRC_HOST,EXATTR1=value1,EXATTR2=value2,EXATTR3=value3,NAME_SPACE,,2222,message2,DEST_HOST,SRC_HOST,EXATTR1=aaa bbb,EXATTR2=value,NAME_SPACE,METRIC1,3333,message3,DEST_HOST,SRC_HOST,EXATTR1=value
-
-
手順2.で設定を変更したあと,次に示す文字コード/改行コードで保存してください。
表11‒85 イベント定義ファイル(eventconf.csv)の文字コード/改行コード 項番
項目
値
1
文字コード
UTF-8
2
改行コード
LF(\n)またはCRLF(\r\n)
(d) イベント除外ファイル(eventignore.csv)
AWS CloudWatch連携ツールの除外するJP1イベントの設定手順について説明します。
- 設定項目
-
-
JP1イベント除外条件
-
-
AWS CloudWatch連携ツール実行サーバへログインします。
-
AWS CloudWatch連携ツールディレクトリ配下にある「eventignore.csv」をエディタで開き,イベント定義を設定します。
-
1行1エントリーで記載してください。
-
1文字目が「#」の行はコメント行となり無視されます。
-
CSV形式で記載してください。
-
JP1イベント除外定義は上から順番に判定され,合致した場合JP1イベント対象外となります。
CSVの各カラムを次の表に示します。
表11‒86 イベント除外定義の各カラム カラム番号
設定値
必須/任意
値の範囲
1
JP1イベントとして登録したいアラームのアラーム名を指定します。
該当のアラームを対象としたい場合に指定します。
必須※1
AWSのアラーム名がサポートする範囲
2
JP1イベントとして登録したいアラームのメトリクスの名前空間を指定します。
該当のメトリクスの名前空間のアラームを対象としたい場合に指定します。
メトリクス名(カラム番号:3)を指定する場合は指定必須です。
アラーム名(カラム番号:1)を指定した場合は無視されます。
必須※1
AWSのメトリクスの名前空間がサポートする範囲
3
JP1イベントとして登録したいアラームのメトリクス名を指定します。
該当のメトリクスのアラームを対象としたい場合に指定します。
アラーム名(カラム番号:1)を指定した場合は無視されます。
必須※1
AWSのメトリクス名がサポートする範囲
- 注※1
-
JP1イベント登録条件(カラム番号:1〜3)は,次のどれかのパターンで指定する必要があります。
・アラーム名(カラム番号:1)
・メトリクスの名前空間(カラム番号:2)
・メトリクスの名前空間(カラム番号:2)とメトリクス名(カラム番号:3)
設定例を次に示します。
#AlermName,NameSpace,MetricName ALARM1,,,NAME_SPACE,,NAME_SPACE,METRIC1
-
-
手順2.で設定を変更したあと,次に示す文字コード/改行コードで保存してください。
表11‒87 イベント除外ファイル(eventignore.csv)の文字コード/改行コード 項番
項目
値
1
文字コード
UTF-8
2
改行コード
LF(\n)またはCRLF(\r\n)
(4) アンインストール
(a) AWS CloudWatch連携ツールのアンインストール
AWS CloudWatch連携ツールのアンインストール手順を次に示します。
-
AWS CloudWatch連携ツールの実行サーバーへログインします。
-
「11.6.2(2)(a)AWS CloudWatch連携ツールの配置」でコピーした「sendevent_aws」ディレクトリを削除します。