面向微服务开发时会涉及到多系统的日志跟踪,一旦出现问题过滤起来系统间切换非常麻烦,所以需要采用特定工具将日志统一归类处理,方便查询排查错误,下面将介绍一种开源的工具ELK.

ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方下载地址:https://www.elastic.co/cn/downloads/

准备环境

客户机:win10

Java环境: jdk1.8(必须1.7以上版本!!!)

组件信息:

      logstash: 日志收集过滤工具, 下载 https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.zip

kibana: 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能,下载 https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-windows-x86_64.zip

elasticsearch: 开源分布式搜索引擎, 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-windows-x86_64.zip

    elasticsearch-head:es插件, 一个界面化的集群操作和管理工具, 下载https://github.com/mobz/elasticsearch-head/releases

第一步

下载组件并解压到本地磁盘(注意不要解压到带有空格的路径,否则后续的安装可能出错),如下图:

第二步

安装jdk1.8,并配置环境变量

第三步

安装logstash,在powershell中执行下面的命令:

logstash.conf: 在logstash文件夹的bin目录里新建logstash.conf配置文件

具体内容如下,

input {

file {

path => "D:/ELK/logs/*"                                                    ## 日志存放目录

start_position => "beginning"

codec => plain { charset => "GBK" }

}

}

filter {

mutate {

add_field => [ "[fields][path]", "%{[path]}"]

add_field => [ "message]", "%{[message]}"]

}

}

output {

elasticsearch {

hosts => ["http://127.0.0.1:9200"]

index => "logstash-%{type}-%{+YYYY.MM.dd}"

template_overwrite => true

}

}

* 可以将运行logstash的命令"logstash.bat -f logstash.conf"保存到run.bat文件,方便下次启动

第四步

安装elasticsearch,为简化操作可以将把elasticsearch-7.3.0/bin路径加入到环境变量,那样就可以在powershell中的任意位置直接输入elasticsearch命令,用默认配置启动(默认传输端口为9300,接受HTTP请求的端口为9200),然后使用浏览器打开http://localhost:9200/,看到下图表示启动安装成功

1. 启用elasticsearch外网访问,修改config/elasticsearch.yml文件内容:

network.host: 0.0.0.0 #不限IP,须避免公网使用

2. 禁用X-Pack机器学习功能,仅限Windows

xpack.ml.enabled: false

3. 注册elasticsearch为windows系统服务,进入bin目录执行如下命令:
elasticsearch-service.bat install

elasticsearch-service.bat 可执行参数 :
install: 安装Elasticsearch服务
remove: 删除已安装的Elasticsearch服务

start: 启动Elasticsearch服务

stop: 停止服务
manager:启动GUI来管理已安装的服务

4. 重启elasticsearch服务

第五步

安装elasticsearch-head,此处需要提前安装nodejs url: https://nodejs.org/en/download/,然后依次执行下面的命令:

npm install -g grunt-cli #编译源码

npm install #安装服务

grunt server #启动服务

第六步

安装Kibana,为简化操作可以将把ibana-7.3.0-windows-x86_64/bin路径加入到环境变量,那样就可以在powershell中的任意位置直接输入Kibana命令启动

注意:连接远程elasticsearch时,需修改文件/config/kibana.yml内容 elasticsearch.hosts

启动成功后,在浏览器中输入:http://localhost:5601/,出现下面的界面

然后我们回到前面第三步中logstash.conf文件中指定的日志目录,新建日志txt文件,文件内容如图:

日志文件保存之后,在浏览器访问Url:http://localhost:5601/app/kibana#/management/kibana/index_pattern,就可以看到可以新建日志索引了

索引创建完成后就可以在下面的链接看到日志数据了,http://localhost:5601/app/kibana#/discover

window10下搭建ELK环境的更多相关文章

  1. 使用Docker快速搭建ELK环境

    今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...

  2. Docker-compose搭建ELK环境并同步MS SQL Server数据

    前言 本文作为学习记录,供大家参考:一次使用阿里云(Aliyun)1核2G centos7.5 云主机搭建Docker下的ELK环境,并导入MS SQL Server的商品数据以供Kibana展示的配 ...

  3. Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1

    交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构的程序代码,在该环境下编译出嵌入式Linux系统所需要的操作系统.应用程序等,然后再上传到目标板上. 首 先要明确gcc 和arm-linux- ...

  4. Sublime Text 2下搭建Python环境常见错误

    Sublime Text 2下搭建Python环境时,最容易出的错误就是Python环境配置错误,导致build(Ctrl+B)后没有任何反应. 关于Python编程环境的配置,网上很容易搜索到.先默 ...

  5. Android学习——windows下搭建Cygwin环境

    在上一篇博文<Android学习——windows下搭建NDK_r9环境>中,我们详细的讲解了在windows下进行Android NDK开发环境的配置,我们也讲到了在NDk r7以后,我 ...

  6. Android学习——windows下搭建NDK_r9环境

    1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...

  7. CentOS下搭建LAMP环境详解

    前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...

  8. Linux下搭建PHP环境

    转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

  9. Java学习心得之 Linux下搭建Java环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...

随机推荐

  1. Python:日期表达的转换(day of year & year month day)

    我们常用的日期格式是“年月日”型的,即year-month-day,比如今天是2019年9月14日,2019-09-14. 然而,有些地方,比如遥感图像下载的命名里面,为了数据表示方便,常常是doy( ...

  2. 轻松学习JVM——垃圾回收器

    原文链接:https://www.cnblogs.com/leefreeman/p/7402695.html 上一篇我们介绍了常见的垃圾回收算法,不同的算法各有各的优缺点,在JVM中并不是单纯的使用某 ...

  3. c++常见函数记录

    1.bitsset 模板,可以操作二进制字符串,转化成数字等 2.swap()交换函数,将a,b的值交换 3.stringstream类用于字符串和其他类型的转换,操作方便 4.stx,tr1. 5. ...

  4. c++ copy和operator =

    目录(?)[+] 构造函数 拷贝构造函数 赋值函数   C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函 ...

  5. WIN 7 的vs2008 试用版评估期结束的解决方法

    1. 在VS2008安装目录下把Setup/setup.sdb文件中的 [Product Key] T2CRQGDKBVW7KJR8C6CKXMW3D 改成 [Product Key] PYHYPWX ...

  6. GO语言学习笔记5-defer的使用

    1. 什么是defer defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行. 2. defer的 ...

  7. python 使用嵌套函数报local variable xxx referenced before assignment或者 local variable XXX defined in enclosing scope

    情况一: a 直接引用外部的,正常运行 def toplevel(): a = 5 def nested(): print(a + 2) # theres no local variable a so ...

  8. 【python 应用之四】提升 Python 运行性能的 7 个习惯

    大家都知道艺赛旗的 RPA 依赖于 python 语言.因此我们可以掌握一些技巧,可尽量提高 Python 程序性能,也可以避免不必要的资源浪费.1.使用局部变量 尽量使用局部变量代替全局变量:便于维 ...

  9. (58)PHP开发

    LAMP 0.使用include和require命令来包含外部PHP文件. 使用include_once命令,但是include和include_once命令相比的不足就是这两个命令并不关心请求的文件 ...

  10. mssql的sql注入拿后台

    0x01判断数据 ①判断数据库类型 and exists (select * from sysobjects)--返回正常为mssql(也名sql server) and exists (select ...