logstash使用教程
简介
logstash是一个实时流水式开源数据收集引擎。具有强大的plugin。可以根据自己的业务场景选择不同的input filter output。绝大多数情况下都是结合ElasticSearch Kibana一起使用的,俗称ELK。
模块介绍
Logstash使用管道方式进行日志的搜集处理和输出。有点类似*NIX系统的管道命令 xxx | ccc | ddd,xxx执行完了会执行ccc,然后执行ddd。
在logstash中,包括了三个阶段:
输入input –> 处理filter(不是必须的) –> 输出output
配置文件说明
前面介绍过logstash基本上由三部分组成,input、output以及用户需要才添加的filter,因此标准的配置文件格式如下:
1 | input { |
执行说明
1 | bin/logstash -f demo.conf |
使用Demo
Output plugins ElasticSearch
案例使用如下:
1 | output { |
Output plugins opentsdb
使用logstash收集数据,并发送到opentsdb中。分为三部分:Input,Filter,Output
输入数据时,输入一条数据,回车。以下为三条测试数据:
1 | threads.ThreadCount 1352279077 67 host=server1 port=1006 |
Input采用命令行输入数据
1
2
3
4input {
stdin{
}
}Filter过滤组织数据
采用的是grok插件,可以使用其他插件完成相同的目的
1 | filter { |
备忘:
- logstash输入数据自带host,@timestamp等自带,为了避免干扰存入opentsdb数据,此处特将隐含的host字段去掉。
- DATA/NUMBER等实为grok自带的正则规则。
- Output输出数据
此处输出数据到opentsdb中,官方文档有误,详见源码
1 | output { |
备忘:
opentsdb输入信息格式为:put metric timestamp value tagname=tagvalue tag2=value2,在logstash-output-opentsdb插件metrics配置中默认已经输入timestamp,因此metrics需要配置的第一个参数为metricName,第二个参数为 value 之后依次为tagname,tagValue。