ネット6 WebAPI -弾力性とキバナへのイントロ
17015 ワード
この記事では、探索します.Elkスタックによるネット6
は、弾性検索 です kibana とは
弾性率を使用する理由どのようにすべて一緒にフィット Elk を使用する会社の成分 コード YouTubeで動画を見る
そしてソースコードへのリンクを見つけることができます
https://github.com/mohamadlawand087/Net6-ELK
FlashSearchは、分散、オープンソースの検索と解析エンジン、FlashSearchを格納、検索、およびデータの膨大なボリュームを迅速かつリアルタイムで分析することができますし、戻ってミリ秒の回答を与えることができます.
弾性検索利用あなたの方法 を検索します
スケールの分析
キバナは、視覚的に探索することができます視覚的なインターフェイスツールを視覚化し、ログデータの上にダッシュボードを構築します.
kibanaのコア機能はデータの問い合わせと分析である.また、キバナの可視化機能を使用すると、代替の方法でデータを視覚化することができます
Kibanaを使用すると、大きなデータを理解するのは簡単ですし、迅速に構築することができますし、動的なダッシュボードを共有することができます.
Easyを開始するには、 E *:ちょうどFurticSearchとKibanaコンテナを含むファイルを構成するDockerを起動し、ログと検索を開始する準備が整いました.
簡単に検索する:ElasticSearchは、Apache Luceneに基づいて内蔵フルテキスト検索エンジンを持っています.他のデータベースと比較して、Luceneは簡単に検索できます.非技術的な人々でさえ、一般的な質問を書くことができます.高速:大きなSQLデータベースのクエリを簡単に10または20秒かかることができます.大規模なエラスティックサーチデータベース上の同様のクエリに対して10ミリ秒以下で結果を返すのは一般的です.
無料:まあほとんど.基本的な機能は無料、よく大部分です.キバナでのセキュリティと警告機能を必要とする場合は、Kibanaの商用X -パックのサブスクリプションを購入することができますか、いくつかのオープンソースの選択肢をインストールすることができます.全文検索エンジン 分析エンジン
RESTful API:AntiticSearchはRESTful APIを持っています.結果はJSONで返されます.結果は結果的にうまく動作します.RESTful APIを通してデータを照会して、挿入することは、FlasticSearchで働くためにどんなプログラミング言語も使いやすいことを意味します. s * calable:*それは縮尺が簡単です.それがオープンソースであるという事実と結合して、それは財布の上で簡単です. Netflix イーベイ ウォルマート アドビ LinkedIn スタックオーバーフロー
Dockerファイルを作成します
El ELS:http://localhost:9200
kibana:http://localhost:5601
今、我々はWebアプリケーションを作成します
メニューのクリック
分析の下のは、ディスカバリー をクリックします作成インデックスパターン 名前タイプの:Dotnetelk -* Timestampフィールドのは@ timestamp を選びますをクリックしてインデックスを作成 今すぐ発見に戻って、我々はすべてのログを見ることができますこれまでの では、カスタムメッセージを作成しましょう.コントローラの中で次のように更新します
この記事で何をカバーしているの
弾性率を使用する理由
そしてソースコードへのリンクを見つけることができます
https://github.com/mohamadlawand087/Net6-ELK
弾性検索とは
FlashSearchは、分散、オープンソースの検索と解析エンジン、FlashSearchを格納、検索、およびデータの膨大なボリュームを迅速かつリアルタイムで分析することができますし、戻ってミリ秒の回答を与えることができます.
弾性検索利用
スケールの分析
木花とは
キバナは、視覚的に探索することができます視覚的なインターフェイスツールを視覚化し、ログデータの上にダッシュボードを構築します.
kibanaのコア機能はデータの問い合わせと分析である.また、キバナの可視化機能を使用すると、代替の方法でデータを視覚化することができます
Kibanaを使用すると、大きなデータを理解するのは簡単ですし、迅速に構築することができますし、動的なダッシュボードを共有することができます.
なぜエラスティックサーチ
Easyを開始するには、
簡単に検索する:ElasticSearchは、Apache Luceneに基づいて内蔵フルテキスト検索エンジンを持っています.他のデータベースと比較して、Luceneは簡単に検索できます.非技術的な人々でさえ、一般的な質問を書くことができます.
無料:まあほとんど.基本的な機能は無料、よく大部分です.キバナでのセキュリティと警告機能を必要とする場合は、Kibanaの商用X -パックのサブスクリプションを購入することができますか、いくつかのオープンソースの選択肢をインストールすることができます.
RESTful API:AntiticSearchはRESTful APIを持っています.結果はJSONで返されます.結果は結果的にうまく動作します.RESTful APIを通してデータを照会して、挿入することは、FlasticSearchで働くためにどんなプログラミング言語も使いやすいことを意味します.
エルクを使う会社
コードタイム
Dockerファイルを作成します
version: '3.1'
services:
elasticsearch:
container_name: els
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.1
ports:
- 9200:9200
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
environment:
- xpack.monitoring.enabled=true
- xpack.watcher.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
networks:
- elastic
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.16.1
ports:
- 5601:5601
depends_on:
- els
environment:
- ELASTICSEARCH_URL=http://localhost:9200
networks:
- elastic
networks:
elastic:
driver: bridge
volumes:
elasticsearch-data:
コマンドを実行するdocker-compose up -d
テストを実行するには、次のURLを参照してくださいEl
dotnet new webapi --no-https -n DotnetELK
パッケージのインストールdotnet add package Serilog.AspNetCore
dotnet add package Serilog.Enrichers.Environment
dotnet add package Serilog.Sinks.Debug
dotnet add package Serilog.Sinks.Elasticsearch
dotnet add package Serilog.Exceptions
dotnet restore
更新appsettings.JSON{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Information",
"System": "Warning"
}
}
},
"ElasticConfiguration": {
"Uri": "http://localhost:9200"
},
"AllowedHosts": "*"
}
プログラムを更新する必要があります.csusing System.Reflection;
using Serilog;
using Serilog.Sinks.Elasticsearch;
var builder = WebApplication.CreateBuilder(args);
ConfigureLogging();
builder.Host.UseSerilog();
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
void ConfigureLogging()
{
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile(
$"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json",
optional: true)
.Build();
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithExceptionDetails()
.WriteTo.Debug()
.WriteTo.Console()
.WriteTo.Elasticsearch(ConfigureElasticSink(configuration, environment))
.Enrich.WithProperty("Environment", environment)
.ReadFrom.Configuration(configuration)
.CreateLogger();
}
ElasticsearchSinkOptions ConfigureElasticSink(IConfigurationRoot configuration, string environment)
{
return new ElasticsearchSinkOptions(new Uri(configuration["ElasticConfiguration:Uri"]))
{
AutoRegisterTemplate = true,
IndexFormat = $"{Assembly.GetExecutingAssembly().GetName().Name.ToLower().Replace(".", "-")}-{environment?.ToLower().Replace(".", "-")}-{DateTime.UtcNow:yyyy-MM}"
};
}
今、我々のアプリケーションを実行しますdotnet run
統合を加えるメニューのクリック
分析の下の
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
_logger.LogInformation("WeatherForecastController Get - this is a nice message to test the logs", DateTime.UtcNow);
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
今、我々は検索ボックスでこれを入力することによってそれを検索することができますmessage: "WeatherForecastController Get"
では、エラーをテストしましょうtry
{
throw new Exception("Testing exceptions - ML");
}
catch (Exception ex)
{
_logger.LogError(ex, "An unknown error occurred on the Index action of the HomeController");
}
Reference
この問題について(ネット6 WebAPI -弾力性とキバナへのイントロ), 我々は、より多くの情報をここで見つけました https://dev.to/moe23/net-6-webapi-intro-to-elasticsearch-kibana-step-by-step-p9lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol