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权威指南
时间: 2024-10-09 04:16:50