windows环境下net项目中使用elasticsearch收集日志等信息以及使用elasticsearch-head插件可视化查看,以及使用kibana可视化,并结合apm性能监控

这篇文章旨在让你轻松在net项目中完成对日志的收集以及可视化,主要涉及elasticsearch / elasticsearch-head /kibana /apm /nssm来完成对一个项目的完整日志收集性能监控,更方便定位问题,查找原因。上面说的这些都是什么接下来将一个一个为大家介绍,并让你们能在自己的项目中使用起来。

基础环境的准备搭建

1.Java环境JDK安装 NodeJs的安装 自己百度
在基础环境都准备好之后进行下面的操作

ElasticSearch安装

ElasticSearch的下载地址ElasticSearch下载
我使用的是elasticsearch-7.16.3-windows-x86_64.zip
把zip文件解压,在解压的文件中找到bin文件夹和config文件夹下面分别来说这两个文件夹都做什么。
bin文件夹:
一些批处理程序找到里面的elasticsearch双击它来启动ElasticSearch服务,启动成功之后 本地可以通过访问 http://localhost:9200 来验证是否启动。
config文件夹:
一些配置信息yml文件,这里我们需要看到elasticsearch.yml文件
elasticsearch.yml可以对elasticsearch进行相关的基础信息安全这些进行配置,注意修改了这个文件之后要重新启动服务。
当你看到如下画面就是部署并启动成功了:
在这里插入图片描述

ElasticSearch为了安全性默认只能本地访问,如果要开启外网远端访问,需要在elasticsearch.yml文件中添加如下配置:

# elastic search为了安全默认为本地可访问 这里开启远端可访问 需要配合x-pack添加用户名密码认证来安全访问(即访问http://ip:port需要输入密码)
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0
discovery.seed_hosts: ["0.0.0.0", "[::0]"]

#通过x-pack来实现用户名密码安全访问 开启安全访问
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

配置添加完成之后点击elasticsearch.bat文件重启服务。

服务启动完成之后需要设置密码,到bin目录下打开控制台,输入elasticsearch-setup-passwords interactive命令,依次序设置密码,注意输入的时候密码为不可见,需要自己记住,这个在后面相关的与ElasticSearch相集成的组件中要用到
在这里插入图片描述
再次访问就会提示输入用户名密码:
在这里插入图片描述
用户名默认都为elastic,密码就是你自己设置的密码
但是这里有一个问题,当关闭它的时候服务会停止。
这里我们需要采用nssm来注册服务(nssm接下来讲解)。

使用nssm来注册服务

nssm下载地址:nssm下载

下载完后解压,解压之后看到这样的文件目录
在这里插入图片描述
这里主要是win32和win64目录这里懂的都懂,根据自己系统的版本,进入到对应的目录下面,然后打开控制台cmd,这里我们使用到nssm install安装服务命令,其他命令自己看下载地址的官网了解
在这里插入图片描述
上面的Path选择服务的批处理程序,以上面的ElasticSearch为例,这里就是选择到你之前启动ElasticSearch批处理
在这里插入图片描述
接下来在任务管理器里面找到它启动它即可
在这里插入图片描述

ElasticSearch-Head可视化

ElasticSearch-Head部署的方式

参考地址ElasticSearch-Head部署安装

使用ElasticSearch-Head插件安装到Google浏览器中

自己百度下载,下载完成直接解压,找到crx文件夹
在这里插入图片描述
把文件夹里面后缀为crx的文件改为rar解压,以开发者模式加载解压拓展程序完成插件安装,插件安装完成之后
在这里插入图片描述
插件安装完成连接浏览:
在这里插入图片描述

在这里插入图片描述

Kibana安装

Kibana下载:Kibana下载地址
注意Kibana的版本号和ElasticSearch保持一致
下载完成之后解压出来:跟ElasticSearch类似也存在bin和config两个文件夹,也是通过bin文件下的kibana.bat批处理文件启动kibana(同样这里窗口关闭kibana停止服务,需要使用nssm安装服务参考ElasticSearch),启动之后访问localhost:5601即可
kibana为了安全默认只能本地访问,如果需要远程访问
需要修改kibana.yml文件加入如下内容:

server.host: "0.0.0.0"

由于之前ElasticSearch设置了用户名密码访问,这里需要在config的kibana.yml加入如下内容:

elasticsearch.username: "elastic"
elasticsearch.password: "前面自己设置ElasticSearch的密码"

启动之后,由于之前通过ElasticSearch设置了kibana的密码,用户名为elastic,密码为自己设置的密码
在这里插入图片描述
登录进去看到这样一个界面:
在这里插入图片描述

Apm安装

Net项目通过Serilog输出写入到ElasticSearch实现日志集中收集管理可视化例子

.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200"))
                {
                    AutoRegisterTemplate = true,
                    //设置用户名密码认证
                    ModifyConnectionSettings = connectionSettings => 
                    {
                        //证书验证
                        //connectionSettings.ServerCertificateValidationCallback((source, certificate, chain, sslPolicyErrors) => true);
                        connectionSettings.BasicAuthentication("elastic", "自己设置的elasticsearch的密码"); 
                        return connectionSettings; 
                    }
                })

Kibana可视化对数据集成查看

找到Management节点下面Stack Management点击它
在这里插入图片描述
在这里插入图片描述
点击Data下面的Index Management可以看到一些集成数据的节点
在这里插入图片描述
我们需要找到kibana并设置匹配模式,然后就可以在Discover中搜寻得到
在这里插入图片描述
这里的匹配模式可以看作是一级筛选
在这里插入图片描述

然后就是找到侧边的Discover,点击它
在这里插入图片描述
在这里插入图片描述
这里就可以看到刚才我们添加的模式,选择它就可以看到项目输出的记录的日志数据
在这里插入图片描述

通过Apm实现对Net项目的性能监控链路追踪

Apm-Server下载:Apm-Server
注意apm-server与elasticsearch版本保持完全一致
下载完成之后解压
可以看到有一个apm-server的程序使用cmd运行apm-server,同样关闭窗口服务停止,也需要使用nssm来安装为服务。
还有一个apm-server.yml是配置文件。
先修改配置文件,设置输出到Elastic的用户名密码,找到这样的节点
在这里插入图片描述
紧接着在hosts下面添加:

username: elastic
  password: 你自己设置的密码

默认安全级别也为本地,如果需要外部能够访问
在这里插入图片描述
需要把host修改为 “0.0.0.0:8200” 并且为了连接安全需要secret_token设置
“自己的SecretToken”

启动后通过localhost:8200访问,访问成功即表示启动完成,
也可以通过Kibana检查Apm的状态
在这里插入图片描述

项目中集成Apm监控

appsettings.json中添加如下代码段
{
"ElasticApm": {
"SecretToken": "",
"ServerUrls": "http://localhost:8200", //Set custom APM Server URL (default: http://localhost:8200)
"ServiceName": "MyApp", //allowed characters: a-z, A-Z, 0-9, -, _, and space. Default is the entry assembly of the application
"Environment": "production", // Set the service environment
}
}

安装Elastic.Apm.NetCoreAll Nuget
通过IApplicationBuilder调用UseAllElasticApm方法
public class Startup
{
  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  {
    app.UseAllElasticApm(Configuration);
    //…rest of the method
  }
  //…rest of the class
}

然后启动你的项目

在这里插入图片描述
看到这个画面你就基本成功了。然后请求一个接口看看
在这里插入图片描述
点击接口可以看到更详细的内容包括请求过程的执行的sql语句这些:
在这里插入图片描述
点击对应的sql还可以更加详细的信息
在这里插入图片描述
当然apm性能监控还有一些更强大和好玩的东西,这些还需要用到的时候自己去百度摸索,到此为止

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值