(四) logstash 的安装和使用

前言

博主使用的elk 版本为7.8.1,后续安装和使用的也是logstash 7.8.1


一、下载上传

下载地址:
https://elasticsearch.cn/download/
博主上传在/export/soft
安装在 /export/install
程序目录 /export/servers

在这里插入图片描述

二、解压

#进入解压包目录
cd /export/soft
#解压到intall 目录 
tar -zxvf logstash-7.8.1.tar.gz -C ../install
#进入应用目录
cd /export/servers
#创建软链接
ln -s ../install/logstash-7.8.1 ./logstash

三、创建conf 脚本

#创建一个目录用来存放conf文件
mkdir shell
#创建配置文件test.conf
vim shell/test.conf
# 添加如下内容
input{
 stdin{}
}
output{
 stdout{codec=>"rubydebug"}
}

在这里插入图片描述

四、启动logstash

启动需要一定的时间

logstash/bin/logstash -f ./shell/test.conf

在这里插入图片描述
看到如上图所示,可以在里面输入一些内容然后回车,或者直接回车也行
然后可以看到此效果就说明启动成功了
在这里插入图片描述

五、logstsh 插件

1. input
  1. stdin : 可管道输入,也可从终端交互输入
  2. 通用配置:
    - codec
    - type
    - tags
    - add_field
# 测试作业
#创建一个新的conf文件
vim  shell/test02.conf
#添加如下内容:
input{
	stdin {
	codec => "plain"
	tags => ["test"]
	type => "std"
	add_field => {"key"=>"value"} 
	}
}
output{
	stdout{
		codec=>"rubydebug"
	}
}

在这里插入图片描述

#重新启动执行测试效果
echo "hello world" |  logstash/bin/logstash -f ./shell/test02.conf

在这里插入图片描述

2. File

从文件读取数据,如常见的日志文件
配置:
path: ["/var/log/**/.log",“var/log/message”] 文件位置
exclue => "
.gz" 不读取哪些文件
sincedb_path => “var/log/message” 记录sincedb文件路径
start_postion => “beginning” 或者 “end” 是否从头读取文件
stat_interval => 1000 单位秒,定时检查文件是否有更新,默认1 秒

#创建一个新的conf文件
vim shell/test03.conf
#添加如下内容:
input{
	file {
	path => ["/opt/elk/*.txt"]
	start_position => "beginning"
	type => "file" 
	}
}
output{
	stdout{
		codec=>"rubydebug"
	}
}
# 准备
mkdir -p  /opt/elk
# 生成文件
echo "hello world" >> /opt/elk/file.txt
# 重新启动执行测试效果
logstash/bin/logstash -f ./shell/test03.conf
#重新打开一个窗口,继续往文件中输入内容,读取文件成功
echo "hadoop" >> /opt/elk/file.txt
echo "mapreduce" >> /opt/elk/file.txt

在这里插入图片描述

3. 从ElasticSerach中读取数据
#创建一个新的conf文件
vim shell/test04.conf
#添加如下内容:
input{
	elasticsearch {
		hosts => "192.168.100.111"
		index => "movie_index"
		query => '{
		 "query":{
		 		"match_all":{} 
		 	}
		}'
	}
}
output{
	stdout{
		codec=>"rubydebug"
	}
}
# 重新启动执行测试效果
logstash/bin/logstash -f ./shell/test04.conf

es 中的数据如下

PUT /movie_index/movie/1
{ "id":1,
  "name":"operation red sea",
  "doubanScore":8.5,
  "actorList":[  
    {"id":1,"name":"zhang yi"},
    {"id":2,"name":"hai qing"},
    {"id":3,"name":"zhang han yu"}
  ]
}
PUT /movie_index/movie/2
{
  "id":2,
  "name":"operation meigong river",
  "doubanScore":8.0,
  "actorList":[  
    {"id":3,"name":"zhang han yu"}
  ]
}

PUT /movie_index/movie/3
{
  "id":3,
  "name":"incident red sea",
  "doubanScore":5.0,
  "actorList":[  
    {"id":4,"name":"zhang chen"}
  ]
}

效果如下:
在这里插入图片描述

4. Filter 过滤

date: 日期解析
grok: 正则解析
dissect: 分割字符串
mutate: 对字段作出来,比如重命名/删除/替换等
json: 安装json解析字段内容到指定字段中
geoip: 增加地理位置数据
ruby: 利用ruby代码来动态修改 logstash Event

#创建一个新的conf文件
vim shell/test05.conf
#添加如下内容:
input{
	stdin{codec=>"json"}
}
filter{
 date{
	match =>["logdate","MM dd yyyy HH:mm:ss"]
 }
}
output{
	stdout{
		codec=>"rubydebug"
	}
}
# 重新启动执行测试效果
logstash/bin/logstash -f ./shell/test05.conf
# 输入以下内容
 {"logdate":"Jan 01 2020 18:14:30"}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值