文档章节

CentOS下安装Logstash(附带示例)

王孟君
 王孟君
发布于 2017/03/17 18:50
字数 1372
阅读 1.4K
收藏 2

「深度学习福利」大神带你进阶工程师,立即查看>>>

本文记录一下在CentOS 6.7上,安装Logstash,版本为logstash-2.4.0.tar.gz

Logstash是一个开源的日志管理工具。

下载安装包

使用wget命令下载logstash安装包,如

[root@dev18 srv]# wget https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz
--2017-03-17 16:37:14--  https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz
Resolving download.elastic.co... 107.22.208.105, 54.243.211.74, 107.21.249.70, ...
Connecting to download.elastic.co|107.22.208.105|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 83882952 (80M) [application/x-gzip]
Saving to: “logstash-2.4.0.tar.gz”

100%[====================================================================================================================================================================================================================================>] 83,882,952  7.90M/s   in 1m 54s  

2017-03-17 16:39:10 (721 KB/s) - “logstash-2.4.0.tar.gz” saved [83882952/83882952]

[root@dev18 srv]# 

解压

使用tar -zvxf解压缩Logstash,如:

[root@dev18 srv]# tar -zvxf logstash-2.4.0

... ...

logstash-2.4.0/vendor/jruby/lib/ruby/shared/securerandom.rb
logstash-2.4.0/vendor/jruby/lib/ruby/shared/syslog.rb
logstash-2.4.0/vendor/jruby/lib/ruby/shared/tempfile.rb
logstash-2.4.0/vendor/jruby/lib/ruby/shared/tmpdir.rb
logstash-2.4.0/vendor/jruby/lib/ruby/shared/ubygems.rb
logstash-2.4.0/vendor/jruby/tool
logstash-2.4.0/vendor/jruby/tool/nailgun
logstash-2.4.0/vendor/jruby/tool/nailgun/Makefile.in
logstash-2.4.0/vendor/jruby/tool/nailgun/README.txt
logstash-2.4.0/vendor/jruby/tool/nailgun/configure
logstash-2.4.0/vendor/jruby/tool/nailgun/ng.exe
logstash-2.4.0/vendor/jruby/tool/nailgun/src
logstash-2.4.0/vendor/jruby/tool/nailgun/src/c
logstash-2.4.0/vendor/jruby/tool/nailgun/src/c/ng.c
logstash-2.4.0/vendor/bundle/jruby/1.9/gems/jrjackson-0.3.9-java/.mvn/extensions.xml
logstash-2.4.0/vendor/bundle/jruby/1.9/gems/ruby-maven-3.3.12/.mvn/extensions.xml
logstash-2.4.0/Gemfile
logstash-2.4.0/Gemfile.jruby-1.9.lock

将解压后的logstash-2.4.0目录名改成logstash

[root@dev18 srv]# mv logstash-2.4.0 logstash

进入logstash目录,查看logstash目录下有哪些目录和文件~

[root@dev18 srv]# cd logstash
[root@dev18 logstash]# ll
total 160
drwxr-xr-x 2 root root   4096 Mar 17 16:39 bin
-rw-rw-r-- 1 root root 102879 Aug 30  2016 CHANGELOG.md
-rw-rw-r-- 1 root root   2249 Aug 30  2016 CONTRIBUTORS
-rw-rw-r-- 1 root root   4976 Aug 30  2016 Gemfile
-rw-rw-r-- 1 root root  22850 Aug 30  2016 Gemfile.jruby-1.9.lock
drwxr-xr-x 4 root root   4096 Mar 17 16:39 lib
-rw-rw-r-- 1 root root    589 Aug 30  2016 LICENSE
-rw-rw-r-- 1 root root    149 Aug 30  2016 NOTICE.TXT
drwxr-xr-x 4 root root   4096 Mar 17 16:39 vendor
[root@dev18 logstash]# 

启动Logstash

进入<Logstash_HOME>/bin目录,

[root@dev18 logstash]# cd bin
[root@dev18 bin]# ll
total 44
-rwxrwxr-x 1 root root 1854 Aug 30  2016 logstash
-rw-rw-r-- 1 root root  689 Aug 30  2016 logstash.bat
-rwxrwxr-x 1 root root 5330 Aug 30  2016 logstash.lib.sh
-rwxrwxr-x 1 root root  439 Aug 30  2016 logstash-plugin
-rw-rw-r-- 1 root root  251 Aug 30  2016 logstash-plugin.bat
-rwxrwxr-x 1 root root  199 Aug 30  2016 plugin
-rw-rw-r-- 1 root root  203 Aug 30  2016 plugin.bat
-rwxrwxr-x 1 root root  322 Aug 30  2016 rspec
-rw-rw-r-- 1 root root  245 Aug 30  2016 rspec.bat
-rw-rw-r-- 1 root root 2947 Aug 30  2016 setup.bat

使用logstash工具即可启动Logstash~~如:

[root@dev18 bin]# ./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

示例

Logstash具有较为丰富的输入(input),过滤(filter)以及输出(output)插件

本文给出两个示例,分别为

  1. 标准输入输出
  2. 标准输入Redis输出

下面就逐个给出示例~ Here  we go~

标准输入输出

在这个示例中,使用最简单的控制台输入(stdin)和控制台输出(stdout),启动命令如下:

[root@dev18 bin]# ./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

查看logstash是否正常启动

[root@dev18 ~]# ps -ef|grep logstash
root      1352  1168 14 16:51 pts/0    00:00:39 /usr/java/jdk1.7.0_71/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Xmx1g -Xss2048k -Djffi.boot.library.path=/srv/logstash/vendor/jruby/lib/jni -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/srv/logstash/heapdump.hprof -Xbootclasspath/a:/srv/logstash/vendor/jruby/lib/jruby.jar -classpath :.:/usr/java/jdk1.7.0_71/jre/lib/rt.jar:/usr/java/jdk1.7.0_71/lib/dt.jar:/usr/java/jdk1.7.0_71/lib/tools.jar -Djruby.home=/srv/logstash/vendor/jruby -Djruby.lib=/srv/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main --1.9 /srv/logstash/lib/bootstrap/environment.rb logstash/runner.rb agent -e input{stdin{}}output{stdout{codec=>rubydebug}}
root      1448  1423  0 16:56 pts/2    00:00:00 grep logstash
[root@dev18 ~]# 

控制台输入hello logstash,然后看一下输出~~  :)

[root@dev18 bin]# ./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
hello logstash
{
       "message" => "hello logstash",
      "@version" => "1",
    "@timestamp" => "2017-03-17T08:53:11.975Z",
          "host" => "dev18.xxxx.xxxx"
}

标准输入Redis输出

在这个示例中,使用控制台输入(stdin),使用Redis订阅作为输出(stdout)~~

因为需要指定Redis的属性,内容较多,所以不像第一个示例那样使用./logstash -e 来启动,本示例采用指定配置文件的方式来启动~

首先,在Logstash安装目录下,创建myconf目录,该目录用于存放配置文件~如:

[root@dev18 logstash]# mkdir myconf
[root@dev18 logstash]# ll
total 164
drwxr-xr-x 2 root root   4096 Mar 17 16:39 bin
-rw-rw-r-- 1 root root 102879 Aug 30  2016 CHANGELOG.md
-rw-rw-r-- 1 root root   2249 Aug 30  2016 CONTRIBUTORS
-rw-rw-r-- 1 root root   4976 Aug 30  2016 Gemfile
-rw-rw-r-- 1 root root  22850 Aug 30  2016 Gemfile.jruby-1.9.lock
drwxr-xr-x 4 root root   4096 Mar 17 16:39 lib
-rw-rw-r-- 1 root root    589 Aug 30  2016 LICENSE
drwxr-xr-x 2 root root   4096 Mar 17 19:20 myconf
-rw-rw-r-- 1 root root    149 Aug 30  2016 NOTICE.TXT
drwxr-xr-x 4 root root   4096 Mar 17 16:39 vendor

然后,创建一个配置文件,名字为 stdin2redis.conf

[root@dev18 logstash]# cd myconf/
[root@dev18 myconf]# vim stdin2redis.conf

stdin2redis.conf文件内容如下:

input {
    stdin { }
}

output {
    # 输出到控制台
    # stdout { }

    # 输出到redis
    redis {
        host => "172.xx.xx.xxx"   # redis主机地址
        port => 6379              # redis端口号
        db => 0                   # redis数据库编号
        data_type => "channel"    # 使用发布/订阅模式
        key => "logstash_channel"  # 发布通道名称
    }
}

指定配置文件,启动Logstash

[root@dev18 bin]# ./logstash -f ../myconf/stdin2redis.conf 
Settings: Default pipeline workers: 2
Pipeline main started

打开Redis客户端,订阅logstash_channel

​
[root@dev18 src]# ./redis-cli 
127.0.0.1:6379> SUBSCRIBE logstash_channel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "logstash_channel"
3) (integer) 1

​

测试,在控制台分别输出三组字符串,分别为“hello logstash”, "hello java" 以及"hello china"

[root@dev18 bin]# ./logstash -f ../myconf/stdin2redis.conf 
Settings: Default pipeline workers: 2
Pipeline main started
hello logstash
hello java
hello china

我们可以看到,Redis客户端显示订阅的内容~ 

127.0.0.1:6379> SUBSCRIBE logstash_channel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "logstash_channel"
3) (integer) 1
1) "message"
2) "logstash_channel"
3) "{\"message\":\"hello logstash\",\"@version\":\"1\",\"@timestamp\":\"2017-03-17T11:39:28.884Z\",\"host\":\"dev18.gzhl.zhhl\"}"
1) "message"
2) "logstash_channel"
3) "{\"message\":\"hello java\",\"@version\":\"1\",\"@timestamp\":\"2017-03-17T11:39:49.131Z\",\"host\":\"dev18.gzhl.zhhl\"}"
1) "message"
2) "logstash_channel"
3) "{\"message\":\"hello china\",\"@version\":\"1\",\"@timestamp\":\"2017-03-17T11:39:53.042Z\",\"host\":\"dev18.gzhl.zhhl\"}"

本文就写到这边,鉴于Logstash具有丰富的输入和输出,后续慢慢玩~~

王孟君

王孟君

粉丝 233
博文 96
码字总数 223820
作品 0
杭州
高级程序员
私信 提问
加载中
请先登录后再评论。
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
7.7K
8
在多个浏览器上运行脚本--Queen

假设你想和朋友们玩这么个游戏:你写下某个数字,然后让朋友们猜你写的是什么数字。你的朋友们将不断的给你一些猜测的数字,直到猜中为止。 现在想象你的朋友都是使用的浏览器,这个游戏就相...

匿名
2013/01/24
4.7K
1
Javascript图元绘制库--ternlight

基于HTML CANVAS API的Javascript库,提供在HTML页面上绘制图元——如流程图的能力。 目前已支持简单的矩形图元和图元间的连线(直线、直角连线两种),拖拽图元等能力。 该javascript librar...

fancimage1
2013/02/07
6.3K
1
日志分析平台 - Kibana

Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。 环境要求: ruby >= 1.8.7 (probably?) bundler logstash...

匿名
2013/02/13
11.6W
1
tiny php template--TPT

关于TPT TPT是php实现的用于模板解析小工具,全部实现仅仅60行代码。 配置 DIRCOMPILED和DIRTEMPLATE,分别表示模版编译目录和模版文件目录: define('DIRCOMPILED','/compileddiy');define(......

红猪-侠
2013/03/03
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

Subversion存储库中“分支”,“标记”和“主干”的含义是什么?

问题: I've seen these words a lot around Subversion (and I guess general repository) discussions. 我已经在Subversion(我猜通用存储库)讨论中看到了很多这样的话。 I have been us......

富含淀粉
今天
5
0
《Java8实战》笔记(03):Lambda表达式

本文源码 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 Lambda表达...

巨輪
今天
7
0
从其他文件夹导入文件 - Importing files from different folder

问题: I have the following folder structure. 我有以下文件夹结构。 application/app/folder/file.py and I want to import some functions from file.py in another Python file which r......

javail
今天
22
0
大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
今天
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
今天
77
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部