ubuntu下搭建logstash环境, 监听日志文件, 发送到java接口

最近遇到一个需求, 需要写一个java接口, 用来获取日志文件

java接口最简单的就是搭建一个springboot环境, 在ubuntu中搭建docker环境, 然后在里面运行tomcat, 具体操作流程参考上一篇文章 ubuntu下搭建docker 部署tomcat 发布springboot war包 实现过程及问题记录

这里介绍的是ubuntu下搭建logstash环境, 首先下载logstash安装包
下载地址 https://www.elastic.co/cn/downloads/logstash
这里可以选择下载最新版本, 也可以选择下载过去版本(点击past releases), 选择tar.gz格式的文件下载

在这里插入图片描述
下载以后将文件拷贝到服务器上, 执行解压命令

tar -zxvf logstash-7.7.0.tar.gz 

进入到解压后的文件夹

cd logstash-7.7.0

编辑config下的logstash-sample.conf文件

vi config/logstash-sample.conf

logstash-sample.conf文件内容如下

# Sample Logstash configuration for creating a simple
# Beats => Logstash => Elasticsearch pipeline.

input{
	# 读取文件类型, path为文件的路径, start_position为配置logstash开始读取的位置, beginning为从头开始读
	file{
		path => ["/usr/local/log/log.out"]
		start_position => "beginning"
	}
}

filter{
	mutate{
		# 删除消息中不需要的字段
		remove_field => ["host","path","@timestamp","@version","log","ecs","tags","agent","input"]
		# 字段重命名
		rename => {"message" => "logInfo"}
		# 去除回车
		gsub => ["logInfo","\r",""]
	}
}

output{
	http {
		http_method => "post"
		url => "http://192.168.1....:8080/logstash/saveLogInfo"
		# mapping中采用键值对形式传递参数, 且format必须设置为form, content-type不需要设置
		mapping => {
			"log_info" => "%{logInfo}"
		}
		format => "form"
	}
}

修改之后保存, 执行命令启动logstash

bin/logstash -f config/logstash-sample.conf

启动命令中的config/logstash-sample.conf是指定配置文件

启动之后, logstash会逐行的读取日志文件的数据, 并将一行数据作为参数传输到java接口中

如果启动报错

Logstash could not be started because there is already another instance using the configured
data directory. If you wish to run multiple instances, you must change the “path.data” setting.

这是因为有一个logstash实例正在运行中, 或者未正常关闭, 导致不能启动, 只需要将对应的记录文件删除即可
进入到logstash的根目录下的data中

cd /usr/local/logstash-7.7.0/data
ls -lah
rm -rf .lock

这里.lock是一个隐藏文件, 需要注意一下

logstash是一个实时监听日志的插件, 所以会有一个记录处理进度的文件, 用来记录logstash对当前文件读取的位置, 启动logstash时, 可以看到一个路径
在这里插入图片描述
这个路径下的文件就是在记录处理进度
删除掉这个文件即可

rm data/plugins/inputs/file/

如果不删除这个文件, 在测试的时候, 可能读取完成一个文件之后, 会出现重启logstash后不读取数据的情况 , 其实这就是这个进度文件在起作用, 虽然在logstash的启动文件中配置了读取的位置是beginning, 但是那只对未读取过的文件有效, 对于已经读取过的文件, 是没有作用的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值