メインコンテンツまでスキップ
Sumo Logic Japanese

G Suite Alert Center のスクリプト ベース収集の設定

このページでは、G Suite Alert Center のスクリプト ベースの収集をデプロイする方法について説明します。

このページでは、G Suite Alert Center のスクリプト ベースの収集をデプロイする方法について説明します。このスクリプトは、Sumo Logic G Suite Alert Center アプリケーションのログを収集します。

前提条件

この作業は、「G Suite Alert Center の収集の設定」の説明に従って Hosted CollectorHTTP Source を正しく追加してあることを想定しています。

以下の作業は、Collector をインストールするユーザ アカウントでログインしていることを想定しています。そうでない場合は、次のコマンドで正しいアカウントに切り替えてください。

sudo su <user_name>

Linux マシンでのスクリプトの設定

この作業では、Linux マシンにスクリプトをインストールする方法を示します。

スクリプトをデプロイするには、次の手順を実行します。

  1. 次の Google ドキュメントの説明に従って Alert Center API をセットアップします。 
  1. まだ pip がインストールされていない場合は、pip のドキュメントの指示に従って pip をダウンロードしてインストールします。 
  2. Linux マシン (Python 3.7 または Python 2.7 互換) にログインして、次のコマンドでスクリプトをインストールします。
pip install sumologic-gsuitealertcenter
  1. 次のスニペットをコピーして、ホーム ディレクトリに gsuitealertcenter.yaml という名前の設定ファイルを作成します。
SumoLogic:
  SUMO_ENDPOINT: <SUMO LOGIC HTTP URL>
  
GsuiteAlertCenter:
  DELEGATED_EMAIL: "<real email address of the real G Suite user with Super Admin access>"
  CREDENTIALS_FILEPATH: "<path to json Service Account JSON file>"
  
Collection:
  ENVIRONMENT: onprem
  1. SUMO_ENDPOINT パラメータと CREDENTIALS_FILEPATH パラメータ (上記のステップ 1)、そして DELEGATED_EMAIL パラメータを追加して、ファイルを保存します。  

  2. crontab -e を使用して次の行を追加することで、Collector を 5 分おきに実行する cron ジョブを作成します。
 */5 * * * * /usr/bin/python -m sumogsuitealertscollector.main > /dev/null 2>&1

高度な設定

このセクションでは、次の例のように設定ファイルで定義できる G Suite Alert Center の環境変数のリストを示します。各環境変数の説明は、次の表を参照してください。

GSuite_Alert_Center_Troubleshooting_config.png

これらの環境変数の設定方法については、Google Cloud のドキュメントを参照してください。

環境変数  使い方
ALERT_TYPES

"Customer takeout initiated"

"Misconfigured whitelist "

"User reported phishing"

"User reported spam spike"

"Suspicious message reported"

"Phishing reclassification"

"Malware reclassification"

"Leaked password"

"Suspicious login"

"Suspicious login (less secure app)"

"Suspicious programmatic login"

"User suspended"

"User suspended (spam)"

"User suspended (spam through relay)"

"User suspended (suspicious activity)"

"Google Operations"

"Government attack warning"

"Device compromised"

"Suspicious activity"

BACKFILL_DAYS イベント収集を開始する前の日数。1 を指定すると、昨日から今日にかけてイベントがフェッチされます。
PAGINATION_LIMIT 1 つの API コールでフェッチするイベント数。
LOG_FORMAT Python ログ モジュールがログをファイルに書き込むために使用するログ形式。
ENABLE_LOGFILE すべてのログとエラーをログ ファイルに書き込む場合は TRUE に設定します。
ENABLE_CONSOLE_LOG コンソールへのログ出力を有効にします。
LOG_FILEPATH ENABLE_LOGFILE を TRUE に設定した場合に使用するログ ファイルのパス。
NUM_WORKERS API コールで生成するスレッド数。
MAX_RETRY リクエスト失敗時の再試行回数。
BACKOFF_FACTOR

2 回目以降の再試行において、再試行と再試行の間に適用されるバックオフ係数。backoff_factor が 0.1 の場合、sleep() は再試行と再試行の間で [0.0s, 0.2s, 0.4s, ...] とスリープします。

TIMEOUT リクエスト ライブラリで使用するリクエスト タイムアウト。
SUMO_ENDPOINT Sumo Logic で作成される HTTP Source エンドポイント URL。

トラブルシューティング

このセクションでは、関数を手動で実行して Alert Center からログ メッセージが送信されていることを確認する方法を説明します。

関数を手動で実行するには、次の手順を実行します。

  1. 次のいずれかのコマンドを入力します。

python では次のコマンドを使用します。 

python -m sumogsuitealertscollector.main

python3 では次のコマンドを使用します。 

python3 -m sumogsuitealertscollector.main
  1. スクリプトは、デフォルトで /tmp/sumoapiclient.log にログを生成します。これらのログをチェックして、トリガされているかどうかを確認します。
  2. Collector を root ユーザとしてインストールしてから、通常ユーザとして実行した場合は、Collector を実行しているユーザのホーム ディレクトリに設定が存在しないため、次のエラー メッセージが表示されます。root ユーザに切り替えて、スクリプトを再び実行してください。

Traceback (most recent call last):
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/main.py", line 190, in main
   ns = GSuiteAlertsCollector()
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/main.py", line 29, in __init__
   self.config = Config().get_config(self.CONFIG_FILENAME, self.root_dir, cfgpath)
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/common/config.py", line 22, in get_config
   self.validate_config(self.config)
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/common/config.py", line 34, in validate_config
   raise Exception("Invalid config")
Exception: Invalid config
  1. Alert Center が新しいメッセージを生成したかどうかを確認するには、Google の [Home (ホーム)] > [Security (セキュリティ)] > [Alert Center] に移動して、次の手順を実行します。

GSuite_Alert_Center_Troubleshooting.png

  1. 次のようなエラー メッセージが生成されているかどうかを確認します。このエラー メッセージが生成されている場合は、DELETGATED_EMAIL に設定されているメール アドレスが、サービス アカウントではなく、有効な Google Suite 管理者ユーザのアカウントに属していることを確認してください。
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/sumogsuitealertscollector/main.py", line 191, in main
ns.run()
File "/usr/local/lib/python3.6/dist-packages/sumogsuitealertscollector/main.py", line 162, in run
task_params = self.build_task_params()
File "/usr/local/lib/python3.6/dist-packages/sumogsuitealertscollector/main.py", line 152, in build_task_params
obj = self.set_new_end_epoch_time(alert_type, self.DEFAULT_START_TIME_EPOCH)
File "/usr/local/lib/python3.6/dist-packages/sumogsuitealertscollector/main.py", line 81, in set_new_end_epoch_time
response = self.alertcli.alerts().list(**params).execute()
File "/usr/local/lib/python3.6/dist-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/googleapiclient/http.py", line 851, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting 
https://alertcenter.googleapis.com/v1beta1/alerts?pageSize=1&filter=create_time+%3E%3D+%222019-04-17T16%3A29%3A14.061731Z%22+AND+create_time+%3C%3D+%222019-04-18T16%3A27%3A14.417915Z%22+AND+type+%3D+%22Customer+takeout+initiated%22&orderBy=create_time+desc&alt=json 
returned "Request contains an invalid argument.">
  1. Collector を root ユーザとしてインストールしてから、通常ユーザとして実行した場合は、Collector を実行しているユーザのホーム ディレクトリに設定が存在しないため、次のエラー メッセージが表示されます。root ユーザに切り替えて、スクリプトを再び実行してください。

Traceback (most recent call last):
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/main.py", line 190, in main
   ns = GSuiteAlertsCollector()
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/main.py", line 29, in __init__
   self.config = Config().get_config(self.CONFIG_FILENAME, self.root_dir, cfgpath)
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/common/config.py", line 22, in get_config
   self.validate_config(self.config)
 File "/usr/local/lib/python2.7/dist-packages/sumogsuitealertscollector/common/config.py", line 34, in validate_config
   raise Exception("Invalid config")
Exception: Invalid config
  • この記事は役に立ちましたか?