使用elk转存储日志
ELK指的是由Elastic公司提供的三个开源组件Elasticsearch、Logstash和Kibana。
Logstash:开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)
Elasticsearch:一个分布式的 RESTful 风格的搜索和数据分析引擎。
Kibana:能够可视化 Elasticsearch 中的数据并操作 Elastic Stack(ELK Stack从5.x开始称作Elastic Stack)
本文介绍ELK在win10 64ibit系统下的安装和简单配置,更多信息见:
注: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转存储日志的更多相关文章
- ELK+kafka构建日志收集系统
ELK+kafka构建日志收集系统 原文 http://lx.wxqrcode.com/index.php/post/101.html 背景: 最近线上上了ELK,但是只用了一台Redis在 ...
- ELK+Kafka 企业日志收集平台(一)
背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...
- ELK搭建实时日志分析平台之一ElasticSearch搭建
文:铁乐与猫 系统:CentOS Linux release 7.3.1611 (Core) 注:我这里为测试和实验方便,ELK整套都装在同一台服务器环境中了,生产环境的话,可以分开搭建在不同的服务器 ...
- ELK之收集日志到mysql数据库
写入数据库的目的是持久化保存重要数据,比如状态码.客户端浏览器版本等,用于后期按月做数据统计等. 环境准备 linux-elk1:10.0.0.22,Kibana ES Logstash Nginx ...
- ELK + kafka 分布式日志解决方案
概述 本文介绍使用ELK(elasticsearch.logstash.kibana) + kafka来搭建一个日志系统.主要演示使用spring aop进行日志收集,然后通过kafka将日志发送给l ...
- ELK +Nlog 分布式日志系统的搭建 For Windows
前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询 SELECT * FROM `LhzxUsers` WHERE UserN ...
- ELK对nginx日志进行流量监控
ELK对nginx日志进行流量监控 一.前言 线上有一套ELK单机版,版本为5.2.1.现在想把nginx访问日志接入到elk里,进行各个域名使用流量带宽的统计分析.要把nginx日志传输到elk上, ...
- 基于Centos 7.4 搭建ELK整合SpringBoot日志收集
基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集 注:Skywalking和logstash可共用一个 ...
- ELK Stack企业日志平台文档
ELK Stack企业日志平台文档 实验环境 主机名 IP地址 配置 系统版本 用途 controlno ...
随机推荐
- angularf封装echarts
前言:angular中快速使用echarts 在html使用ehart很简单,你只需要引入文件和按照官方例子按照对应参数配置和数据填充就Ok了,那么在angular中怎么使用eharts(可以使用ec ...
- 配置Meld为git的默认比较工具
1. 安装 meld sudo apt-get install meld 2. 创建 git_meld.sh 脚本 cd /bin vim git-meld.sh #!/bin/sh meld $2 ...
- Python进阶之迭代器和生成器
可迭代对象 Python中任意的对象,只要它定义了可以返回一个迭代器的__iter__方法,或者定义了可以支持下标索引的__getitem__方法,那么它就是一个可迭代对象.简单来说,可迭代对象就是能 ...
- HTML基础教程-元素
HTML 元素 HTML 文档是由 HTML 元素定义的. HTML 元素 HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码. 注释:开始标签常被称为开放标签 ...
- 1_3 C语言解决求n!
求n!(n为键盘输入的任意整数值).要求分别用while语句和for语句实现 用while语句实现: #include <stdio.h> int main() { int n; scan ...
- 模板引擎(smarty)知识点总结五
---------重点知识:循环------------ /* smarty 循环之for循环 */ /* 基本的语法 {for $i=$start to $end step ...
- .net 委托的使用方法以及使用委托的好处
使用方法: //无返回值无参数委托的定义方法 public delegate void NoReturnPara(); 给委托赋值的几种方式 //实例化委托,并传入方法 NoReturbNoPara ...
- C语言--解引用
昨天,在<C和指针>上面看到"解引用"这个名词,就好奇的去查了查. (下面是一个大一渣渣的理解,请各位朋友海涵,如果有漏洞或者补充希望前辈不吝指正.) 例: #incl ...
- TCP协议(二)——TIME_WAIT状态
当TCP主动关闭套接字时,采用四步握手机制来彻底关闭连接.如图: 客户端主动关闭连接,发送FIN段到服务端.TCP状态由ESTABLISHED(连接状态)转为FIN_WAIT1(表示,发送的FIN需要 ...
- 关于 const 的一点小研究
在饱受 var 的折磨之后,ES6 终于推出了新的定义变量的方法:let 和 const 和 var 相比,let 和 const 有了自己的作用域,let 用于定义变量,而 const 用于定义常量 ...



