Logstach入门

一、下载安装

下载地址:https://www.elastic.co/cn/downloads/past-releases#logstash。下载完成后直接解压即可。

二、Hello World

1、创建配置文件 logstash.conf:

input { stdin { } }
output {
  elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}

2、执行如下命令:

bin/logstash -f logstash.conf

如果看到  Successfully started Logstash API endpoint {:port=>9600} ,则说明启动成功。

3、启动成功后,终端会等待用户的输入,输入Hello World,回车,结果如下:

{
    "@timestamp" => 2019-06-20T13:44:36.510Z,
      "@version" => "1",
          "host" => "ubuntu",
       "message" => "Hello World"
}

4、重新打开一个终端,执行:

curl 127.0.0.1:9200/_search?q=hello

可以看到如下的输出:

{"took":57,"timed_out":false,"_shards":{"total":37,"successful":37,"failed":0},"hits":{"total":2,"max_score":1.2039728,"hits":[{"_index":"logstash-2019.06.20","_type":"logs","_id":"AWt1Ifw0TS7QeaapgTXy","_score":1.2039728,"_source":{"@timestamp":"2019-06-20T13:44:49.952Z","@version":"1","host":"ubuntu","message":"       \"message\" => \"Hello World\""}},{"_index":"logstash-2019.06.20","_type":"logs","_id":"AWt1IcfgTS7QeaapgTXt","_score":0.6931472,"_source":{"@timestamp":"2019-06-20T13:44:36.510Z","@version":"1","host":"ubuntu","message":"Hello World"}}]}}

5、在浏览器中访问 http://192.168.124.102:5601,点击Discover页面可以看到下面的界面,在终端输入的数据,可以从这个页面任意搜索了:

三、配置语法

3.1 语法

3.1.1 区段(section)

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

input { 
    stdin { } 
    syslog { }
}

3.2.2 数据类型

1、布尔(bool)

debug=>true

2、字符串(string)

host=>“hostname”

3、数值(number)

port=>5600

4、数组(array)

match=>["datetime", "UNIX", "ISO8859-1"]

5、哈希(hash)

options=>{key1="value1", key2="value2"}

3.3.3 字段引用(field reference)

字段是Logstash::Event对象的属性,事件就像哈希,所以可以把字段想象成键值对。

如果在Logstash配置中使用字段的值,只需把字段的名字写在中括号[]中就可以了,这就叫字段引用。

3.2 命令行参数

Logstash提供了一个shell脚本让Logstash快速方便的运行。下面是它支持的参数:

1、-e

意即执行。这个参数的默认值如下:

input { 
    stdin { } 
}
output {
    stdout{ }
}

2、--config或-f

意即文件。用于指定配置文件,比如bin/logstash -f logstash.conf。此外,还可以使用bin/logstash -f /etc/logstash.d/来运行,Logstash会自动读取/etc/logstash.d/目录下所有的文本文件,然后在内存中拼接成一个完整的大配置文件,再去执行。

3、--configtest或-t

意即测试。用来测试Logstash读取到的配置文件语法是否能被正常解析。

4、--log或-l

意即日志。Logstash默认输出日志到标准错误,可以通过此参数改变日志存储路径。

5、--pipleline-workers或-w

运行filter和output的pipline线程数量,默认是CPU核心数。

6、--pipleline-batch-size或-b

每个Logstash pipline线程,在执行具体的filter或output函数前,最多能累计的日志条数,默认是125条,越大性能越好,同样会消耗最多的JVM内存。

7、--pipline-batch-delay或-u

每个Logstash pipline线程,在打包批量日志的时候,最多等待几毫秒,最多是5毫秒。

8、--pluginpath或-P

用于加载自己写的插件。

9、--verbose

输出一定的调试日志。

10、--debug

输出更多的调试日志。

3.3 设置文件示例

Logstash 5.0新增了$HOME/config/logstash.yml文件,可以将所有的命令行参数通过YAML文件方式设置,同时为了反应命令行配置参数的层级关系,参数都改成.而不用-了。

前面的pipline相关命令行参数,改用YAML文件的写法如下:

pipline:
  workers: 24
  batch:
    size: 125
    delay: 5

四、插件安装

从Logstash 5.0开始,Logstash将每个插件都独立拆分成gem包,这样,每个插件都可以独立更新,不必等待Logstash自身做整体更新。Logstash配置了专门的插件管理命令,语法如下:

bin/logstash-plugin [OPTION] SUBCOMMAND [ARG] ...

其中,SUBCOMMAND可以是install、ubinstall、update和list。

可以通过如下命令查看本机现在有多少插件可用:

bin/logstash-plugin list

如果想安装某个插件,则使用如下命令:

bin/logstash-plugin install plugin-name

如果是升级插件,则执行:

bin/logstash-plugin update plugin-name

bin/logstash-plugin不但可以通过rubygems平台安装插件,还可以读取本地路径的gem文件,这对自定义插件和无外网的情况下非常有用:

bin/logstash-plugin install /path/to/sush-plugin.gem

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值