logstash-1-安装配置

centos 7
logstash 5.2.0

logstash

logstash是什么呢, 他是一个数据管道, JRuby编写的运行在java虚拟机的具有收集, 分析和转发数据流功能的工具

特性: 

安装

1), wget下载

https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.tar.gz

2), 解压即安装

tar -zxvf /usr/work/logstash-5.2.1.tar.gz

3), 测试下: 

bin/logstash -e 'input { stdin {} } output { stdout {} }'

然后可以输入hello, 回车后给你返回

要等一会, 刚开始还以为没启动呢

 然后输入hello logstash, 就可看到输出结果了

运行参数: 

语法: 

1), 区块

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

input {
    stdin {}
    syslog {}
}

2) 数据类型

logstash支持少量的数据值类型: 

bool,    debug=>true

string,    host=>"hostname"

number,   port=>514

array,    match=>["datatime", "unix", "iso8601"]

hash(字典),   options=> { key1=>"values1", "key2"=>"values2"}

3), 字段引用, 使用[], 如果多层, 就每层的字段卸载[]

[geoip][location][0]

4), 条件判断:

  • ==(等于), !=(不等于), <(小于), >(大于), <=(小于等于), >=(大于等于)
  • =~(匹配正则), !~(不匹配正则)
  • in(包含), not in(不包含)
  • and(与), or(或), nand(非与), xor(非或)
  • ()(复合表达式), !()(对复合表达式结果取反)

5), 命令行参数: 

  -e: 执行

  -f 或 --config: , 配置固话在文件里面, 可以指定目录, 读取目录下所有配置

真实运用中是  ./logstash -f agent.conf

  -l 或 --log  

./logstash -l logs/logstash.log

设置文件: 

从  logstash 5.0 开始, 新增了  {LH}/config/logstash.yml可以将命令行参数通过yaml设置

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

其他设置还有: 

--pipeline-workers 或 -w
运行 filter 和 output 的 pipeline 线程数量。默认是 CPU 核数。
--pipeline-batch-size 或 -b
每个 Logstash pipeline 线程,在执行具体的 filter 和 output 函数之前,最多能累积的日志条数。默认是 125 条。越大性能越好,同样也会消耗越多的 JVM 内存。
--pipeline-batch-delay 或 -u
每个 Logstash pipeline 线程,在打包批量日志的时候,最多等待几毫秒。默认是 5 ms。
--pluginpath 或 -P
可以写自己的插件,然后用 bin/logstash --pluginpath /path/to/own/plugins 加载它们。
--verbose
输出一定的调试日志。
--debug
输出更多的调试日志。

后台运行: 

1, 如果使用的rmp包安装的, 可以使用service进行启动

  如果不是, 可以自己写脚本实现

2, 使用 nohup方式

 ./logstash &

3, 使用supervisord

首先安装

yum -y install supervisord --enablerepo=epel

在 /etc/supervisord.conf 中添加内容, 

[program:elkpro_1]
environment=LS_HEAP_SIZE=5000m
directory=/opt/soft/elk/logstash
command=/opt/soft/elk/logstash/bin/logstash -f /etc/logstash/pro1.conf -w 10 -l /var/log/logstash/pro1.log
[program:elkpro_2]
environment=LS_HEAP_SIZE=5000m
directory=/opt/logstash
command=/opt/logstash/bin/logstash -f /etc/logstash/pro2.conf -w 10 -l /var/log/logstash/pro2.log

然后使用  service supervisord start 启动就可以了

也可以使用supervisorctl命令单独控制一系列的logstash进程, stop elkpro_2

参考: elk权威指南 

原文地址:https://www.cnblogs.com/wenbronk/p/6901460.html