面向微服务开发时会涉及到多系统的日志跟踪,一旦出现问题过滤起来系统间切换非常麻烦,所以需要采用特定工具将日志统一归类处理,方便查询排查错误,下面将介绍一种开源的工具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主流框架简介和Django框架的使用

    目录 一.手撸简易web框架 二.动静态网页 1. 静态网页 2. 动态网页 三.jinja2模板语法 1. jinja2的作用 四.python主流web框架 1. django 3. tornad ...

  2. 解决jmeter 请求参数中文乱码

    今天在用jmeter 写脚本时发现查看结果树request post请求中文参数值是乱码,故记录下解决过程. 解决过程如下: 1.修改本地配置文件 因为此处的数据,还没有发送出去,所以,肯定是这个变量 ...

  3. python接口自动化二(发送post请求)

    前言 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编 ...

  4. CF1257E/F

    E 给出三个序列共n个元素,每个元素值为1~n且不重 一次可以把一个元素换到另一个序列中,求最少操作次数使得三个序列(可为空)分别排序后并在一起为1~n顺序 题解 (伪)神仙题 随便dp,依次考虑每个 ...

  5. 微信公众号发送告警Python脚本

    调用该脚本,可以向微信公众号发生告警. #!/bin/env python #coding:utf-8 #Author: Hogan #Descript : 微信公众号发送告警脚本 import ur ...

  6. clojure的delay future promise

    <Clojure编程>第4章笔记. 总的感觉,Clojure毕竟是基于JVM的在人间的工程化语言.不是纯的无状态纯函数的在神间的lisp. 作为后端语言,不可避免要处理计算中和代码执行时序 ...

  7. python3学习笔记(三):注释和字符串

    一.注释 为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样. # 打印圆的周长: print(2* pi* r) 在python 中用井号(#)表示注释.井号(#) ...

  8. uiautomatorviewer报错 Error taking device screenshot: EOF

    报以下错误 估计是端口冲突 解决方法: 1. netstat -ano | findstr 5037  查看占用5037端口的进程 2. taskkill /pid 10508 /f  杀掉此进程 3 ...

  9. sqli-labs(11)

    基于登录点的注入(小编这里傻逼了 可以直接用group_concat函数绕过显示问题我还在用limit绕过) 0X01这里我们的参数就不是在get的方法里面提交的了  我们遇到了全新的问题 那么该怎么 ...

  10. wannafly 挑战赛9 B 数一数(kmp)

    链接:https://www.nowcoder.com/acm/contest/71/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64b ...