次の方法で共有


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

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

はじめに

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 ワークスペースを作成できます。

また、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 イベントの例です。 すべてのイベント一覧については、こちらを参照してください。

次のステップ