1. Logstash 介绍
Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。官网地址:https://www.elastic.co/products/logstash
2. Logstash 流程
2.1 input
Input 作为数据输入端,可以接收来自任何地方的源数据。主要有以下四种类型:
- file:从文件中读取
- syslog:监听在514端口的系统日志信息,并解析成RFC3164格式。
- redis:从redis-server list 中获取
- beat:接收来自Filebeat的事件
- stdin: 标准输入,用于测试
2.2 filter
Filter 作为数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下:
- grok: 通过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,满足大部分需求。
- mutate: 在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。
- drop: 完全丢弃事件,如debug事件。
- clone: 复制事件,可能添加或者删除字段。
- geoip: 添加有关IP地址地理位置信息。
2.3 output
output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用,常用的有:
- elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。
- file: 将事件数据写入到磁盘文件上。
- mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。
- redis:将数据发送至redis-server,常用于中间层暂时缓存。
- graphite: 发送事件数据到graphite。http://graphite.wikidot.com/
- statsd: 发送事件数据到 statsd。
- stdout: 标准输出,用于测试
3. Logstash 安装
首先从官网 https://www.elastic.co/downloads 下载logstash 并解压
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.0.tar.gz
tar -zxvf logstash-5.6.0.tar.gz
这里我们配置一个test.conf 测试logstash:
# 在logstash解压目录下,新建test.conf
# vim test.conf
input {
stdin {}
}
output {
stdout{codec=>rubydebug}
}
4. logstash测试:
执行命令:
bin/logstash -f test.conf
logstash将会输出日志:
...
The stdin plugin is now waiting for input:
[2017-09-15T15:30:39,021][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
我们输入任意字符串,如test后,控制台将输出处理后的数据:
test
{
"@version" => "1",
"host" => "yangyue",
"@timestamp" => 2017-09-15T07:30:41.894Z,
"message" => "test"
}
至此,表示logstash已经安装成功了,那么logstash能发挥哪些更大的作用呢?我们后面再聊。