Syslog 内の Service Fabric Linux クラスター イベント

Service Fabric では、クラスター内の重要なアクティビティを通知するための一連のプラットフォーム イベントを公開しています。 公開されているすべてのイベントの一覧については、こちらを参照してください。 これらのイベントは、さまざまな方法で使用できます。 この記事では、このようなイベントを Syslog に書き込むように Service Fabric を構成する方法について説明します。

注意

この記事は最近、Log Analytics ではなく Azure Monitor ログという用語を使うように更新されました。 ログ データは引き続き Log Analytics ワークスペースに格納され、同じ Log Analytics サービスによって収集されて分析されます。 Azure Monitor のログの役割をより適切に反映させるために、用語を更新しています。 詳しくは、Azure Monitor の用語の変更に関するページをご覧ください。

はじめに

6\.4 リリースでは、Service Fabric プラットフォーム イベントを Linux クラスター用の Syslog に送信するための SyslogConsumer が導入されました。 有効にすると、イベントは自動的に Syslog に送信されます。これは、Log Analytics エージェントで収集および送信できます。

各 Syslog イベントには 4 つのコンポーネントがあります

  • Facility
  • ID
  • Message
  • 重大度

SyslogConsumer では、Facility Local0 を使用すると、すべてのプラットフォーム イベントが書き込まれます。 構成を変更することで任意の有効な Facility に更新できます。使用される ID は ServiceFabric です。 Message フィールドには JSON でシリアル化されたイベント全体が含まれているため、さまざまなツールからクエリを実行したり使用したりすることができます。

SyslogConsumer を有効にする

SyslogConsumer を有効にするには、クラスターのアップグレードを実行する必要があります。 fabricSettings セクションは、次のコードで更新する必要があります。 このコードには SyslogConsumer に関連するセクションのみが含まれていることに注意してください

    "fabricSettings": [
        {
            "name": "Diagnostics",
            "parameters": [
            {
                "name": "ConsumerInstances",
                "value": "AzureWinFabCsv, AzureWinFabCrashDump, AzureTableWinFabEtwQueryable, SyslogConsumer"
            }
            ]
        },
        {
            "name": "SyslogConsumer",
            "parameters": [
            {
                "name": "ProducerInstance",
                "value": "WinFabLttProducer"
            },
            {
            "name": "ConsumerType",
            "value": "SyslogConsumer"
            },
            {
                "name": "IsEnabled",
                "value": "true"
            }
            ]
        },
        {
            "name": "Common",
            "parameters": [
            {
                "name": "LinuxStructuredTracesEnabled",
                "value": "true"
            }
            ]
        }
    ],

これは、呼び出すための変更です

  1. Common セクションには、LinuxStructuredTracesEnabled という新しいパラメーターがあります。 これは、Syslog への送信時に Linux イベントを構造化およびシリアル化するために必要です。
  2. Diagnostics セクションに、新しい ConsumerInstance であるSyslogConsumer が追加されました。 これで、イベントの他のコンシューマーが存在することをプラットフォームに伝えます。
  3. 新しいセクション SyslogConsumer では IsEnabledtrue にする必要があります。 これは Local0 Facility を自動的に使用するように構成されています。 他のパラメーターを追加することで、これを上書きすることができます。
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Azure Monitor ログの統合

Azure Monitor ログなどの監視ツールでこれらの Syslog イベントを読み取ることができます。 Azure Marketplace を使用して Log Analytics ワークスペースを作成するには、こちらの [手順].(../azure-monitor/logs/quick-create-workspace.md) を参照してください。また、このデータを収集してワークスペースに送信するには、Log Analytics エージェントをクラスターに追加する必要があります。 これは、パフォーマンス カウンターの収集に使用されるものと同じエージェントです。

  1. Advanced Settings ブレードに移動します

    ワークスペースの設定

  2. [Data] をクリックします。

  3. [Syslog] をクリックします。

  4. Local0 を追跡する Facility として構成します。fabricSettings で変更した場合は、別の Facility を追加できます。

    Configure Syslog

  5. ワークスペース リソースのメニューの Logs をクリックしてクエリ エクスプローラーに進み、クエリを開始します。

    ワークスペースのログ

  6. ProcessName としての ServiceFabric を探して、Syslog テーブルに対してクエリを実行できます。 次のクエリは、イベント内の JSON を解析してその内容を表示する方法の例です。

    Syslog | where ProcessName == "ServiceFabric" | extend $payload = parse_json(SyslogMessage) | project $payload

Syslog クエリ

上の例は、NodeDown イベントの例です。 すべてのイベント一覧については、こちらを参照してください。

次のステップ