1721659745
2024-04-15 17:20:51
導入
この記事では、工場ネットワークの運用技術(OT)層で実行されているレガシーアプリからログとメトリックデータを転送するための堅牢で安全なメカニズムを紹介します。 Azure ログ分析、IT層を介してチェーンを使用して オープンテレメトリコレクター。
顧客の要望
産業企業の顧客は、以下の要件を示しました。
- レガシーソフトウェアは変更されませんでした。
- 工場にはカスタム ソフトウェア コンポーネントはありません。
- Azure にはカスタム ソフトウェア コンポーネントはありません。
- 工場からクラウドまでの強力な認証。
- 既存の工場内 Prometheus 接続を維持します。
- ログとメトリック データは、Azure Monitor への同じパスに従います。
- ネットワーク障害が発生した場合、ログとメトリック データはディスクに保存され、再接続時に再送信される必要があります。
- IT レイヤーでは認証シークレットは共有されません。
潜在的な使用例
工場のOT層で実行されているレガシーアプリケーションがローカルディスク上のプレーンテキストファイルを介してログデータを生成する場合、このアーキテクチャを使用してそれらをAzure Monitorに転送し、クラウドベースの分析を行うことができます。同様に、OTデバイスからPrometheusスタイルのメトリックがスクレイピングされている場合、これらは同じチャネルを介してAzure Monitorに流れ、工場内でローカル経由でアクセスできます。 プロメテウス 実例。
建築
ワークフロー
OT層で実行されるOpenTelemetry Collector(OtelCol)のインスタンスは、いくつかのOtelColレシーバーまたはOpenTelemetry Collector Contribプロジェクトによって提供されるレシーバーを介して、ローカルアプリケーションおよびソースからログとメトリックデータを収集できます。この例では、 プロメテウスレシーバー ローカル指標をスクレイピングし、 ファイルログレシーバー ログテキストファイルを監視します。
ログとメトリックの両方のデータがレシーバーから OTLP エクスポーターのインスタンスに渡され、工場内のネットワーク ルート/ファイアウォールを介して IT レイヤーにデータが転送されます。
IT層のOtelColインスタンスで受信されると、メトリクスデータのコピーがルーティングされ、 プロメテウスエクスポーター Prometheus の工場内インスタンスに転送するため。ログとメトリック データは、Azure に送信するために Azure Monitor エクスポーターに渡されます。Azure Monitor エクスポーターは、ターゲットとする Application Insights のインスタンスを認識するために、Application Insights インストルメンテーション キーを必要とします。追加の認証がない場合、エクスポーターのすべてのインスタンスが同じキーを使用してテレメトリを Azure に送信するため、このキーは共有シークレットになります。これは、顧客要件 8 に反します。
の使用 Azure AAD 認証プロキシ すべてのトラフィックを Application Insights にプロキシすると、Entra ID ベースのセキュリティの追加レイヤーを接続に追加できます。これは、ローカル Docker コンテナーでプロキシを実行し、Azure Monitor エクスポーターからのトラフィックをそれを介して送信することで実現されます。次の抜粋は、この構成を示しています。
azuremonitor:
instrumentation_key: ${env:APP_INSIGHTS_KEY}
endpoint: http://localhost:8081/v2.1/track
エンドポイントの「/v2.1/track」パスは、プロキシにトラフィックをこの Application Insights エンドポイント (Entra ID 認証が有効になっているエンドポイント) に送信するように指示します。
Azure AAD 認証プロキシは、Azure で生成され、Entra ID のアプリケーション/サービス プリンシパルに登録された一意の証明書を使用するため、プロキシ経由で送信されるトラフィックはそのサービス プリンシパルの ID で送信されます。その後、サービス プリンシパルは Application Insights の「監視メトリック パブリッシャー」に追加され、エンドポイントにデータを送信できるようになります。Application Insights は、インストルメンテーション キーだけではデータの取り込みを許可しないように構成されているため、Entra ID ID が必要です。
このアプローチは、計測キーをデータ送信に必要な情報ではあるが不十分な情報にすることで、顧客要件 4 および 8 を解決します。認証プロキシに保持されているデバイスごとに固有の証明書が秘密であると考えています。
Azure Monitor Exporterはこれまでも 送信キュー OtelCol の機能により、IT と Azure の間で一時的なネットワーク障害が発生した場合、テレメトリがメモリに保存され、接続が回復したときに再送信されます。顧客要件 7 では、テレメトリを Azure に送信できない場合にディスクに保持するという、これよりも強力なアプローチが必要でした。この要件をサポートするために、エンゲージメント チームによって Azure Monitor エクスポーターに変更が加えられました。これらの変更はエクスポーターのメイン ブランチに受け入れられ、他のユーザーが使用できるようになりました。
元の顧客によって明示的に要求されているにもかかわらず、このアーキテクチャは、 オープンテレメトリ SDK ログ/メトリック/トレース データを OTelCol の同じ OT レイヤー インスタンス経由で Azure にエクスポートします。
結論
この記事では、ログとメトリック データを従来の OT アプリケーションから工場の IT レイヤーを経由して Azure Monitor に移動し、リモートで分析および監視するための堅牢で信頼性の高いメカニズムを紹介します。Azure Monitor エクスポーターと Azure AAD 認証プロキシを使用すると、OpenTelemetry Collector の機能によって提供される堅牢で信頼性の高い配信メカニズムの上に、エンタープライズ対応のセキュリティ ソリューションを提供できます。
#レガシー #IoT #シナリオ向けの #OpenTelemetry #Collector