論理解析の導入クライアントヌー.ネットコア



ログ解析に直接関係し、Cからのエンティティを送信すると、私は以前について話しているBuilding Custom Data Collectors for Azure Log Analytics and Log custom application security events in Azure Log Analytics which are ingested and used in Azure Sentinel .
私はLogAnalytics.Client GitTubのプロジェクト、そして最近は消費者のためのnugetを発表した.
簡単に言えば:それはあなたのアプリケーションからAzureログ解析にログを送信する簡単な方法です.
それは退屈なビットを詳述します.そして、有効な特性でどんな実体(オブジェクト)も受け入れるクライアントで我々を残します.
私が最初にこれを構築した理由は、私が同じユースケースに戻って来たということでした.私は複数のプロジェクト間で同じ機能を再実装したくなかったので、ラッパーを作りました.私はこのトピックについて多くの要求を得続けたので、私はGithubにそれを置いて、Nugetを押すことに決めました.

どのように私はLogAnalyticsを使用します。クライアント?


インストールするLogAnalytics.Client プロジェクトにnuget.あなたのプロジェクトの設定に応じて、いくつかの方法でこれを行うことができます.

nugetのインストール


DOTNET CLIを使用してインストールします.
dotnet add package LogAnalytics.Client

nugetパッケージマネージャをインストールします.
Install-Package LogAnalytics.Client

csprojにpackagereferenceを追加することでインストールします.
<PackageReference Include="LogAnalytics.Client" Version="1.1.1" />

Paket CLIを使用してインストールします
paket add LogAnalytics.Client

ログ解析学の使用クライアント


使用方法はまっすぐです.まず、LogAnalyticsClientを初期化します.
LogAnalyticsClient logger = new LogAnalyticsClient(
                workspaceId: "LAW ID",
                sharedKey: "LAW KEY");

次に、任意の実体をログ解析にログ出力できます.
単一エンティティの送信例
await logger.SendLogEntry(new TestEntity
{
    Category = GetCategory(),
    TestString = $"String Test",
    TestBoolean = true,
    TestDateTime = DateTime.UtcNow,
    TestDouble = 2.1,
    TestGuid = Guid.NewGuid()
}, "demolog")
.ConfigureAwait(false);

バッチで複数のエンティティを送信する例
List<DemoEntity> entities;
// populate 'entities' in whatever way you need; the next line sends the entire collection in a batch request.

await logger.SendLogEntries(entities, "demolog").ConfigureAwait(false);

項目はログ解析における行で表されます.
ここに、ログ解析論に存在する実体の例があります.
LogAnalyticsからカスタムイベントを表示するAzureログ解析.クライアントヌード

貢献する


誰でも助けに励まされる.私は、プロジェクトのどんな援助にでも感謝します.我々はすでにいくつかの個人のprsとの提案は、優れている助けて!

開発


ローカルにプロジェクトを設定するには、すぐに貢献する素晴らしい方法です.
実際の統合/E 2 Eテストをログ解析論のインスタンスで直接実行しているので、テストの秘密を設定する必要があります.セットアップでは、コードの動作を確認し、コードが有効になっているログ解析の最新バージョンでは、クラウドで実行しています.

テストの秘密


プロジェクト内の独自のLog AnalyticsのワークスペースIDとキーを持つ必要があります.我々は現在、このためのユーザーの秘密を使用します.
使用dotnet からのCLILogAnalyticsClient.Tests プロジェクトディレクトリ:
dotnet user-secrets set "LawConfiguration:LawId" "YOUR LOG ANALYTICS INSTANCE ID"
dotnet user-secrets set "LawConfiguration:LawKey" "YOUR LOG ANALYTICS WORKSPACE KEY"
dotnet user-secrets set "LawServicePrincipalCredentials:ClientId" "CLIENT ID HERE"
dotnet user-secrets set "LawServicePrincipalCredentials:ClientSecret" "CLIENT SECRET HERE"
dotnet user-secrets set "LawServicePrincipalCredentials:Domain" "TENANT NAME OR DOMAIN ID HERE"

あなたは今secrets.json ローカルのプロジェクトのファイルには、次のような内容があります.
{
  "LawConfiguration": {
    "LawId": "YOUR LOG ANALYTICS INSTANCE ID",
    "LawKey": "YOUR LOG ANALYTICS WORKSPACE KEY"
  },
  "LawServicePrincipalCredentials": {
    "ClientId": "Principal Client ID Here",
    "ClientSecret": "Principal Client Secret Here",
    "Domain": "Your tenant guid here, or tenant name"
  }
}


どこで資格証明書をもらえますか.
統合テストの作業を行うには、Log Analyticsのインスタンスからキーを必要とします.たとえば、Azureポータル内のログAnalyticsのワークスペースからこれらを見つけることができます.
サービスプリンシパルの秘密を追加するには、新しいサービスプリンシパルを作成し、秘密を追加し、Log Analyticsリソースへの読み込みアクセスを許可します.
このポストからステップ1をチェックします
  • https://zimmergren.net/retrieve-logs-from-application-insights-programmatically-with-net-core-c/
  • あなたは快適できちんとしたプロジェクトを設定する必要があります.私はすでにいくつかの単体テストと統合テストのセットを構築しました.これらのテストは、コードがクラウドで実行されているログ解析の最新バージョンで動作することを確認するのに役立ちます.
    論理解析.クライアントのヌード開発

    概要


    最初にこのプロジェクトを作るのは楽しいことでした.人々がnugetの上にいるとき、人々が現在それを使っているのを見るために、それはすべてのより楽しいです.今日の執筆時点で、約2800のダウンロードがあります.それはあまりではないが、興味が高まっているようだ.

  • LogAnalytics.Client (github)

  • LogAnalytics.Client (nuget)

  • Building custom Data Collectors for Azure Log Analytics in C# ( Zimmergren )

  • Log custom application security events in Azure Log Analytics which are ingested and used in Azure Sentinel ( Zimmergren )

  • App Secrets (マイクロソフトDocs )