背景

  • 日志系统主要包括系统日志,应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器的软件,硬件信息,检查配置过程中的错误以及错误发生的原因。通常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

  • 难点一:通常日志被分散在不同设备上,如果你管理数十台上百台服务器,你开在使用一次登录每一台机器的传统方法查询日志,效率明显低下。我们应该使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

  • 难点二:集中化管理后,日志系统的统计检索又成为一件比较麻烦的事情,一般我们使用grep, awk, wc等linux命令能实现检索和统计,但是对于要求更高的查询,排序和统计等要求和庞大的机器数量依然使用这样的方法难免会有点力不从心。

  • 解决方法:开源实时的日志分析ELK平台能够王梅的解决我们上述的问题,ELK由ElasticSearch,Logstash和Kibana三个开源工具组成,官网:https://www.elastic.co/cn/products/

    • Elasticsearch是一个开源分布式搜索引擎,他的特点是:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格的接口,多数据源,自动搜索负载等。
    • Logstash是一个完全开源的工具,他可以对你的日志进行收集,过滤,并将其存储以后使用(比如,搜索)
    • Kibana也是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供日志分析友好的Web界面,可以帮助汇总,分析,和搜索重要数据日志。
  • 以下ELK工作原理图:

安装环境

  • Windows10
  • ElasticSearch:7.3.2
  • Logstash:7.3.2
  • Kibana:7.3.2
  • JDK:1.8
  • NSSM:2.24
安装配置Java环境
  • 在Oracle官网获取最新版本的JAVA版本,运行按提示下一步就可以完成,安装后配置环境变量如图:
  • CMD窗口下运行java -version命令,如果如下结果表示安装成功:
$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
安装ELK
  • 由于Logstash服务依赖ES服务,Kibana服务依赖LogStash和ES,所以ELK服务启动顺序为:ES—LogStash—Kibana,为了配合服务启动顺序,我们安装顺序也按启动顺序,首先准备所需要软件,如下地址:

    • elasticsearch国内镜像
    • kibana国内镜像
    • logstash国内镜像
    • NSSM下载地址
  • 三个软件尽量用同一个版本的,否则可能出现不兼容的情况
Elasticsearch安装
  • 下载解压,进入bin目录下,直接双击执行elasticsearch.bat,可以看到如下
  • 我们测试一下是否启动成功:
  • 安装ElasticSearch-head插件,此处直接在Chrom浏览器中搜索ElasticSearch-head插件安装即可。
  • 如下效果,输入localhost:9200,点击链接,就可以通过插件浏览es中现有的数据,并且支持查询操作:
  • 以上启动方式是直接通过bat脚本,我们现在利用nssm软件对ES进行管理,将ES添加到系统进程中进行启动更加方便,如下流程:
  • 下载nssm,加压缩得到如下:
  • 找到自己系统对应的win32,或者win64系统,将里面nssm.ext复制到ElasticSearch的bin目录中
  • CMD到es的bin目录下,执行nssm install elasticsearch,回车后会弹出一个安装设置界面:
  • 如上图所示,填好对应的目录地址,applicationPath:选es的bin目录下 elasticsearch.bat文件,startup directory会自动填充,点击install service提示安装成功
  • 在CMD中输入services.msc打开windows服务管理界面找到elasticsearch,右键启动,按上步骤测试即可。
Logstash安装
  • 先来一个常规非nssm方式的安装,下载解压,进入到logstash,将config目录下logstash-sample.conf 文件负责到bin目录,并且修改如下,重命名logstash.conf 首先来一个最简单配置:
input {stdin{ }
}
output {elasticsearch {hosts => ["http://localhost:9200"]}
}
  • 配置如上input指定日志来源是为空设置,表示日志来自控制台,output配置日志输出位置,指定位es地址,允许多个
  • CMD到logstash的bin目录下执行启动命令:logstash -f stdin.conf
  • 当看到如上日志,表示已经成功启动并且连接到es,我们在控制台上输入任意字符,多试几次,日志推送到es中有一定延迟,接着到es-head中查看
  • 在elasticsearch中会自动创建一个内容分配,用来存储logstash推送过来的信息,如下图所示:
  • 我们可以通过基本查询来查询到我们刚才在控制台输入的信息。
  • 接着我们来指定文件的形式来指定输入参数,毕竟我们实际运行的时候一定是读取日志文件中的内容,我们修改刚才复制到bin目录中的logstash.config文件如下:
input {file {path => ["E:/myCode/springcloud-learn/microservice-simple-provider-user-trace-elk/build/build/microservice-provider-user.json"]}
}
output {elasticsearch {hosts => ["http://localhost:9200"]}
}
  • 如上图所示,file指定了是文件输入类型,path指定文件地址,是数组类型可以指定多个,此处我们用一个springboot项目的json日志格式来进行测试。
  • 再次启动,并启动springboot项目,多次请求,再次查询ES。
logstash 常用命令:
-f:指定logstash的配置文件
-e:格式是后面跟字符串,这个字符串就被当做是logstash的配置;如果"",那么默认使用stdin作为输出,stdout作为输出;
-t:测试配置文件是否正确
logstash -f stdin.conf -t
  • 以上是通过bat脚本直接运行,接着我们还是用nssm的方式来进行配置,还是和刚才一样的流程
  • 将nssm.exe文件拷贝到logstash的bin目录下,在bin目录下创建run.bat并且编辑填入如下信息:
logstash.bat agent -f logstash.conf
  • cmd到bin目录下,执行 nssm install logstash,选择刚才创建的run.bat,点击install service,提示安装成功。
安装kibana服务
  • 下载解压,这次直接用nssm的方式
  • 还是将nssm目录下对应本系统的nssm.exe复制到kibana的bin目录下
  • cmd到kibana的bin目录下,执行nssm install kibana,选择bin目录下kibana.bat,点击install service 完成安装

启动项目

  • CMD找那个运行services.msc,打开windiws服务,依次启动如下服务:
  • Elasticsearch
  • Logstash
  • Kibana
  • 在浏览器中输入http://localhost:5601/,可以看到如下界面:
  • 上截图界面来配置一个对应es中分配的查询,点击左侧的index patterns,选择es中的分片,我们可以得到如下查询界面:
  • 如上图所示,我们将日志文件中的信息通过kibana来进行查询。
  • 至此,所有服务安装完成,平台搭建完成,本次只是一个单机,单节点的测试项目,后续的机去部署需要每个软件进行集群配置安装。

windows环境下ELK平台搭建相关推荐

  1. Windows环境下用Gitblit搭建git服务器

    Windows环境下用Gitblit搭建git服务器 一,下载Gitblit.下载地址:http://gitblit.com/ 现在版本是1.8.0. 二,下载后解压该文件,找到data/目录下的de ...

  2. windows环境下 ipfs的搭建与使用

    <h1><a name="t0"></a><a name="t0"></a><a id=&qu ...

  3. 【LittleVGL】Windows环境下利用CodeBlocks搭建LittleVGL的PC模拟器环境配置问题

    本章目的:   1.在学习使用LittleVGL构架搭建GUI图形界面时,使用CodeBlocks IDE集成开发环境来配置和测试GUI系统.   2.解决在搭建LittleVGL环境时遇到的问题   ...

  4. java 内存映射文件进程间通讯_[转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile...

    进程间的通信方式有很多种, 上次我们说了最傻瓜的"共享外存/文件"的方法. 那么, 在本文中, 我们即将学习"共享内存"的方式实现进程间的通信, 这是IPC最快 ...

  5. 在Windows环境下搭建Android开发环境

    标题:在Windows环境下搭建 Android 开发环境 作者:CrazyPebble 时间:2011年2月28日 声明:此文在参考其他网上资料以及笔者实践总结写下,一来自己可以做一些总结,二来给跟 ...

  6. Windows下Android平台搭建_1

    Windows下Android平台搭建_1 一.  Android平台综述 Windows下Android平台搭建需要的软件和工具 1.     JDK        JDK(Java Develop ...

  7. 第二课 如何在WINDOWS环境下搭建以太坊开发环境

    [本文目标] 根据本文指导,可以在WINDOUWS环境下完成以太坊智能合约部署前的比较环境准备. [技术收获] 如何在WINDOW(笔者以WINDOWS 10为例)环境搭建以太坊开发环境,按照以下安装 ...

  8. windows环境下搭建rabbitMQ开发环境

    2019独角兽企业重金招聘Python工程师标准>>> windows环境下搭建rabbitMQ开发环境 1.下载与安装 erlang rabbitmq 是使用erlang语言开发的 ...

  9. MemCache在Windows环境下的搭建及启动

    MemCache在Windows环境下的搭建及启动 一.memcache服务器端的安装 1.下载memcached的安装包,memcached_en32or64.zip,下载链接:http://pan ...

最新文章

  1. spring elasticsearch 按条件删除_Elasticsearch系列之Query DSL
  2. 计算机科学 生物技术,计算机科学(Computer Science)简介
  3. Solr 搭建搜索服务器
  4. SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
  5. 替换Jar包中的一个文件 Replace a file in a JAR
  6. linux shell编程if语句内判断参数详解【ZT】
  7. 电商平台需要怎样的推荐系统?
  8. 微软正式发布 Silverlight 5
  9. 操作系统原理学习总结
  10. 整人BAT\VBS代码 自创
  11. 获取 jquery 版本号
  12. 环洋市场调研-2021年全球Camlock联轴器行业调研及趋势分析报告
  13. 第21节 ACL——控制路由器上接口大门的进出规则
  14. wlop一张多少钱_为什么都说wlop的画很烂?
  15. AD21覆铜,包地,补泪滴,有图
  16. 儿童编程c语言_5种最适合儿童的编程语言
  17. K8s(Kubernetes), docker中的registry是什么意思?和windows中的注册表registry有什么区别?
  18. 求从1 开始第35个能被7和3整除的整数
  19. 共读《redis设计与实现》-单机(一)
  20. PTA 7-207 孔融分梨(函数实现)

热门文章

  1. ios之最简单的程序
  2. 你知道出现“乱码”的原因是什么吗?(4)
  3. 【必懂C++】C++可真是个“固执”的小可爱 02
  4. c语言在win8系统不兼容,Win8系统中存在不兼容软件如何解决?
  5. 电子商务应用课程知识整理 第五章-搜索引擎优化(SEO)
  6. crm开源系统 tp框架_八个开源的 Spring Boot 前后端分离项目,一定要收藏!
  7. 北大清华团队编写!200多个科学实验+视频,和爸爸一起在家做
  8. 从头到尾彻底理解傅里叶变换算法(上)
  9. 闲鱼有微信小程序吗_微信小程序商品展示页面(仿咸鱼)
  10. linux 编写脚本示范,Linux-scripts-简单脚本和脚本的执行