当前位置: 首页 > news >正文

一站式网站建设比较好杭州网站优化外包

一站式网站建设比较好,杭州网站优化外包,同城信息网站建设,驻马店360网站建设一步一步指导您使用 ElasticSearch, Kibana, ASP.NET Core 2.1 和 Docker 来记录日志在本教程中#xff0c;我将向您展示如何启动和运行 ElasticSearch#xff0c;Kibana 和 ASP.NET Core 2.1在开始之前#xff0c;让我们来看看 ElasticSearch#xff0c;Kibana 和 Serilog… 一步一步指导您使用 ElasticSearch, Kibana, ASP.NET Core 2.1 和 Docker 来记录日志在本教程中我将向您展示如何启动和运行 ElasticSearchKibana 和 ASP.NET Core 2.1在开始之前让我们来看看 ElasticSearchKibana 和 Serilog 分别是什么。什么是 ElasticSearch 简单来说ElasticSearch 是一个开源数据库非常适合索引日志和分析数据。什么是 Kibana Kibana 是开源的 ElasticSearch 的数据可视化用户界面。可以将 ElasticSearch 视为数据库将Kibana 视为 Web 用户界面您可以使用它在 ElasticSearch 中构建图表和查询数据。什么是 Serilog Serilog 是 ASP.NET Core 的一个插件可以简化日志记录。Serilog 有各种可用的接收器例如有纯文本、SQL 和 ElasticSearch 接收器等等。为什么 ElasticSearch 如此受欢迎除了几乎每个应用程序都需要日志记录这一事实之外ElasticSearch 解决了许多问题并且做得非常好它是免费和开源的免费。好吧我承认是基本功能免费。如果您需要 Kibana 中的安全和警报功能您可以购买 Kibana 的商业 X-pack 订阅或者可以找一些开源的替代品。RESTful APIElasticSearch 有一个 RESTful 的 API。查询结果以 JSON 格式返回这意味着结果是非常易用的。通过 RESTful API 查询和插入数据意味着使用任何编程语言都可以轻松使用 ElasticSearch。易于查询ElasticSearch 有一个内置的基于 Apache Lucene 的全文搜索引擎。与其他数据库相比Lucene易于查询。即使是非技术人员也可以编写常见查询。快 - 非常快查询大型 SQL 数据库很容易花费 10 或 20 秒。对于大型 ElasticSearch 数据库上的类似查询在 10 毫秒内返回结果是很常见的。可扩展它很容易扩展。再加上它是开源的, 这意味着您可以很容易控制您的钱包。易于安装只需启动包含 ElasticSearch 和 Kibana 容器的 docker compose 文件您就可以开始记录和搜索了。为什么我需要 ElasticSearch 和 Kibana 如果您曾经构建过应用程序那么你一定记录过日志。我们经常去记录错误但这些错误日志存储在服务器某处的文件文件里经常会无法被访问。ElasticSearch 使任何类型的日志记录变得简单易于访问和搜索。ElasticSearch 令人难以置信的速度和简单的查询语言加上 Kibana 的图形界面构成了强大的组合。如果您还没有使用 ElasticSearch 进行日志记录我强烈建议您开始使用它。信息足够了让我们开始 Coding 。我将使用 Visual Studio Code一个开源的跨平台代码编辑器。出于本教程的目的我将使用 Mac OSX但您也可以使用 Ubuntu 或 Windows 10。准备条件要继续下面的步骤请确保安装了这些DockerVisual Studio Code.NET Core SDK 2.1.300 或更高版本 ( 下载 )创建项目文件夹mkdir elastic-kibanacd elastic-kibana使用 .NET Core 命令行创建 MVC 项目dotnet new mvc -n elastic-kibana -o src在 Visual Studio Code 中打开项目cd elastic-kibanacode .创建 docker compose 文件接下来创建一个 docker compose 文件。此文件将一并启动 ElasticSearch 和 Kibana 容器无需为每个容器运行单独的docker run命令。mkdir dockercd docker创建一个名为 docker-compose.yml 的文件version: 3.1services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4container_name: elasticsearchports: - 9200:9200volumes: - elasticsearch-data:/usr/share/elasticsearch/datanetworks: - docker-networkkibana:image: docker.elastic.co/kibana/kibana:6.2.4container_name: kibanaports: - 5601:5601depends_on: - elasticsearchnetworks: - docker-networknetworks:docker-network:driver: bridgevolumes:elasticsearch-data:接下来运行 docker compose 命令来启动容器。docker-compose up -d第一次运行 docker-compose up 命令时它将从 docker 仓库下载 ElasticSearch 和 Kibana 所需的镜像因此它将花费几分钟的时间。运行 docker-compose up 命令后请检查 ElasticSearch 和 Kibana 是否已经启动。ElasticSearch打开 http://localhost:9200 确认 ElasticSearch 已经启动。Kibana打开 http://localhost:5601 确认 Kibana 已经启动。加 Nuget 包到项目我们将添加以下 Serilog 的包到项目。SerilogSerilog.Sinks.ElasticSearchSerilog.Extensions.Loggingcd ..cd elastic-kibanadotnet add package Serilogdotnet add package Serilog.Sinks.ElasticSearchdotnet add package Serilog.Extensions.Loggingdotnet restore添加一些配置信息到 appsettings.json添加默认的日志设置以及 ElasticSearch 的 url 到 appsettings.json 文件{Logging: {LogLevel: {Default: Information,System: Information,Microsoft: Information } },ElasticConfiguration: {Uri: http://localhost:9200/ }}在 Startup.cs 中配置日志功能下一步在 Startup.cs 中配置日志功能添加这些 using 语句using Microsoft.Extensions.Logging;using Serilog;using Serilog.Sinks.Elasticsearch;然后配置 Startup 的构造函数以从 appsettings.json 加载 ElasticSearch 的 URL并配置 ElasticSearch 的接收器。public Startup(IConfiguration configuration, IHostingEnvironment hostingEnvironment){ var builder new ConfigurationBuilder() .SetBasePath(hostingEnvironment.ContentRootPath) .AddJsonFile(appsettings.json, optional: true, reloadOnChange: true) .AddJsonFile($appsettings.{hostingEnvironment.EnvironmentName}.json, reloadOnChange: true, optional: true) .AddEnvironmentVariables(); Configuration builder.Build(); var elasticUri Configuration[ElasticConfiguration:Uri]; Log.Logger new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticUri)) { AutoRegisterTemplate true, }) .CreateLogger();}最后在 Configure 方法中将 Serilog 添加到日志工厂。public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){ loggerFactory.AddSerilog();}开始记录日志到 ElasticSearch现在通过在 Visual Studio Code 中点击 F5 或者命令行中执行 dotnet run 来运行 MVC 应用程序。启动 Kibana由于我们在 Startup 类中配置了日志记录并将最小日志级别设置为 Information因此运行该应用程序会将一些事件记录到 ElasticSearch 。在 http://localhost:5601 打开 Kibana以便我们可以查看日志。加载 Kibana 后您将看到默认页面。在 Kibana 中创建索引模式来显示数据Kibana 现在还不会显示任何日志。您必须先指定索引才能查看记录的数据。为此请单击导航中的 Management 链接然后将列在页面底部的 logstash 索引名称复制到文本框中如下所示然后单击下一步按钮。或者您可以使用*号通配符例如 logstash-*然后通过选择 timestamp 指定时间过滤器字段名称然后单击 Create index pattern按钮。您现在可以通过单击导航中的 Discover 链接来查看日志。在 MVC Controller 中记录自定义消息由于我们指定要记录日志级别为 Information 或更高级别的消息因此默认情况下会记录大量信息消息。但是如果我们想记录自己的消息呢值得庆幸的是这很容易做到。接下来我将在 HomeController 中记录一条消息。添加 using 语句using Microsoft.Extensions.Logging;然后使用构造函数注入的方式来注入 ILogger 的实例。ILoggerHomeController _logger;public HomeController(ILoggerHomeController logger){ _logger logger;}最后在 Index Action 中记录一条消息。public IActionResult Index(){ _logger.LogInformation($oh hai there! : {DateTime.UtcNow});return View();}在 Kibana 中搜索现在我们已经记录了一条消息只需打开 Kibana 并搜索日志消息的文本即可。您还可以将某一条日志在单独的窗口中打开以查看各个字段记录的信息。我将展示一些基本的搜索示例来演示在 Kibana 中搜索的容易程度以及 ElasticSearch 的强大功能message:oh hai therelevel:Informationfields.ActionName:elastic_kibana.Controllers.HomeController.Index(message:oh hai there AND fields.ActionName:elastic_kibana.Controllers.HomeController.Index)记录错误日志到 ElasticSearch一个典型的需求就是记录错误消息。使用 Serilog 这将变得非常简单如下所示。try{throw new Exception(oops. i haz cause error in UR codez.);}catch (Exception ex){ _logger.LogError(ex, ur code iz buggy.);}在 Kibana 中搜索错误日志在 Kibana 中找到错误日志非常简单使用如下的搜索条件就可以找到所有的错误日志了。level: Error我们来看看使用 Serilog 和 ElasticSearch 默认记录的详细信息。它看起来还不错但您会注意到异常细节被记录为一个大大的字符串。在此字符串中搜索信息仍会返回结果但如果根据特定字段记录信息我们可以执行更强大和特定的搜索。值得庆幸的是有一个名为 Serilog.Exceptions 的插件可以帮助我们。安装 Serilog.Exceptions Nuget 包安装 Serilog.Exceptions Nuget 包:dotnet add package Serilog.Exceptionsdotnet restore接下来在 Startup.cs 文件中使用如下 using 语句using Serilog.Exceptions;然后使用 Serilog.Exceptions 来丰富一下 Loggerpublic Startup(IConfiguration configuration, IHostingEnvironment hostingEnvironment){ Log.Logger new LoggerConfiguration() .Enrich.FromLogContext() .Enrich.WithExceptionDetails() .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticUri)) { AutoRegisterTemplate true, }) .CreateLogger();}最后刷新一下记录一个新的错误并在 Kibana 中搜索到它查看更结构化的错误日志记录。降低日志级别您可能会发现 Information 级别日志有点过于冗长不符合您的口味。默认情况下ASP.NET Core 将记录 Kestrel 托管相关的日志事件。这可能会非常嘈杂。排除掉它们的一种简单方法是通过修改 appsettings 文件将 Microsoft 日志级别设置为 Warning 。或者, 您可以通过将 Default 和 System 的最小日志级别设置为 Error 来进一步限制日志记录, 如下所示。 Logging: {LogLevel: {Default: Error,System: Error,Microsoft: Warning } }尾声传统的方法日志记录需要大量的前期工作才能启动和运行。因此日志记录通常会被完全遗漏或者写入到难以访问的服务器上的某些模糊的文本文件里。ElasticSearch 和 Kibana 改变了这一切。而 Docker 已经使 ElasticSearch 和 Kibana 的启动和运行变得毫不费力。ElasticSearch 和 Kibana 提供的强大功能以及非常高的性能再加上它是开源的这真的令人印象非常深刻。即使没有像 Serilog 这样的插件与传统 ASP.NET 相比ASP.NET Core 中的日志记录也变得更加容易因此, 在创建可扩展的日志记录框架方面, 我对 .NET Core 团队表示赞赏。Serilog 简单地构建在此之上并且扩展了功能以使 .NET Core 开发人员的日志记录变得更简单。通过组合 DockerElasticSearchKibanaASP.NET Core 和 Serilog 您获得了前所未有的便利性和功能再也没有理由不再将日志记录整合到应用程序中了。下载源代码下载源代码 : https://github.com/thecarlo/elastic-kibana-netcore-serilog资源Download .NET Core 2.1 SDKElasticSeachKibanaSerilogSerilog.Sinks.ElasticSearch Nuget Package
http://www.zqtcl.cn/news/874676/

相关文章:

  • 什么网站可以做推广百度登录入口
  • 公司备案网站负责人是谁刷网站关键词工具
  • 比较好的建立站点网页美工设计从入门到精通
  • 新手做网站流程网店推广计划怎么写免费的
  • 怎么建造自己的网站朋友圈推广文案
  • 用什么程序做网站潍坊做电商的网站
  • 雅客网站建设网站如何挂马教程
  • 手机网站开发兼容性wordpress下载主题footer
  • 资讯网站模板带会员投稿功能怎么查网站开发的语言
  • 个人网站搭建平台wordpress免费还是收费
  • 网站优化协议嘉兴企业网站设计哪家好
  • 英文网站设计哪家好用php做的网站用什么数据库
  • 公司网站建设包括服装设计公司效果图
  • 做网站怎么购买主机下载安装百度一下
  • wordpress网站 搬家大型网站开发什么书籍好
  • 机关事业单位 网站建设方案书网站推送怎么做
  • php网站如何绑定一级域名到子目录做推广便宜的网站
  • 江苏省网站建设与管理历年自考试题商城网站 价格
  • 淘宝客网站建站源码icp备案查询官网入口
  • 环球资源网站网址微信管理中心
  • 青岛seo建站企业网址下载
  • 开发网站多少钱一个月做网站宽度
  • wordpress企业站主题哪个好做床上用品网站
  • 宜兴市做网站网站建设简讯
  • 点的排版设计网站音乐网站网页设计
  • 牛商网做网站的思路建设网站的机构
  • flash网站制作实例自适应网站做百度推广
  • 深圳建立网站电影里的做视频在线观看网站
  • 国家建设标准发布网站在哪里在线教育网站怎样建设
  • 徐州 商城网站设计winserver wordpress