首先Logstash需要依赖JDK 1.7+版本,请确认服务器是否安装了正确的JDK并配置了ClassPath。
Logstash提供了一个启动脚本,通过该脚本启动服务。
可以在该文件中配置JAVA_OPTS和LS_JAVA_OPTS配置JVM,JMS(如果想通过JMS监控的话)相关的参数。
下载并启动服务
- curl -O https://download.elasticsearch.org/logstash/logstash/logstash-{logstash_version}.tar.gz
- tar -zxvf logstash-1.5.0.tar.gz
- cd logstash-{logstash_version}
- 启动服务,并启用控制台输入模式,输出方式为控制台
- bin/logstash -e 'input { stdin { } } output { stdout {} }'
在控制台看到的结果是:
- hello world
- 2015-05-28T01:22:14.405+0000 0.0.0.0 hello world
通过Ctrl+C退出程序
执行以下命令:
- 启动服务,并启用控制台输入,输出方式为RubyDebug。
- bin/logstash -e 'input { stdin { } } output {
- stdout { codec => rubydebug }
- }'
返回的结果是这样的
- 输入:goodnight moon
- 输出:{
- "message" => "goodnight moon",
- "@timestamp" => "2015-05-28T23:48:05.335Z",
- "@version" => "1",
- "host" => "my-laptop"
- }
当输出方式为RubyDebug情况下,Logstash会自动输出一个JSON格式的结果。并自动添加了当前的系统时间,版本号,及Host信息。
在大多数使用Logstash的场景下,都会选择使用ElasticSearch作为数据存储。
那么如何配置Logstash的数据输出的ElasticSearch中呢?非常的简单,
执行以下命令,并输入任何数据,就可以在ElasticSearch中查看数据了。
- bin/logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } }'
通过浏览器访问地址,查看数据。
- http://localhost:9200/_search?pretty
配置多种Logstash数据方式,如在控制台打印并输出到ElasticSearch中。
- bin/logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } stdout { } }'
- bin/logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } stdout { codec => rubydebug } }'