一、ELK日志归集之Elasticsearch安装(CentOS 7.5)
二、ELK日志归集之LogStash安装(CentOS 7.5)
三、ELK日志归集之Kibana安装(CentOS 7.5)
四、.NET5 WebApi 直接输出到Elasticsearch
五、.NET5 WebApi 日志利用Logstash收集到Elasticsearch中
1、创建一个.NET5 WebApi项目
2、添加引用
Serilog.Sinks.Elasticsearch Serilog.AspNetCore
3、修改Program.cs
public class Program { public static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .CreateLogger(); CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseSerilog((ctx, config) => { config.ReadFrom.Configuration(ctx.Configuration); }); webBuilder.UseStartup(); }); }
4、修改配置文件appsettings.json
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "Serilog": { // 日志输出级别Trace -》Debug-》 Info -》Warn-》 Error-》 Fatal "MinimumLevel": { "Default": "Debug", "Override": { //日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information "Microsoft": "Debug", //简化日志 "System": "Debug", "Microsoft.AspNetCore": "Debug", "ElkDemo.Api.Controllers": "Debug" } }, "WriteTo": [ { "Name": "Console", "Args": { "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff} {Level:u3}] {Message:lj}{NewLine}{Exception}" } }, { "Name": "File", "Args": { "path": "Logs/log.log", "rollingInterval": "Day", // "创建文件的类别,可以是分钟,小时,天,月,年": null, "retainedFileCountLimit": 60, // "--设置日志文件个数最大值,默认31,意思就是只保留最近的31个日志文件", "等于null时永远保留文件": null, "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}", "fileSizeLimitBytes": 3145728, //设置单个文件大小为3M 默认1G "rollOnFileSizeLimit": true //超过文件大小后创建新的 } }, { "Name": "Elasticsearch", "Args": { "nodeUris": "http://10.3.1.171:9200;", "indexFormat": "ElkDemo-index-1-{0:yyyy.MM}", "bufferBaseFilename": "./logs/buffer" } } ] } }
注意核心配置:nodeUris配置的es的地址
5、添加测试数据
[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger_logger; public WeatherForecastController(ILoggerlogger) { _logger = logger; } [HttpGet] public IEnumerableGet() { _logger.LogInformation("这是一条测试消息Information"); _logger.LogError("这是一条测试消息Erro"); _logger.LogDebug("这是一条测试消息Debug"); var rng = new Random(); return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }) .ToArray(); } }
6、请求之后去Kibana查看
点击左侧三横图标-->Stack Management-->索引管理
能看到我们的数据记录
7、添加索引模式
点击索引模式-->创建索引模式-->下一步-->完成
8、进入检索
点击三横图标-->Discover
添加检索条件
命中两条数据,没问题
是不是感觉,找日志更快了呢
留下您的脚步
最近评论