Docs Menu
Docs Home
/
Atlas
/ /

サービスへのログの転送

ログフォワーダーを構成して、trigger と Function のサーバー側ログをMongoDBコレクションに自動的に保存したり、外部サービスに送信したりできます。また、ログが作成される際に個別に転送したり、ログをバッチするオーバーヘッドを削減したりすることもできます。

ログフォワーダーは、次のコンポーネントで構成されています。

  • ログが転送される方法と場所を制御するアクション。

  • 転送されるログを制御するフィルター。

  • ログの転送を個別に転送するか、バッチで転送するかを制御するポリシー。

次のいずれかのアクションを実行する必要がある場合は、ログフォワーダーの設定を検討してください。

  • ログを 10 日の保持期間を超えて保存します。

  • ログを外部ログ サービスに統合します。

  • Atlas Search、 Online アーカイブ、 Charts のログにアクセスします。

1

ログフォワーダーを作成するには、次の手順に従います。

警告

ナビゲーションの改善が進行中

現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントの を参照してください。

  1. まだ表示されていない場合は、プロジェクトを含む組織を から選択します。ナビゲーション バーの [ Organizations ] メニューを参照してください。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Services見出しの下のTriggersをクリックします。

    Triggersページが表示されます。

  1. View All Appsボタンをクリックします。

  2. ログを転送する trigger または関数を含むアプリをクリックします。

  3. Logs ページに移動します。

  4. Forwarding タブを選択します。

  5. Create a Log Forwarderボタンをクリックします。

  6. ログフォワーダーの一意の名前を指定します。

新しいログフォワーダーを作成するには、アプリの log_forwardersディレクトリに新しい構成ファイルを追加します。 ファイル名は構成のnameフィールドの値と一致する必要があります。

/log_forwarders/<name>.json
{
"name": "<name>"
}
2

trigger または関数のログをすべて転送したり、サブセットのみをターゲットコレクションまたはサービスに送信したりすることもできます。フォワーダーのアクションを呼び出すログタイプ(関数、トリガーなど)とステータス(成功またはエラー)のフィルターを定義することで、各ログフォワーダーのこのサブセットを制御します。

[Log Type ドロップダウンで転送するログのタイプを 1 つ以上選択します。次に、Log Status ドロップダウンで転送するステータスを 1 つ以上選択します。

一致して転送するフォワーダーの 1 つ以上のタイプと 1 つ以上のステータスを指定します。

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ]
}

次のログの種類を転送できます。

  • auth

  • endpoint

  • function

  • graphql

  • push

  • schema

  • service

  • trigger

  • trigger_error_handler

次のログステータスを転送できます。

  • error

  • success

重要

ログフォワーダーは、フィルターでタイプとステータスの両方が指定されている場合にのみ、特定のログを転送します。

たとえば、 errorステータスを持つtriggersログをフィルタリングするフォワーダーを考えてみましょう。

フィルター、次のログを転送します。

{ "type": "triggers", "status": "error", ... }

フィルターは、次のログを転送しません

{ "type": "triggers", "status": "success", ... }
{ "type": "functions", "status": "error", ... }
3

複数のログを 1 つのバッチ処理されたリクエストにまとめて、オーバーヘッドを削減できます。選択したバッチ ポリシーによって、ログフォワーダーがログをグループ化する方法が決まります。

次のバッチ ポリシーのいずれかを選択できます。

  • バッチ処理なし:ログフォワーダーは、対応するリクエストが発生するたびにログを個別に転送します。

  • バッチ処理:ログフォワーダーはドキュメントが発生するたびにバッチするにグループ化します。各バッチするには最大 100のログエントリを含めることができます。バッチするがいっぱいになると、ログフォワーダーは 1 回のリクエストでバッチする全体を転送します。ログフォワーダーは、現在のバッチする内のログの数に関係なく、少なくとも 1 分に 1 回ログを転送します。

バッチ処理を構成するには、 ポリシーまたはNo batch Batchingポリシーのいずれかを選択します。

バッチ処理を構成するには、 policyフィールドにポリシータイプ( singleまたはbatchのいずれかを指定します。

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" }
}
4

ログフォワーダーは、リンクされた MongoDB コレクションにログを自動的に保存したり、ログを外部サービスに送信するカスタム関数を呼び出したりすることができます。

ログをコレクションに保存するには、 To Collectionアクションを選択し、転送されたログを保持するリンクされたクラスター、データベース、コレクションの名前を入力します。

ログをコレクションに保存するには、転送されたログを保持する連結クラスター、データベース、コレクションの名前を含むcollectionactionを指定します。

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" },
"action": {
"type": "collection",
"data_source": "<data source name>",
"database": "<database name>",
"collection": "<collection name>"
}
}

ログを外部サービスに転送するには、 はログオブジェクトの配列を受け入れ、 API、SDK、またはライブラリ経由でサービスを呼び出す関数を記述します。

注意

バッチ ポリシーとログ頻度によっては、ログフォワーダーが最大 100 のログオブジェクトの配列を持つログ転送関数を呼び出す場合があります。

この関数は、次の例と同じ署名を持つ必要があります。

<function name>/functions/[関数名]>.js
exports = async function(logs) {
// `logs` is an array of 1-100 log objects
// Use an API or library to send the logs to another service.
await context.http.post({
url: "https://api.example.com/logs",
body: logs,
encodeBodyAsJSON: true
});
}

ログ転送関数を記述した後、名前を使用してログフォワーダーに割り当てることができます。

ログフォワーダーに関数を割り当てるには、 To Functionアクションを選択し、ドロップダウン入力から関数を選択します。

ログフォワーダーに関数を割り当てるには、ログ転送関数の名前を含むタイプfunctionactionを指定します。

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" },
"action": {
"type": "function",
"name": "<function name>"
}
}
5

ログフォワーダーを構成したら、Save をクリックします。配置案を有効にしている場合は、変更を必ず配置してください。

ログフォワーダーを構成したら、構成ファイルを保存し、更新されたアプリ構成をプッシュします。

appservices push

ログフォワーダーは、ネットワークの中断やログを保存する基礎のクラスターの変更など、継続を妨げるイベントに応答して一時停止することがあります。一時停止されると、フォワーダーを呼び出すことができなくなり、ログが転送されません。

中断されたログフォワーダーは、 Atlas UIの Logs > Forwarding 画面から再起動できます。

注意

ログフォワーダーが停止すると、プロジェクト所有者に問題が通知されるメールが送信されます。

戻る

ログ

項目一覧