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

Blob Storage の FAQ

このページでは、Azure Blob Storage に関連した統合に関するよくある質問への答えを示します。

このページでは、Azure Blob Storage に関連した統合に関するよくある質問への答えを示します。

FileOffsetMap とは何ですか?

FileOffsetMap は、Azure Table Storage で作成されるテーブルであり、内部の整理に使用されます。ストレージ アカウントから生成されるイベントには Blob のサイズしか含まれないため、Azure 関数は、30 バイト、40 バイト、70 バイトといったサイズが入ったイベント メッセージを Blob パスと一緒にランダムな順序で受け取ります。Sumo Logic は、次の範囲を決定するための各ファイルと現在のオフセットのマッピングを格納しています。

収集のメカニズムはどのような仕組みになっていますか?

パイプラインでいろいろなコンポーネントがどのように絡み合って動作するかについては、Azure Blog Storage ページの「データ フローのモニタリング」のセクションを参照してください。

関数をスケーリングするにはどうしたらよいですか?

[Application settings (アプリケーションの設定)] ページで、以下のいずれかの方法で関数をスケーリングできます。

  • 関数アプリケーションの設定で BlobTaskProducer host.jsonmaxBatchSize 値を増やす。これによってより多くのイベントがフェッチされ、より大きな読み取りブロックが作成されます。
  • BlobTaskConsumer host.jsonmaxConcurrentCalls コール数を増やす。上限に達しないように値を少しずつ増やすには、この方法をお勧めします。

Azure_New_Host_Key.png 

  • prefetchcount2*maxBatchSize に増やす。

Azure-FAQ_Increase_BatchSize.png

ログを Azure Blob Storage から複数の sourceCategory に取り込むにはどうすればよいですか?

以下は、Field Extraction Rule (FER) のソリューションです。 

FER でコンテナ名を抽出し、_sourceCategory を _sourceCategory/<containername> で上書きして、ユーザが検索したら新しい sourcecategory が使用されるようにします。例: 

_sourceCategory = azure_logs | json auto | parse field=resource_id  "/NETWORKSECURITYGROUPS/*" 
as nsg_name | concat('azure_logs/", nsg_name) as _sourceCategory

Source Category をヘッダーで送信するように関数を変更する方法もあります。詳細は、「ログ コンテンツに基づいて異なる Source Category にログを転送するにはどうすればよいですか?」を参照してください。

イベントをコンテナ名で絞り込むにはどうすればよいですか?

イベントをコンテナ名で絞り込むには、次の手順を実行します。

  1. [Event Subscription (イベント サブスクリプション)] > [Filters (フィルタ)] タブに移動します。
  2. [Subject Begins With (次で開始する件名)] フィールドに次のように入力します。その際、<container_name> を、ログのエクスポート元のコンテナの名前に置き換えます。 
/blobServices/default/containers/<container_name>/

Azure-FAQ_Event-Subscription.png

Blob Storage 統合をトラブルシューティングするにはどうすればよいですか?

  • ブロック Blob 作成イベントが公開されていることを確認する - イベントが作成されていない場合は、新しい Blob が作成されていないか、Event Grid サブスクリプションのサブスクライバ設定が適切に設定されていません。たとえば、コンテナの regex が一致しないか、Event Grid サービスが停止している可能性があります。
  • Event Hub がログ メッセージを受信していることを確認する - イベントが Event Hub に取り込まれていない場合、Event Grid サブスクリプションのパブリッシャ設定が適切に設定されていません。
  • Service Bus キューがタスクを受信していることを確認する - Service Bus がデータを受信していない場合は、SUMOBRTaskProducer 関数で問題が発生している可能性があります。関数の呼び出しログを確認してください。たとえば、イベント ペイロード形式が Microsoft によって変更されていれば、Service Bus への書き込みはできません。または、Service Bus が停止している可能性もあります。
  • Live Tail を確認する - ログが Sumo に取り込まれていて、他のすべてを確認済みの場合、SUMOBRTaskConsumer 関数に問題がある可能性があります。関数の呼び出しログを確認してください。たとえば、ストレージ アカウントからの読み取りができなければ、Blob が読み取り前に削除されていたか、ログ形式がサポートされていない可能性があります。

Blob Reader エラー メッセージ

  • エラー: The request is being throttled. at client.pipeline.error (D:\home\site\wwwroot\BlobTaskConsumer\node_modules\azure-arm-storage\lib\operations\storageAccounts.js:1444:19) at retryCallback (D:\home\site\wwwroot\BlobTaskConsumer\node_modules\ms-rest\lib\filters\systemErrorRetryPolicyFilter.js:89:9) at retryCallback (D:\home\site\wwwroot\BlobTaskConsumer\node_modules\ms-rest\lib\filters\exponentialRetryPolicyFilter.js:140:9) at D:\home\site\wwwroot\BlobTaskConsumer\node_module...FunctionName: BlobTaskConsumer (リクエストは調整中です。at client.pipeline.error (D:\home\site\wwwroot\BlobTaskConsumer\node_modules\azure-arm-storage\lib\operations\storageAccounts.js:1444:19) at retryCallback (D:\home\site\wwwroot\BlobTaskConsumer\node_modules\ms-rest\lib\filters\systemErrorRetryPolicyFilter.js:89:9) at retryCallback (D:\home\site\wwwroot\BlobTaskConsumer\node_modules\ms-rest\lib\filters\exponentialRetryPolicyFilter.js:140:9) at D:\home\site\wwwroot\BlobTaskConsumer\node_module...FunctionName: BlobTaskConsumer)

    ソリューション: BlobTaskProducer の host.json の maxBatchSize を増やします。これにより、取得されるイベントが増え、より大きなブロックが読み取り用に作成されます。次に、BlobTaskConsumer の host.json の maxConcurrentCalls コール設定を減らします。これにより、同時呼び出し数が制限され、読み取りリクエスト数が少なくなります。

  • エラー: HTDECK-JOBCOSTING-API__BE93-2019-05-08-14-e5260b.log"": [48255]} Exception while executing function: Functions.BlobTaskProducer Microsoft.Azure.WebJobs.Host. FunctionInvocationException : Exception while executing function: Functions.BlobTaskProducer ---> System.Exception : StorageError: The table specified does not exist.  RequestId:3914a31a-e002-000e-1dad-05a995000000 Time:2019-05-08T14:48:29.9940095Z at async Microsoft.Azure.WebJobs.Script.Description.NodeFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\Node\NodeFunctionInvoker.cs : 196 (HTDECK-JOBCOSTING-API__BE93-2019-05-08-14-e5260b.log"": [48255]} 次の関数の実行中に例外が発生しました: Functions.BlobTaskProducer Microsoft.Azure.WebJobs.Host FunctionInvocationException : 次の関数の実行中に例外が発生しました: Functions.BlobTaskProducer ---> System.Exception : StorageError: 指定されたテーブルが存在しません。RequestId:3914a31a-e002-000e-1dad-05a995000000 Time:2019-05-08T14:48:29.9940095Z at async Microsoft.Azure.WebJobs.Script.Description.NodeFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\Node\NodeFunctionInvoker.cs : 196)

    ソリューション: このエラーは、FileOffsetMap が存在しない場合に発生します。「ステップ 3: ARM テンプレートを使用して Azure リソースを設定する」のサブステップ 11 で次のテーブルを作成したかどうかを確認してください。

  • エラー: You'll see a Deployment Failed error when roleAssignment is not unique but we are already using resourcegroup.id in a name that is unique.The error details are: (デプロイ失敗エラーが表示されるのは、roleAssignment が一意ではないのに、一意の名前内ですでに resourcegroup.id を使用している場合です。エラーの詳細は以下のとおりです。)

    Tenant ID, application ID, principal ID, and scope are not allowed to be updated.  (Code: RoleAssignmentUpdateNotPermitted) (テナント ID、アプリケーション Id、プリンシパル ID、範囲の更新は許可されません。(コード: RoleAssignmentUpdateNotPermitted))
     

    For more information, see the following articles: (詳細は、次の記事を参照してください。)

    https://social.msdn.microsoft.com/Forums/en-US/5267ce3b-8e48-4b1b-8e40-276006ad23e4/create-roleassignment-fails-with-error-quottenant-id-application-id-principal-id-and-scope-are?forum=WindowsAzureAD

    http://answers.flyppdevportal.com/MVC/Post/Thread/afc10f35-fa20-467e-b927-aeefdbf35eaf?category=azurescripting

    ソリューション: Sumo Logic コレクション リソース用に新しいリソース グループを作成します。問題が修復されない場合は、ARM テンプレートの変数を次の値から

     "consumer_roleGuid": "[guid(parameters('sites_blobreaderconsumer_name'), uniqueString(deployment().name, resourceGroup().id))]",

            "dlq_roleGuid": "[guid(parameters('sites_DLQProcessor_name'), uniqueString(deployment().name, resourceGroup().id))]",

    次の値に変更します。 

     "consumer_roleGuid": "[guid(parameters('sites_blobreaderconsumer_name'), uniqueString(‘<random unique word>’, resourceGroup().id))]",

            "dlq_roleGuid": "[guid(parameters('sites_DLQProcessor_name'), uniqueString(‘<random unique word>’, resourceGroup().id))]"

  • エラー: Azure fails to install dependencies on a node.System.AggregateException : One or more errors occurred.---> Error: Cannot find module 'azure-storage' (エラー: Azure がノードへの依存関係のインストールに失敗しました。System.AggregateException: 1 つ以上のエラーが発生しました。 ---> エラー: モジュール 'azure-storage' が見つかりません)

    ソリューション: コンソールから npm install を実行します。

    Azure-FAQ_BlobTaskConsumer.png

  • エラー: Subscription for Microsoft.EventGrid is not registered. (Microsoft.EventGrid のサブスクリプションが登録されていません。)

    ソリューション: プロバイダを登録するには、次の手順を実行します。

    1.[Subscription (サブスクリプション)] に移動します。

    2.ARM テンプレートがデプロイされているサブスクリプションの名前を選択します。

    3.左側の [Setting (設定)] で [Resource providers (リソース プロバイダ)] を選択します。

    4.Microsoft.EventGrid を検索して登録します。

    Azure-FAQ_Subscriptions.png

    Azure-FAQ_Register-Subscription1.png

  • この記事は役に立ちましたか?