kibana集成内部账号_Logging with ElasticSearch, Kibana, ASP.NET Core and Docker

很久不见,前两周经历了人生第一次"伪牛市",基金和股市大起大落,更加坚信“你永远赚不到超出你认知范围以外的钱,除非靠着运气”,老韭菜诚不欺我也。

当能力与野心不匹配,只能多看书,收割那些不求甚解的韭菜。

node

言归正传,本文聊一聊在ASP.NET Core3.1中集成ElasticSearch、Kibana日志查询系统。nginx

咱们为何须要ElasticSearch、Kibana?

成熟的应用程序,会在各个阶段以各类姿式记录日志,这些日志包括(但不限于)nginx日志、pod/Container、业务日志。

ElasticSearch是一个高度可扩展的全文搜索和分析引擎,使任何类型的日志记录变得容易,可访问和可搜索。ElasticSearch使人难以置信的速度和简单的查询语言,再加上Kibana的界面和图形,构成了功能强大的日志存储和查询搭档。

web

1.在Docker中启动ElasticSearch、Kibana

docker中启动Elastcisearch、kibana最简单的方式是建立docker-compose文件,将原服务侦听端口映射到宿主机端口。docker

version: '3.1'

services:

elasticsearch:

container_name: elasticsearch

image: elasticsearch:7.6.2

ports:

- 9200:9200

volumes:

- elasticsearch-data:/usr/share/elasticsearch/data

environment:

- xpack.monitoring.enabled=true

- xpack.watcher.enabled=false

- "ES_JAVA_OPTS=-Xms1g -Xmx1g"

- discovery.type=single-node

networks:

- elastic

kibana:

container_name: kibana

image: kibana:7.6.2

ports:

- 5601:5601

depends_on:

- elasticsearch

environment:

- ELASTICSEARCH_URL=http://localhost:9200

networks:

- elastic

networks:

elastic:

driver: bridge

volumes:

elasticsearch-data:

在后台拉取镜像,启动容器:mvc

docker-compose up -d

确认ElasticSearch,kibana启动成功:app

2. 使用ASP.NET Core和NLog向ES发送日志

VS Code建立.NetCore程序asp.net

dotnet new mvc --no-https -o Elastic.Kibana.NLog

cd Elastic.Kibana.NLog

添加NLog依赖包elasticsearch

dotnet add package NLog

dotnet add package NLog.Web.AspNetCore

dotnet add package NLog.Targets.ElasticSearch

添加nlog.config文件ui

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

autoReload="true"

internalLogLevel="Info"

internalLogFile="internal-nlog.txt">

layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />

layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />

ASP.NET Core添加Nlog并输出日志url

public class Program

{

public static void Main(string[] args)

{

var webHost = WebHost.CreateDefaultBuilder(args)

.ConfigureLogging((hostingContext, loggingBuilder) =>

{

loggingBuilder.AddConsole(x => x.IncludeScopes = true).AddDebug();

})

.UseNLog()

.UseStartup()

.Build();

webHost.Run();

}

}

Controller自定义日志:

public class HomeController : Controller

{

private readonly ILogger _logger;

public HomeController(ILogger logger)

{

_logger = logger;

}

public IActionResult Index()

{

_logger.LogInformation("HomeController Index executed at {date}", DateTime.UtcNow);

return View();

}

public IActionResult Privacy()

{

return View();

}

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]

public IActionResult Error()

{

return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });

}

}

3.在kibana中建立Index Pattern

dotnet run启动ASP.NET Core程序,如今开始产生日志。

Kibana使用index pattern从ElasticSearch indices

中获取数据。要在Kibana中显示日志,须要先定义index pattern:

以后选择@timestamp时间过滤。

回到discovery界面,能够看到全部日志。

ok,上面便于ASP.NETCOre+NLog集成ES、Kibana的基本操做流程,

看起来很简单,其实只是九牛一毛,Elastic Stack的内功博大精深,关注我,解锁各类姿式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值