ELK一个优秀的日志收集、搜索、分析的解决方案

ELK一个优秀的日志收集、搜索、分析的解决方案
最新回答
别逗本宫

2026-05-04 01:28:25

ELK(Elasticsearch、Logstash、Kibana)是一个强大的日志收集、搜索和分析解决方案。以下是关于ELK的详细介绍和使用指南:

一、ELK简介

  • Elasticsearch:一个开源的全文搜索引擎,能够实时存储、搜索和分析大量数据。
  • Logstash:一个开源的数据收集引擎,具有实时管道功能,可以动态地将来自不同数据源的数据统一起来。
  • Kibana:一个日志可视化分析平台,提供了一系列日志分析的Web接口,支持高效搜索、分析和可视化操作。

二、ELK安装与配置(以Docker方式友拆悉为例)

  1. 安装ELK
docker pull sebp/elkdocker run -p 5601:5601 -p 9200:9200 -p 5044:5044 --name elk sebp/elk
  1. 验证Elasticsearch

在浏览器中输入

http://localhost:9200
,应能看到Elasticsearch的版本和集群信息。

  1. 访问Kibana

在浏览器中输入

http://localhost:5601/app/kibana
,即可看到Kibana的界面。

三、使用Serilog收集日志

  1. 创建项目并引入依赖

在项目中引入 Serilog.AspNetCore 和 Serilog.Sinks.ElasticSearch 依赖项。

  1. 配御或置Serilog

在 Program.cs 文件中增加好乎以下配置:

using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Hosting;using Serilog;using Serilog.Events;using Serilog.Sinks.Elasticsearch;using System;namespace ELK.WebApi01{ public class Program { public static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .MinimumLevel.Debug() .WriteTo.Elasticsearch( new ElasticsearchSinkOptions(new Uri("
http://localhost:9200"
)) { MinimumLogEventLevel = LogEventLevel.Verbose, AutoRegisterTemplate = true }) .CreateLogger(); CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) .UseSerilog(); }}
  1. 创建日志测试接口

在控制器中增加日志测试接口:

using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Logging;using System;namespace ELK.WebApi01.Controllers{ [Route("[controller]")] [ApiController] public class LogController : Controller { private readonly ILogger<LogController> logger; public LogController(ILogger<LogController> logger) { this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); } [HttpGet] public void Get() { logger.LogInformation("测试1"); } }}

四、在Kibana中查看日志

  1. 创建索引模式

在Kibana中,点击左侧导航栏的设置按钮,然后点击右侧的“Create index pattern”按钮创建一个索引。在Elasticsearch中,索引相当于一张“表”。

  1. 查看日志

创建索引后,即可看到收集的日志信息。在此基础上,可以进行进一步的检索、过滤,生成各种查询。

五、总结

ELK解决方案通过Elasticsearch、Logstash和Kibana的紧密配合,实现了日志的实时收集、高效搜索和可视化分析。通过Serilog等日志框架,可以方便地将应用程序日志集成到ELK中,从而实现对系统运行状态的全面监控和分析。