Logstash数据处理服务的核心概念以及简单使用
文章目录
1.Logstash服务核心概念
Logstash能够将采集的日志进行格式化、过滤,最后将数据推送到Elasticsearch存储中。
Logstash一共分为三方面的配置:
- Input:日志数据的来源,可以是stdin、file、tcp、redis、syslog、kafka等等。
- Filter:对日志数据进行过滤格式化,有较多丰富的过滤插件:Grok正则、Date时间处理、Json编码、Mutate数据修改。
- Output:将采集的日志输出到指定的存储中,可以是Stdout、File、TCP、Redis、ES等。
2.部署Logstash以及基本使用
2.1.部署Logstash
Logstash二进制包没有集成jdk,需要安装java1.8。
1.安装java环境
[root@elkstack-1 logstash]# yum -y install java-1.8.0-openjdk
2.部署logstash
[root@elkstack-1 tools]# tar xf logstash-7.9.3.tar.gz -C /data/elk
[root@elkstack-1 elk]# mv logstash-7.9.3/ logstash
3.配置logstash服务启动脚本
[root@elkstack-1 logstash]# vim /usr/lib/systemd/system/logstash.service
[Unit]
Description=logstash
[Service]
ExecStart=/data/elk/logstash/bin/logstash
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
4.启动logstash
[root@elkstack-1 logstash]# systemctl start logstash
2.2.Logstash基本使用
Logstash默认会给日志增加三个字段。
“@timestamp” 标记事件发生的时间点
“host” 标记事件发生的主机
“type” 标记事件的唯一类型
Logstash命令格式参数。
-e
:字符串形式的配置文件。
-f
:指定运行的配置文件。
-t
:检测配置文件的语法。
Logstash从标准输入中获取日志并打印到标准输出中
[root@elkstack-1 ~]# /data/elk/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
······
hello jiangxl #输入内容
{ #输出
"@timestamp" => 2021-12-08T08:27:54.311Z,
"message" => "hello jiangxl",
"@version" => "1",
"host" => "elkstack-1"
}
日志从标准输入中获取===>输出到标准输出
{
"@timestamp" => 2021-12-08T08:32:38.781Z,
"message" => "日志从标准输入\\xE9中获取存\\xE8===>输出到标准输出",
"@version" => "1",
"host" => "elkstack-1"
}
logstash -e命令后面指定的字符串其实就是一个配置文件格式,只不过将配置文件内容合成一行来执行,注意:logstash -e只能是在没有配置logstash配置文件目录的情况下才可以成功使用,否则使用该命令模拟数据输入输出会报错。
/data/elk/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
等同于下面的logstash配置文件内容格式
input{
stdin{
}
}
filter {
}
output{
stdout
{
codec=>rubydebug
}
}
2.3.配置logstash的配置文件路径
1.配置logstash
[root@elkstack-1 logstash]# vim config/logstash.ymlpipeline:#管道配置batch:size:125#管道批处理大小delay:5#管道批处理延迟pipeline.ordered: auto
#config.reload.automatic: false #是否启用#config.reload.interval: 3s#http.enabled: truepath.config: /data/elk/logstash/conf.d #配置文件路径http.host: 0.0.0.0 #监听地址http.port: 9600-9700#使用的端口号log.level: info #日志级别path.logs: /data/elk/logstash/logs #日志存储路径
2.创建配置文件目录
[root@elkstack-1 logstash]# mkdir /data/elk/logstash/conf.d
3.重启logstash
[root@elkstack-1 logstash]# systemctl restart logstash
版权归原作者 Jiangxl~ 所有, 如有侵权,请联系我们删除。