ELK<二>

介绍 Logstash 及其插件的配置安装方法,自定义配置语言的设计用途


什么是 Logstash?为什么要用 Logstash?怎么用 Logstash?

1. ELKstack 具有如下几个优点:

  • 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;

  • 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;

  • 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到百亿级数据查询的秒级响应;

  • 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;

  • 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。

2.安装 Logstash

1)安装redis

http://7826443.blog.51cto.com/7816443/1715818 

2)需要提前安装好 Java:

yum install java-1.8.0-openjdk

用 Elasticsearch 官方仓库来直接安装 Logstash;

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
cat > /etc/yum.repos.d/logstash.repo <<EOF
[logstash-1.5]
name=logstash repository for 1.5.x packages
baseurl=http://packages.elasticsearch.org/logstash/1.5/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
EOF
yum clean all
yum install logstash


启动 Logstash 进程:

在终端中,像下面这样运行命令来启动 Logstash 进程:

# bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

在这里我现在系统找到logstash文件,然后启动logstash进程。

# find / -type f -name "logstash"
/etc/logrotate.d/logstash
/etc/sysconfig/logstash
/etc/rc.d/init.d/logstash
/opt/logstash/bin/logstash
# /opt/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

然后你会发现终端在等待你的输入,没问题,敲入 Hello World,回车,看到如下内容:

hello world
{
       "message" => "hello world",
      "@version" => "1",
    "@timestamp" => "2015-11-25T15:24:26.943Z",
          "host" => "0.0.0.0"
}


备注:

Logstash 会给事件添加一些额外信息。最重要的就是 @timestamp,用来标记事件的发生时间。host 标记事件发生在哪里。


 2.1配置语法


Logstash 社区通常习惯用 shipperbroker 和 indexer 来描述数据流中不同进程各自的角色。如下图:

logstash arch

1)语法:

    Logstash 设计了自己的 DSL ―― 用 Ruby 语言写的―― 包括有区域,注释,数据类型(布尔值,字符串,数值,数组,哈希),条件判断,字段引用等。


2)区段(section)

    Logstash 用 {} 来定义区域。区域内可以包括插件区域定义,你可以在一个区域内定义多个插件。插件区域内则可以定义键值对设置。示例如下:

input {
    stdin {}
    syslog {}
}


3.安装plugin

通过 bin/plugin list 查看本机现在有多少插件可用

我的路径是

[root@ECS ~]# find / -type f -name plugin 
/opt/logstash/bin/plugin

我的服务器现在有105个插件可以用

[root@ECS ~]# /opt/logstash/bin/plugin list|wc -l
105

3.1 然后,假如你看到 https://github.com/logstash-plugins/ 下新发布了一个 logstash-output-webhdfs模块(当然目前还没有)。打算试试,就只需要运行:

bin/plugin install logstash-output-webhdfs

同样,假如是升级,只需要运行:

bin/plugin update logstash-input-tcp


你可能感兴趣的:(import,ELK,仓库)