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还没有安装接下来我们下载并安装elasticsearchkibana
各自解压后进入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. 《精通c#(第6版)》【PDF】下载

    图灵程序设计丛书:精通C#(第6版)是C#领域久负盛名的经典著作,深入全面地讲解了C#编程语言和.NET平台的核心内容,并结合大量示例剖析相关概念.全书分为八部分:C#和.NET平台.C#核心编程结构 ...

  2. iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备

    安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...

  3. DotNetCore跨平台~Moq框架实现模拟测试

    回到目录 当我们进行软件开发时,一般会写单元测试,而对于业务情景来说,一般是测试它的业务逻辑准确性,对于你的测试数据是否来自数据库还是文件,是否为真实还是模拟,并不是很关心!我关心的就是我的业务逻辑是 ...

  4. 56、jsのBOM对象与DOM对象

    javascript的Bom和Dom对象使我们学习的重点,这篇随笔可以重点阅读 一.BOM对象 1.window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个windo ...

  5. 小白的Python之路 day2 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  6. 【java】对象克隆protected Object clone() throws CloneNotSupportedException

    package 对象克隆; class A implements Cloneable{//要具备clone()功能必须要实现Cloneable接口,此接口里无方法,只起标识作用. private St ...

  7. iOS 模拟器安装应用

    iOS模拟器是苹果Xcode IDE的一部分,主要用来为Mac,iPhone和iPad创建应用程序,为了给iOS模拟器打包应用程序,利用–package 在命令行上执行ADT并使用–target来指定 ...

  8. 个人的MySql配置总结

    lower_case_table_names参数是用来设置MySQL是否让Schema和数据表大小写敏感,我测试的是在查询界面和MySQL控制台界面无法改变它的值,要在配置文件中改变(先关闭服务),一 ...

  9. JavaWeb之原生数据库连接

    我们在开发JavaWeb项目时,常会需要连接数据库.我们以MySQL数据库为例,IDE工具为eclipse,讲述数据库连接与基本操作. 第一步,我们在Web项目的WebContent中建一个简单的前端 ...

  10. ArcGIS 网络分析[8.5] 资料5 网络分析拓展模块及各种接口说明

    说完了网络数据集如何用AO来创建,接下来就说说如何用另一个类库--NetworkAnalyst来做网络分析. 区别于NetworkAnalysis,这个是几何网络分析用的类库. 本篇先做类库和有关接口 ...