一、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

添加检索条件

命中两条数据,没问题

是不是感觉,找日志更快了呢
川公网安备 51010702003150号
留下您的脚步
最近评论