2.5. クラウド監視(Google Cloud)監視設定手順と使い方¶
Google Cloud監視設定を行う際には、以下の設定が必要になります。
- ライセンスの購入とライセンスキーの入手
Google Cloud監視
注釈
監視対象数に応じて、カスタムセンサーのライセンスが必要です。
- Senju DevOperation Conductor Extension Packの入手と適用
- 運用管理サーバーおよび、クラウド監視を行う管理対象ノードに、同一バージョンの Senju DevOperation Conductor Extension Pack の適用が必要です
運用管理サーバー(千手マネージャ)への適用(監視項目の更新)
管理対象ノード(千手エージェント(プローブノード))への適用(情報取得コマンドの更新)
警告
適用可能な Senju DevOperation Conductor のバージョンやパッチ状況に制限がある場合があります。詳しくは、Senju DevOperation Conductor Extension Pack の README をご参照下さい。
参考
Senju DevOperation Conductor Extension Packの適用手順につきましては、Senju DevOperation Conductor Extension Pack の README をご参照下さい。
注釈
Senju DevOperation Conductor Extension Packの適用に際しては、千手システムの停止は不要ですが、関連する監視タスクの停止が必要です。
2.5.1. 設定¶
- 説明
モニタリングサブシステムを用いてGoogle Cloudの監視項目を使用するための設定を行います。
- 設定手順
Google Cloud監視を設定するには以下の手順が必要です。
Google Cloudアカウントの登録
Google Cloud情報設定ファイルの作成
2.5.1.1. Google Cloudアカウントの登録¶
Google Cloudの監視項目の利用において、事前にGoogle Cloud サービスアカウントの登録が必要です。Google Cloudサイトよりアカウント登録を行って下さい。
2.5.1.1.1. ロールの作成¶
Google Cloud監視では、監視項目毎に必要とされるアクセス権限が異なります。「Google Cloud監視に必要なアクセス権限」 に示すアクセス権限を付与したロールを作成して下さい。
監視項目 |
必要なアクセス権 |
---|---|
GCP:App Engine ~ |
monitoring.groups.list |
GCP:Cloud Logging |
logging.logEntries.list |
GCP:利用料金 ~ |
bigquery.jobs.create |
2.5.1.2. 認証設定¶
2.5.1.2.1. Compute Engineにサービスアカウントを設定し認証する¶
Google Cloud内のエージェントからGoogle Cloud監視を行う場合は、エージェントとなるCompute Engineにサービスアカウントを割り当てて認証します。Google CloudサイトよりCompute Engineのインスタンスにサービスアカウントを関連付けて下さい。 また、Google Cloud情報設定ファイル(sj_gcp_sys.json)の作成 でGoogle Cloud情報設定ファイルにプロジェクトIDを設定して下さい。
2.5.1.2.2. APIキーで認証する¶
Google Cloud外のエージェントからGoogle Cloud監視を行う場合は、エージェントからサービスアカウントで作成したAPIキーの認証ファイルを利用して認証します。Google CloudサイトよりサービスアカウントからAPIキーを作成し、APIキー認証ファイルをダウンロードして下さい。ダウンロードしたAPIキー認証ファイルをエージェントの千手稼働アカウントでアクセスできる位置に配置し、Google Cloud情報設定ファイル(sj_gcp_sys.json)の作成 でGoogle Cloud情報設定ファイルにAPIキー認証ファイルのパスを設定して下さい。
2.5.1.3. Google Cloud情報設定ファイル(sj_gcp_sys.json)の作成¶
sj_gcp_sys.jsonファイルは、Google Cloudに関する情報の設定ファイルです。sj_gcp_sys.jsonとGoogle Cloudの監視タスクのパラメータの両方で認証ファイルを指定した場合は、Google Cloudの監視タスクのパラメータで指定した値が有効になります。
Google Cloud情報設定ファイル(dat/opt/sj_gcp_sys.json)を作成し、以下の項目を設定して下さい。
項目 |
省略 |
デフォルト |
暗号化対象 |
説明 |
---|---|---|---|---|
proxyURL |
可 |
― |
× |
Google Cloud接続時に経由するプロキシサーバー。(次の形式で記載して下さい "<プロトコル>://<ipアドレス|ホスト名>:<ポート番号>") |
proxyUsername |
可 |
― |
× |
プロキシサーバーアクセス用ユーザーID |
proxyPassword |
可 |
― |
○ |
プロキシサーバーアクセス用パスワード(暗号化後のパスワード) |
maxLogSize |
可 |
― |
× |
省略する場合は「GCP:Stackdriver ログ情報取得」で出力するログファイルの最大サイズが10240(単位:KB)になります。 |
maxLogCnt |
可 |
― |
× |
省略する場合は「GCP:Stackdriver ログ情報取得」で出力するログァイルのローテーション最大個数が7になります。 |
retryCount |
可 |
3 |
× |
API実行失敗時のリトライ回数 |
waitTime |
可 |
30 |
× |
API実行時のタイムアウト時間 |
logWaitTime |
可 |
600 |
× |
「GCP:Stackdriver ログ情報取得」で利用するAPI実行時のタイムアウト時間 |
project_id |
可 |
― |
× |
Compute Engineにサービスアカウントを割り当てた場合の認証用プロジェクトID |
accountFilePath |
可 |
― |
× |
サービスアカウントのAPIキー認証ファイルの絶対パス |
logFormat |
可 |
― |
× |
取得したログの出力フォーマットをLTSVもしくはJSONに切り替えます。省略する場合はLTSVとなります。 |
logBufferTime |
可 |
― |
× |
省略する場合は前回取得した最後のログより遡る時間が5(単位:分)になります。 |
project_idはCompute Engineにサービスアカウントを割り当てた場合に指定して下さい。
accountFilePathは、APIキーによる認証を行う場合に指定して下さい。
proxyUsernameおよびproxyPasswordの両方を指定しなかった場合、プロキシサーバーの認証に利用しません。
一回以上ログを取得している状態でlogBufferTimeを現在よりも大きい値に変更した場合、変更後の1回目の実行で過去に取得したログを重複して取得する場合があります。ご注意ください。
- sj_gcp_sys.json の記載例
{ "proxyURL": "http://10.1.0.9:8080", "proxyUsername": "gcpuser", "proxyPassword": "=AYvZ4/99j4vF+A==", "maxLogSize": "", "maxLogCnt": "", "retryCount": "3", "waitTime": "30", "logWaitTime": "600", "project_id": "xxxxx-project", "accountFilePath": "", "logFormat": "", "logBufferTime": "" }
2.5.1.3.1. sj_setup_gcp - Google Cloud情報設定ファイル更新 -¶
- 指定形式
- [参照]
sj_setup_gcp
- [作成&更新]
sj_setup_gcp
[-purl[Proxy server via when connecting to Google Cloud]]
[-puser[User ID for proxy server access]]
[-ppswd[Password for proxy server access]]
[-mls[If omitted, the maximum size of the log file output by log monitoring is 10240 (unit: KB)]]
[-mlc[If omitted, the maximum number of log file rotations output by log monitoring is 7.]]
[-rc[number of retries when API call fails]]
[-wt[wait time(seconds) when no response is returned]]
[-lwt[Timeout when executing API used in log monitoring]]
[-pid[Project ID for authentication when a service account is assigned to Compute Engine]]
[-afp[Absolute path of API key authentication file for service account]]
[-lf[format of log file output by log monitoring]]
[-lbt[bufferTime of log file output by log monitoring]]
- 目的
Google Cloud情報設定ファイル(/dat/opt/sj_gcp_sys.json) の現在値の参照、作成と更新を行います。
- オプション
- -purl
- GCP接続時に経由するプロキシサーバー(proxyURL)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -puser
- プロキシサーバーのユーザ(proxyUsername)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -ppswd
- プロキシサーバーのパスワード(proxyPassword)に設定する値を指定して下さい。設定値の指定は対話形式で行われます。この項目は暗号化した値がGoogle Cloud情報設定ファイルに書き込まれます。
- -mls
- 出力するログファイルの、最大サイズ(maxLogSize)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -mlc
- 出力するログファイルの、ローテーション最大個数(maxLogCnt)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -rc
- API実行失敗時のリトライ回数(retryCount)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -wt
- API実行時のタイムアウト時間(waitTime)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -lwt
- ログを取得する時、API実行時のタイムアウト時間(logWaitTime)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -pid
- サービスアカウントがCompute Engineに割り当てられている場合の認証用のプロジェクトID(project_id)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -afp
- サービスアカウントのAPIキー認証ファイルの絶対パス(accountFilePath)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -lf
- 出力するログフォーマット(logFormat)に設定する値を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- -lbt
- 最後に取得したログより遡る時間(logBufferTime)を指定して下さい。値を省略するとGoogle Cloud情報設定ファイルに設定されている値を削除します。
- 実行結果
- (例1)現在の設定値参照
% sj_setup_gcp { "proxyURL": "XXXXX", "proxyUsername": "", "proxyPassword": "**********", "maxLogSize": "", "maxLogCnt": "" "retryCount": "", "waitTime": "", "logWaitTime": "", "project_id": "ABCD", "accountFilePath": "", "logFormat": "", "logBufferTime": "" } %
- (例2)proxyURLとproject_id、proxyPasswordを設定
% sj_setup_gcp -purlXXXXX-XXXXX -pidXXXX-XXXX -ppswd Please enter the value. "proxyPassword": The value of proxyURL has changed from (XXXXX) to (XXXXX-XXXXX). The value of project_id has changed from (ABCD) to (XXXX-XXXX). The value of proxyPassword has changed from (**********) to (**********). The update is complete. % sj_setup_gcp { "proxyURL": "XXXXX-XXXXX", "proxyUsername": "", "proxyPassword": "**********", "maxLogSize": "", "maxLogCnt": "" "retryCount": "", "waitTime": "", "logWaitTime": "", "project_id": "XXXX-XXXX", "accountFilePath": "", "logFormat": "", "logBufferTime": "" } %
- (例3)設定を削除
% sj_setup_gcp -purl -pid -ppswd Please enter the value. "proxyPassword": The value of proxyURL has changed from (XXXXX-XXXXX) to (). The value of project_id has changed from (XXXX-XXXX) to (). The value of proxyPassword has changed from (**********) to (**********). The update is complete. % sj_setup_gcp { "proxyURL": "", "proxyUsername": "", "proxyPassword": "", "maxLogSize": "", "maxLogCnt": "" "retryCount": "", "waitTime": "", "logWaitTime": "", "project_id": "", "accountFilePath": "", "logFormat": "", "logBufferTime": "" } %
注釈
暗号化対象項目の標準出力への表示は全てアスタリスクでマスクされます。
暗号化対象項目の値の設定は、キーボードからの入力が一切表示されません。コピー&ペーストで入力することをお勧めします。
暗号化対象項目の値を削除する場合、何も入力せずにリターンキーを押下して下さい。
- 標準エラー出力
Failed to acquire Senju home directory
The GCP System information file does not exist.
Invalid data have been set in this file.
Failed to update the GCP System information file.
File update failed.
- 終了ステータス
0 : 正常終了
1 : 異常終了
2.5.1.3.2. Google Cloud情報設定ファイル更新コマンドの登録¶
Google Cloud情報設定ファイルの現在値の参照、作成と更新を行うため、GCP情報設定ファイル更新コマンドを千手ブラウザからユーザーコマンドに登録します。詳細な手順については、ユーザーズガイド 「2.3.2.1 ユーザーコマンド」 を参照して下さい。
- ユーザーコマンドグループの作成
Google Cloud情報設定ファイル更新コマンドを登録するユーザーコマンドグループを千手ブラウザから登録して下さい。
- Google Cloud情報設定ファイル更新コマンドの登録
作成したユーザーコマンドグループに、以下に示す起動シーケンスを指定してコマンドを登録して下さい。
現在値の参照
sj_remshe "@ノード名@" -l "@ユーザ名@" sj_setup_gcp
作成と更新
sj_remshe "@ノード名@" -l "@ユーザ名@" sj_setup_gcp "-purl@@GCP接続時に経由するプロキシサーバー@@" "-puser@@プロキシサーバーのユーザ名@@" "-ppswd@@プロキシサーバーのパスワード@@" "-mls@@ログファイルの最大サイズ@@" "-mlc@@ログファイルのローテーション最大個数@@" "-rc@@API実行失敗時のリトライ回数@@" "-wt@@API実行時のタイムアウト時間@@" "-lwt@@ログ取得時のAPIタイムアウト時間@@" "-pid@@サービスアカウントがCompute Engineに割り当てられている場合の認証用プロジェクトID@@" "-afp@@サービスアカウントのAPIキー認証ファイルパス@@" "-lf@@ログフォーマット@@" "-lbt@@最後に取得したログより遡る時間@@"
注釈
上記の起動シーケンスは項目を全て変更する仕様となっています。項目別に変更を行いたい場合は、起動シーケンスから任意の「-オプション@@パラメータ名@@」を指定したユーザーコマンドを別途登録して下さい。
(例)sj_remshe "@ノード名@" -l "@ユーザ名@" sj_setup_gcp "-purl@@GCP接続時に経由するプロキシサーバー@@"
2.5.2. 使い方¶
Google CloudのCloud Monitoringに接続し、Senju DevOperation Conductorのモニタリング機能を使って、監視することができます。
監視定義を千手ブラウザより登録し、監視を実施します。監視結果は、各種モニタ画面(グローバルノードモニタ/ノードモニタ)にてその監視状況を表示できます。予め設定したしきい値により障害を検知した場合は、メッセージモニタにメッセージが通知されます。
(モニタリング機能については、ユーザーズガイド「 4.モニタリング 」を参照して下さい。)
注釈
監視項目によっては、監視間隔を15分未満に設定すると値が取得できないことがあります。その場合は監視間隔を15分以上に設定して下さい。
参考
各種パラメータの設定値が分からない場合は、Google Cloudより提供されているMetrics Explorerにて確認して下さい。
参考URL:https://console.cloud.google.com/monitoring (2020年4月現在)
2.5.2.1. Google Cloud監視の各パラメータの上限値および制限事項¶
Google Cloud監視で設定できるパラメータにはGoogle Cloudの上限値とは別に千手固有の上限値および制限事項があります。下記の表に上限値および制限事項を示します。
パラメータ名 |
上限値、制限事項 |
---|---|
ユーザーラベルキー |
半角英数字 |
ユーザーラベル値 |
半角英数字 |
参考URL:https://cloud.google.com/compute/docs/labeling-resources?hl=ja (2020年12月現在)
2.5.2.2. Cloud Logging連携機能¶
監視項目「GCP:Stackdriver ログ情報取得」ではCloud Loggingから取得したログをログファイルに蓄積します。このログファイルを監視することでアラートの検知をすることが可能です。
2.5.2.2.1. Cloud Logging連携機能の上限値および制限事項¶
Cloud Loggingの使用量上限により、監視対象が多い場合に監視エラーが発生する可能性があります。下記の表に関連項目を示します。
項目 |
上限値 |
---|---|
1 つの entries.list API 呼び出しにおけるプロジェクトなどのリソース名数 |
100 |
entries.list API 呼び出し回数 |
1 プロジェクトあたり 1 回/秒 |
参考URL:https://cloud.google.com/logging/quotas (2020年4月現在)
注釈
BigQuery、Cloud Load Balancing 等、一部サービスのログ情報取得はサポート対象外となります。
2.5.2.2.2. ログファイル¶
監視項目「GCP:Stackdriver ログ情報取得」で取得したログファイルは、パラメータ「ログ出力ファイル」で指定したファイル(絶対パス)に出力されます。複数の監視タスクを設定する場合は、出力先のログファイルが重複しないように設定する必要があります。パラメータでログファイルを指定しない場合は、ログフォーマットがLTSVあるいはJSONによってファイル名が変わります。ただし、ファイル名に使用できない記号は「-」(半角ハイフン)に置き換えます。
ログフォーマットがLTSVの場合:
<千手ホームディレクトリ>/log/cloud.gcp.d/Logging_<プロジェクトID>_<リソースタイプ>_<リソースラベル>_<ログ名>_<ログレベル>.log
ログフォーマットがJSONの場合:
<千手ホームディレクトリ>/log/cloud.gcp.d/Logging_<プロジェクトID>_<リソースタイプ>_<リソースラベル>_<ログ名>_<ログレベル>.json
複数の監視タスクを設定する場合は、出力先のログファイルが重複しないように設定する必要があります。リソースタイプ、ログ名(省略可能)、ログレベル(省略可能)を指定して下さい。
出力されるログファイルの文字コードは UTF-8 になります。テキストログ監視の設定で監視対象ログの「文字コードを指定する」を UTF-8 に指定して下さい。
2.5.2.2.3. ログフォーマット¶
以下にCloud Logging ログ情報取得で取得したログファイルのレコード形式について説明します。レコードは LTSV形式で、項目間はタブ区切りとなります。
【Cloud Loggingログファイル レコード形式】
ログフォーマットがLTSVの場合:
タイムスタンプ 重大度 ログメッセージ
¶ No.
項目
説明
1
タイムスタンプ
「Timestamp:」に続き、取得したログエントリが出力されたタイムスタンプ(UTC)が入ります。フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)。
2
重大度
「Severity:」に続き、取得したログエントリの重大度が入ります。
3
ログメッセージ
「LogMessage:」に続き、取得したログエントリが入ります。ログエントリはJSONの形式で出力されます。
ログフォーマットがJSONの場合:
ログメッセージ
¶ No.
項目
説明
1
ログメッセージ
取得したログエントリが入ります。ログエントリはJSONの形式で出力されます。
2.5.2.2.4. テキストログ監視の設定方法¶
以下にSenju DevOperation Conductorのテキストログ監視を利用して、Cloud Logging ログ情報取得で取得したログメッセージを監視する運用例を示します。この例では、ログメッセージにキーワードが発生時にメッセージモニタに通知されるようにログフィルタを登録し、監視する場合について説明します。
警告
管理対象ノードにおいて千手が起動していない状態で、[反映(監視属性)]を行うと失敗しますので、注意して下さい。
2.5.2.3. 汎用メトリクス監視機能¶
監視項目「GCP:メトリクス監視」では Cloud Monitoring から任意のメトリクスの値を取得し、監視することができます。
注釈
Senju DevOperation Conductor Extension Packリリース時点でGoogle Cloudドキュメントに記載されているメトリクスが「リソースタイプ:メトリクス」から選択可能です。
2.5.2.3.1. 汎用メトリクス監視の設定方法¶
以下に汎用メトリクス監視の監視定義を千手ブラウザより登録する手順を記載します。例として仮想マシンのインスタンスで受信されたバイト数を10分間隔で監視します。
監視項目「GCP:メトリクス監視」の設定項目を以下に示します。
項目名 |
設定内容 |
---|---|
リソースタイプ:メトリクス |
Cloud Monitoring から監視するメトリクスを【リソースタイプ:メトリクスタイプ】の形式で指定して下さい。候補一覧から選択することも、入力することも可能です。 |
計算式 |
計算に使用する式です。「計算式の変数Aの値」で指定したプロパティの値を計算し監視結果の値として扱います。「A0」や「A1」など、変数名「A」の後ろの数字は、「0」は前回取得した値を表し、「1」は今回取得した値を表します。 |
計算式の変数Aの値 |
|
計算結果の型 |
|
単位 |
ノードモニタに表示される単位です。 |
計算結果の比較方法 |
|