.net core使用 ELK
一 Linux 下安装部署
第一种方法:docker-compose 安装方式
1.1 创建 docker-compose.yml 文件
version: '3.1' services: elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
ports:
- 9200:9200
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
environment:
- xpack.monitoring.enabled=true
- xpack.watcher.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
networks:
- elastic kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.9.2
ports:
- 5601:5601
depends_on:
- elasticsearch
environment:
- ELASTICSEARCH_URL=http://localhost:9200
networks:
- elastic networks:
elastic:
driver: bridge volumes:
elasticsearch-data:
1.2 在放有docker-compose.yml的目录下运行命令以启动容器。
docker-compose up -d
1.3 安装成功后打开 http://localhost:9200 表示已经安装成功
第二种方法:下载安装包安装 并且开启登录验证功能
Note:这边下载的是版本7.10,elk比较吃性能。我这边服务器是一核2G 也撑不起,加了一些虚拟内存才解决问题
我把下载的安装包放在我的OSS空间里面,访问比较快。
2.1下载地址:这边下载的是
elasticsearch 下载地址: https://www.elastic.co/cn/downloads/elasticsearch
kibana下载地址: https://www.elastic.co/cn/downloads/kibana
2.2 elasticsearch安装
下载解压安装包
wget https://xuquan.oss-cn-shenzhen.aliyuncs.com/Software/elasticsearch-7.10.0-linux-x86_64.tar.gz tar -zxvf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/
不能使用root 启用应用,需要创建一个新用户elk,把elasticsearch-7.10.0文件夹的拥有者改为elk
1 adduser elk
2
3 passwd elk 然后 输入密码
4
5 chown -R elk /usr/local/elasticsearch-7.10.0/
6
7 cd /usr/local/elasticsearch-7.10.0/
8
9 su elk
更改配置文件,开启密码密码登录验证
1
2 vim /usr/local/elasticsearch-7.10.0/config/elasticsearch.yml
3
4 http.cors.enabled: true
5 http.cors.allow-origin: "*"
6 http.cors.allow-headers: Authorization
7 xpack.security.enabled: true
8 xpack.license.self_generated.type: basic
9 xpack.security.transport.ssl.enabled: true
启动应用(后台运行需要加-d)
./bin/elasticsearch -d
因为设置密码需要应用启动才能所以密码的设置初始化要放在启动后面。切换回root账号做密码设置。
1 su root
2
3 /usr/local/elasticsearch-7.10.0/bin/elasticsearch-setup-passwords interactive
出现下面界面就开始做密码设置,设置完切换回elk 重启 elasticsearch即可。
打开网址后出现输入密码的弹窗,这样就完成elasticsearch的安装
2.3 kibana安装
下载解压安装包
wget https://xuquan.oss-cn-shenzhen.aliyuncs.com/Software/kibana-7.10.0-linux-x86_64.tar.gz tar -zxvf kibana-7.10.0-linux-x86_64.tar.gz -C /usr/local/
修改配置文件
1 vim /usr/local/kibana-7.10.0-linux-x86_64/config/kibana.yml
2
3 # Kibana的端口号
4 server.port: 9201
5
6 # Kibana绑定的主机地址:
7 elasticsearch.hosts: "0.0.0.0"
8
9 # Kibana所连接的ES:
10 elasticsearch.hosts: "http://127.0.0.1:9200"
11
12 # 配置pid文件存储运行Kibana时的进程号,便于用kill -9 `cat /var/run/kibana.pid`来杀进程。
13 pid_file: /var/run/kibana.pid
设置密码: 把usernane设置为 kibans 密码设置为自己的密码,这边的账号就可以在 kibana, elasticsearch,和net core 使用了
cd 到kibana安装目录下的bin文件夹 运行命令启动
1 cd /usr/local/kibana-7.10.0-linux-x86_64/bin
2
3 ./kibana
输入的账号密码登录即可进入后台
备注: 如需更改密码 可执行
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'
二 在.net core3.1 中使用Serilog 集成ELK ,这边就直接贴代码了
安装的包为:
1 //< PackageReference Include = "Serilog.AspNetCore" Version = "3.4.0" />
2 //< PackageReference Include = "Serilog.Enrichers.Environment" Version = "2.1.3" />
3 //< PackageReference Include = "Serilog.Exceptions" Version = "5.6.0" />
4 //< PackageReference Include = "Serilog.Sinks.Debug" Version = "1.0.1" />
5 //< PackageReference Include = "Serilog.Sinks.Elasticsearch" Version = "8.4.1" />
Program.cs
1 public static IHostBuilder CreateHostBuilder(string[] args, string urls) =>
2 Host.CreateDefaultBuilder(args)
3 .ConfigureWebHostDefaults(webBuilder =>
4 {
5 webBuilder
6 .UseStartup<Startup>()
7 .UseUrls(urls);
8 }).ConfigureLogging((context, logging) =>
9 {
10
15 logging.AddSerilog(new LoggerConfiguration()
16 .Enrich.FromLogContext()
17 .Enrich.WithExceptionDetails()
18 .Enrich.WithMachineName()
19 .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(context.Configuration["ElasticConfiguration:Uri"]))
20 {
21 AutoRegisterTemplate = true,
22 IndexFormat = $"{Assembly.GetExecutingAssembly().GetName().Name.ToLower().Replace(".", "-")}-{context.HostingEnvironment.EnvironmentName?.ToLower().Replace(".", "-")}-{DateTime.UtcNow:yyyy-MM}",
23 ModifyConnectionSettings = setting => setting.BasicAuthentication(context.Configuration["ElasticConfiguration:UserName"], context.Configuration["ElasticConfiguration:PassWord"])
24 })
25 .Enrich.WithProperty("Environment", context.HostingEnvironment.EnvironmentName)
26 .ReadFrom.Configuration(context.Configuration)
27 .CreateLogger());
28
29 });
appsettings.json
1 "Serilog": {
2 "MinimumLevel": {
3 "Default": "Warning",
4 "Override": {
5 "Microsoft": "Error",
6 "System": "Warning"
7 }
8 }
9 }
这样就完成了,只需要在kibana创建索引查看了
.net core使用 ELK的更多相关文章
- Asp.net Core + Log4net + ELK 搭建日志中心
原文:Asp.net Core + Log4net + ELK 搭建日志中心 Docker中一键安装ELK 对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasti ...
- .net core 与ELK(5)安装logstash
1.下载https://www.elastic.co/downloads/logstash到/usr/local/src wget https://download.elastic.co/logsta ...
- .net core 与ELK(3)安装Kibana
1.去产品官网下载https://www.elastic.co/downloads/kibana 对应的tar.gz的压缩包,放到/usr/local/src目录 2.解压 -linux-x86_64 ...
- .net core 与ELK(2)安装Elasticsearch可视化工具
elasticsearch-head是els的界面插件,地址https://github.com/mobz/elasticsearch-head 1.进入github并下载 wget https:// ...
- .net core 与ELK(1)安装Elasticsearch
1.安装java jdk [elsearch@localhost bin]$ java -version openjdk version "1.8.0_181" OpenJDK R ...
- .net core 与ELK(4)后台运行els可视化工具和Kibana
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./ ...
- Asp-Net-Core-搭建ELK日志平台-Docker-Compose版本
title: Asp.Net Core 搭建ELK日志平台(Docker-Compose版本) date: 2022-09-27 15:16:59 tags: - .NET 由于暂时用不上Logsta ...
- asp.net core结合NLog搭建ELK实时日志分析平台
0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.介绍ELK 1.说明(此篇ELK采用rpm的方式安装在服务器上)-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp ...
- .Net Core 商城微服务项目系列(十三):搭建Log4net+ELK+Kafka日志框架
之前是使用NLog直接将日志发送到了ELK,本篇将会使用Docker搭建ELK和kafka,同时替换NLog为Log4net. 一.搭建kafka 1.拉取镜像 //下载zookeeper docke ...
- ELK系列(二):.net core中使用ELK
ELK安装好后,我们现在.net Core中使用一下,大体思路就是结合NLog日志组件将数据写入ELK中,其它语言同理. ELK的安装还是有些复杂的,我们也可以在Docker中安装ELK:docker ...
随机推荐
- python的grpc环境安装
环境 ubuntu:bionic的docker image docker run -it ubuntu:bionic python的grpc环境安装 参考grpc官网:https://grpc.io/ ...
- 自研ORM框架实现工作单元模式
平时我们使用事务,需要显示的Try Catch 并且开启事务 提交事务 异常回滚事务 三步骤,使用工作单元后则只需要Commit. 1.接口定义 1 /// <summary> 2 /// ...
- 【转载】【Word】项目编号应用样式后出现黑框的解决方案
本文中的宏代码来自: https://www.zhihu.com/question/38985919 Word使用项目编号后,出现黑框,如下图所示: 网上大多数解决方案在重新打开文档后,依然还是有黑框 ...
- 一次SQL调优 聊一聊 SQLSERVER 数据页
一:背景 1.讲故事 最近给一位朋友做 SQL 慢语句 优化,花了些时间调优,遗憾的是 SQLSERVER 非源码公开,玩起来不是那么顺利,不过从这次经历中我觉得明年的一个重大任务就是好好研究一下它, ...
- Flutter异常监控 - 壹 | 从Zone说起
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情 如果你正需要处理Flutter异常捕获,那么恭喜你,找对地了,这里从根源上给你准备了Flutter异常捕获 ...
- (9)go-micro微服务Redis配置
目录 一 go-redis介绍 二 go-redis安装 三 redis初始化连接 四 存储mail邮件 五 存储token 六 最后 一 go-redis介绍 Redis(Remote Dictio ...
- Windows喝水记录工具v2.0
Windows喝水记录工具v2.0 作者以前基本不喝水,后面体检出来身体出现了一些问题(肾结晶什么的),多喝水可以减轻甚至痊愈,由于没有喝水的习惯怕喝多或者喝少,所以做了这个桌面小工具,喝一杯记录一下 ...
- Add All&shuffle-sort(List)
Add All&shuffle Collections常用功能 java.utils.collections是集合工具类,用来对集合进行操作.部分方法如下︰ public static < ...
- 移动 WEB 开发布局方式 ---- flex 布局
一.flex布局体验 1.1 传统布局 flex 布局 1. 2 初体验 1. 搭建 HTML 结构 <div> <span>1</span> <span&g ...
- 经典this指向问题
代码如下 function f1() { this.p = function(){ // 这里 this 跟的是p这个func,谁调用p,就跟谁 console.log(this); } return ...