ELK指的是由Elastic公司提供的三个开源组件Elasticsearch、Logstash和Kibana。

  Logstash:开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)

  Elasticsearch:一个分布式的 RESTful 风格的搜索和数据分析引擎。

  Kibana:能够可视化 Elasticsearch 中的数据并操作 Elastic Stack(ELK Stack从5.x开始称作Elastic Stack)

本文介绍ELK在win10 64ibit系统下的安装和简单配置,更多信息见:

  Elastic官网

  官方文档

  elasticsearch中文文档

注:ELK6.x需要java 8,不支持java 9

Logstash安装:

  下载地址:https://www.elastic.co/cn/downloads/logstash

  下载zip文件并解压文件到你的磁盘中,接下来让我们来验证安装是否正确。通过cmd切换到安装目录下,运行一个最基础的logstash pipeline:

输入logstash -e "" 之后, 稍等片刻,logstash开始启动。在信息的末尾会出现如下提示:

我们输入“hello”后键入回车键,会发现控制台信息更新,内容如下。

看到这里,我们的安装就成功了。

logstash命令行支持两种方式加载配置项

logstash -e

  logstash -e "" 等同于 logstash -e "input {stdin {}} output {stdout { codec => rubydebug }}"

logstash -f 

  加载指定配置文件,启动logstash,如 H:\elk\logstash-6.1.1\bin>logstash -f ../logstash-test.conf

更多配置,使用logstash -f 或logstash -f或者logstash --help查看。

logstash pipeline有两个必备元素,input and output,还有一个可选元素filter.通过input插件载入数据,filter插件按照指定修改数据,最后使用output将数据输出在指定的位置。

下面是一个简单的logstash.conf示例,将指定目录下符合匹配规则的文件,转存储到elasticsearch :

input {
  file {
    path =>["D:/logs/**/*.log*","D:/logs/**/*.log"]#指定输入文件路径,支持数组
    #add_field => {"test"=>"test"} #添加自定义字段
    #tags => "tag1" #标签
    #exclude => "xxx.log" #排除文件
    start_position => "beginning" #监听文件的起始位置
    sincedb_path => "NUL" #logstash默认是增量读取的,此项配置表示文件读取进度的记录。在window下值为"NUL",linux下为"/dev/null"时,表示每次都从头开始读取文件,在正式环境中一定要关闭
    codec => multiline { 
      pattern => "^\[" #正则匹配条件,作为判断是否和前一行合并的依据
      negate => true #boolean类型,设置正向匹配还是反向匹配,默认是false,可选
      what => "previous" #设置未匹配的内容是向前合并还是向后合并,previous, next 两个值选择,必选
    }
  }
}
output {
  elasticsearch {
    hosts => "localhost:9200" #指定转存储目标,我们使用的是elasticsearch
  }
}
好吧,我们的elasticsearch还没有安装接下来我们下载并安装elasticsearch,kibana。
各自解压后进入elasticsearch的config目录,修改elasticsearch.yml,放开network.host的注释,指定一个ip以通知其他应用。我这里设置成0.0.0.0。
修改kibana下的kibana.yml,设置elasticsearch.url为"http://localhost:9200"。
依次启动elasticsearch,kibana,然后使用上面的配置文件启动logstash
访问http://localhost:5601
使用discover,可以看到message中可以看到包含多行日志的message。

使用elk转存储日志的更多相关文章

  1. ELK+kafka构建日志收集系统

    ELK+kafka构建日志收集系统   原文  http://lx.wxqrcode.com/index.php/post/101.html   背景: 最近线上上了ELK,但是只用了一台Redis在 ...

  2. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  3. ELK搭建实时日志分析平台之一ElasticSearch搭建

    文:铁乐与猫 系统:CentOS Linux release 7.3.1611 (Core) 注:我这里为测试和实验方便,ELK整套都装在同一台服务器环境中了,生产环境的话,可以分开搭建在不同的服务器 ...

  4. ELK之收集日志到mysql数据库

    写入数据库的目的是持久化保存重要数据,比如状态码.客户端浏览器版本等,用于后期按月做数据统计等. 环境准备 linux-elk1:10.0.0.22,Kibana ES Logstash Nginx ...

  5. ELK + kafka 分布式日志解决方案

    概述 本文介绍使用ELK(elasticsearch.logstash.kibana) + kafka来搭建一个日志系统.主要演示使用spring aop进行日志收集,然后通过kafka将日志发送给l ...

  6. ELK +Nlog 分布式日志系统的搭建 For Windows

    前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询  SELECT * FROM `LhzxUsers` WHERE UserN ...

  7. ELK对nginx日志进行流量监控

    ELK对nginx日志进行流量监控 一.前言 线上有一套ELK单机版,版本为5.2.1.现在想把nginx访问日志接入到elk里,进行各个域名使用流量带宽的统计分析.要把nginx日志传输到elk上, ...

  8. 基于Centos 7.4 搭建ELK整合SpringBoot日志收集

    基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集 注:Skywalking和logstash可共用一个 ...

  9. ELK Stack企业日志平台文档

                                          ELK Stack企业日志平台文档           实验环境 主机名 IP地址 配置 系统版本 用途 controlno ...

随机推荐

  1. dubbo,eclipse,服务报错

    运行e3-manager报错找不到类,更新了子模块,但e3-manager下没有更新:

  2. redis集群配置,spring整合jedis,缓存同步

    前台的商品数据(图片等加载缓慢)查询,先从redis缓存查询数据. redis是一个nosql数据库,内存版数据库,读取速度11w/s.本身具有内存淘汰机制,是单线程服务器(分时操作系统),线程安全. ...

  3. CentOS 7 学习(三)配置Tomcat集群

    所谓集群,就是把多台服务器集合起来,对外提供一个接口访问,对用户来说完全透明,常用的办法就是前端放一个服务器,将用户请求分发到不同的服务器,大致有以下几种方案 1)采取DNS轮询:将用户的连接解析到不 ...

  4. 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。

    子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...

  5. iOS NSString 文本不同的颜色 标题+文本字体大小 行间距/删除不需要的字符 /以及自适应高度

    #import <Foundation/Foundation.h> @interface TextsForRow : NSObject @property(nonatomic,copy)N ...

  6. Mac 终端——常用命令语

    mac系统如何显示和隐藏文件 苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令.显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写): 显 ...

  7. Winccflexable触摸屏的报警

    1.报警的分类 2.自定义报警分类 3.报警组成 4.Winccflexable中预定义的报警类别 5.报警的确认 6.WinccFlexable报警的显示 1)报警视图 2)报警窗口 3).报警指示 ...

  8. Foreign websites

    [社交] 1.Twitter. It's what's happening. 2.Telegram Messenger 3.Facebook - Log In or Sign Up 4.Instagr ...

  9. 关于html,css,js三者的加载顺序问题

    <head lang="en"> <meta charset="utf-8"> <title></title> ...

  10. 解决MAVEN项目因achetype加载太慢的问题

    解决方案: 加载太慢由于achetype-catalog.xml文件的访问问题,导致了整个构建过程的缓慢,所以是否能够将文件保存到本地,成为一种解决思路.翻阅Maven官方文档可以找到,确实是可以的. ...