作者:Danbo 时间:2016-03-13

1.保存进Elasticsearch

Logstash可以试用不同的协议实现完成将数据写入Elasticsearch的工作,本节中介绍HTTP方式。

配置示例:

output {
elasticsearch {
hosts => ["192.168.0.2:9200"]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
workers =>
flush_size =>
idle_flush_time =>
template_overwrite => true
}
}

解释:

批量发送

flush_size 和 idle_flush_time 共同控制Logstash向 Elasticsearch发送批量数据的行为。上面的示例说明:Logstash会将数据攒到20k条数据然后一次性发送出去,并且设置最大老化时间为10s。

默认情况下:flush_size 是500条,idle_flush_time是1s,注意,这点也是很多人单改大flush_size 也没能提高ES性能的原因。

索引名

写入的ES索引的名称,这里可以使用变量。为了更贴合日志场景,Logstash 提供了%{+YYYY.MM.dd} 这种写法。在语法解析的时候,看到以+号开头的,就会自动认为后面是时间格式,尝试用时间格式来解析后续字符串。

索引名中不能有大写字母,否则ES在日志中会报错InvalidIndexNameException,但是Logstash不会报错。

模板

Elasticsearch支持给索引预定义设置和mapping。logstash自带有一个优化好的模板。内容如下:

其中的关键设置包括

template for index-pattern

只匹配logstash-* 的索引才会应用这个模板。有时候我们会变更Logstash的默认索引名称,记住也得通过PUT方式上传可以匹配你自定义索引名的模板。当然,更建议的做法是,把自定义的名称放在"logstash-"后面,变成index => "logstash-custom-%{+yyyy.MM.dd}"

refresh_interval for indexing 

Elasticsearch 是一个近实时搜索引擎。它实际上是每1s 刷新一次数据。对于日志分析应用我们用不着那么实时,所以logstash自带的模板修改成了5s,其实还可以继续提高这个刷新间隔以提高数写入性能。

multi-field with not_analyzed

Elasticsearch 会自动使用自己的默认分词器(空格,点,斜线等分隔)来分析字段。分词器对于搜索和评分是非常重要的,但是大大降低了索引写入和聚合请求的性能。所以logstash模板定义了一种叫“多字段”(multi-field)类型的字段,并给这个字段设置为不启用分词器。也就是当你想获取url字段的聚合结果的时候,不要直接用“url”,而是用“url.raw”作为字段名。

geo_point

Elasticsearch 支持geo_point 类型,geo distance 聚合等等,比如说,你可以请求某个geo_point 点方圆10km内的数据点的总数。

doc_values

doc_values 是Elasticsearch 1.0版本引入的新特性。启用该特性的字段,索引写入的时候回在磁盘上构建fielddata。doc_values 只能给不分词(对于字符串字段就是设置了 “index ”)

2.标准输入(Stdout)

output {
stdout {
codec => rubydebug
workers =>
}
}

输出插件同一具有一个参数是workers。logstash 为输出做了多线程的准备。

其次是codec 设置。P39。可能除了 codecs/multiline,其他codec 插件本身并没有太多的设置项。所以,上面的示例配置我们可以写成:

output {
stdout {
codec => rubydebug {
}
workers =>
}
}

单就 outputs/stdout 插件来说,其最重要和常见的用途就是调试。

3.发送网络数据(TCP)

配置示例如下:

output {
tcp {
host => "192.168.0.2"
port =>
codec => json_lines
}
}

在收集端采用TCP方式发送给远端的TCP端口。这里需要注意的是,默认的codec 选项是json。而远端的Logstash::Inputs::TCP 的默认codec 选项却是 line! 所以不指定各自的codec,对接肯定是失败的。

另外,由于IO BUFFER 的原因,即使是两端共同约定为json 依然无法正常运行,接收端会认为一行数据没有结束,一直等待直到自己OutOfMemory!

正确的做法是:发送端指定codec 为json_lines,这样每条数据后面会加上一个回车,接收端指定codec 为json_lines或者json 均可,这样才能正常处理。包括在收集端已经切割好的字段,也可以直接带入手机端使用了。

*******

elk示例-精简版2的更多相关文章

  1. elk示例-精简版

    作者:Danbo 2016-03-09 1.Grok正则捕获 input {stdin{}} filter { grok { match => { "message" =&g ...

  2. Linux上oracle精简版客户端快速部署

    RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能. 方案:用精简版实现客户端的快速部署 1.上传oracle精简版客户端到服务器/tmp目录 ...

  3. Vue精简版风格指南

    前面的话 Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,且代码间隔较大,不易查询.本文按照类型分类,并对部分示例或解释进行缩减,是Vue风格指南的精简版 组件名称 [组件 ...

  4. SXWIN7X64EN_20181104_NET_msu_LITE英文精简版

    SXWIN7X64EN_20181104_NET_msu_LITE英文精简版该版本为英文精简版!该版本为英文精简版!该版本为英文精简版!一.前言:关于极限精简版的说明 本系统为极限精简版,极限精简版系 ...

  5. SX_WIN10X64LTSB2016_EN_LITE英文精简版

    SX_WIN10X64LTSB2016_EN_LITE英文精简版该版本为英文版!该版本为英文版!该版本为英文版!因为论坛巴基斯坦的maanu兄弟PM我,所以抽空做了一个.介绍沿用原来的,中文用谷歌翻译 ...

  6. WIN10X64_LTSB2016极限精简版by双心

    WIN10X64LTSB2016极限精简版by双心http://www.cnblogs.com/liuzhaoyzz/p/9162113.html 一.前言:关于极限精简版的说明 本系统为极限精简版, ...

  7. WIN7X64SP1极限精简版by双心

     WIN7X64SP1极限精简版by双心 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=405044&page=1&ext ...

  8. Adobe Fireworks CS5 | Adobe Dreamweaver CS5 | Adobe Photoshop CS5 Extended 绿色精简版最新下载地址

    下载地址可能已经不能直接下载,可以用迅雷下载试试 Adobe Photoshop CS5 简体中文绿色版 下载地址:Adobe_Photoshop_CS5_Extended.7z 此绿色版特点:1. ...

  9. WIN10X64LTSC2019中度精简版by双心

    WIN10X64LTSC2019中度精简版by双心https://www.cnblogs.com/liuzhaoyzz/p/11295032.html 一.前言:关于LTSC中度精简版的说明 一个MM ...

随机推荐

  1. 【HTML5】交互元素menu&command元素

    1.交互元素<menu> 1.1源码 <!DOCTYPE html> <html> <head> <meta charset="utf- ...

  2. [1-6] 把时间当做朋友(李笑来)Chapter 6 【更多思考】 摘录

    记住,你不可能百分之百地有效率,至少不可能总是百分之百地有效率. 他们的效率很差.根源在于,他们其实只做简单的事情,而回避那些有难度的工作. 好像丢钱包的人都不是“故意”丢的一样,办事拖拉的人大多并非 ...

  3. 网页抓取工具Teleport Ultra简介及如何使用

    Teleport Ultra是一款专业的离线浏览器,能够快速.准确地从网络抓取数据并保存到本地,实现离线浏览的目的.它可以从Internet的任何地方抓回你想要的任何文件,它可以在你指定的时间自动登录 ...

  4. 转:HTTP ---HTTP头的编码问题(Content-Disposition)

    最近在做项目时遇到了一个 case :需要实现一个强制在浏览器中的下载功能(即强制让浏览器弹出下载对话框),并且文件名必须保持和用户之前上传时相同(可能包含非 ASCII 字符). 前一个需求很容易实 ...

  5. Android开发之httpclient文件上传实现

    文件上传可能是一个比較耗时的操作,假设为上传操作带上进度提示则能够更好的提高用户体验,最后效果例如以下图: 项目源代码:http://download.csdn.net/detail/shinay/4 ...

  6. 解决:cant&#39;t run &#39;/etc/init.d/rcS&#39;:No such file or directory

    Linux内核启动时提示这种错误:cant't run '/etc/init.d/rcS':No such file or directory 请用vim打开文件:/etc/init.d/rcS 观察 ...

  7. mac权限

    mac文件后面出现@权限 去除方法: xattr -c 文件名  目录也可以

  8. atitit.ntfs ext 文件系统新特性对比

    atitit.ntfs ext 文件系统新特性对比 1. 现代文件系统应该有的特性2 1.1. 恢复Log2 1.2. 压缩2 1.3. Meta ext2 1.4. Fulltextཟsearch  ...

  9. Mongodb搭建

    1.配置yum源,创建/etc/yum.repos.d/mongodb-org-3.2.repo文件,添加如下文件内容: [mongodb-org-3.2] name=MongoDB Reposito ...

  10. Harbor的搭建(vmware企业级docker镜像私服)

    1.下载harbor,地址https://github.com/vmware/harbor2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息      ...