作者:冯江涛
Logstash 是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据。 如果你的数据需要 Beats 中没有的其他处理,则需要将 Logstash 添加到部署中。
Logstash 是 Elastic Stack 非常重要的一部分,但是它不仅仅为 Elasticsearch 所使用。它可以接受广泛的各种数据源。Logstash 可以帮利用它自己的 Filter 帮我们对数据进行解析,丰富,转换等。
最后,它可以把自己的数据输出到各种需要的数据储存地,这其中包括 Elasticsearch。
本章介绍 Logstash 的安装和部署,包括以下几个方面:
环境准备Logstash 的下载和安装启动 Logstash收集数据Docker 方式安装环境准备JVM 运行环境 Logstash 依赖 JVM 运行环境,本文以 Java 8 版本进行介绍,支持以下 JVM 版本:8、11、15。Logstash 的下载和安装Logstash 的安装版本需要和 Elasticsearch 的版本一致,或至少是大版本号码一致。在下面以 7.10 版本为例来进行安装。如果你需要安装其它版本的 Logstash,那么请在相应的命令行替换相应的版本号码。
Linux:curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0-linux-x86_64.tar.gz tar xzvf logstash-7.10.0-linux-x86_64.tar.gzAPT
# 下载安装公钥 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo apt-get install apt-transport-https # 保存仓库地址到本地 echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list # 安装Logstash sudo apt-get update sudo apt-get install logstashYUM
# 下载安装公钥 sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # 新建文件/etc/yum.repos.d/logstash.repo,并插入以下内容 [logstash-7.x] name=Elastic repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md # 安装logstash sudo yum install logstashMac and Homebrew
# 安装Elastic Homebrew仓库 brew tap elastic/tap # 安装Logstash brew install elastic/tap/logstash-full # 通过Homebrew设置开机启动logstash服务 brew services start elastic/tap/logstash-full # 重启主机后,启动Logstash logstash启动 Logstash
本文采用 tar 包安装方式进行阐述。
进入 Logstash 安装目录最简配置启动 Logstash# 通过控制台输入输出收集数据 bin/logstash -e 'input { stdin { } } output { stdout {} }' # 在控制台中输入 "Hello world!",然后会看到控制台输出"Hello world!" hello world 2013-11-21T01:22:14.405+0000 0.0.0.0 hello world收集数据
Logstash 包含3个主要部分:输入(inputs),过滤器(filters)和输出(outputs)。下面以采集 log4j 日志并输出到 Elasticsearch 为例进行阐述。
创建收集数据的配置文件 bin/log4j2es.conf,插入以下内容
input { file { # 要采集的log文件路径 path = "/data/logs/springboot.log" filter { output { stdout { codec = rubydebug elasticsearch { hosts = ["localhost:9200"] }
指定配置启动Logstash
bin/logstash -f bin/log4j2es.conf # 或者后台启动 nohup bin/logstash -f bin/log4j2es.conf /dev/null 2 1
查看收集到ElasticSearch索引的数据
curl http://localhost:9200/_cat/indices
默认 Logstash 生成以 Logstash 开头带有日期的索引
green open logstash-2021.04.09-000001 3UhrpKMlRRCsJ7e5BRzHpA 1 1 0 0 208b 208b
查看索引中的数据
curl -XPOST 'http://localhost:9200/logstash-2021.04.09-000001/_search' -H 'Content-Type: application/json' -d '{"query":{"match_all":{}}}'
返回如下结果;
{ "took": 1, "timed_out": false, "hits": { "hits": [ "_index": "logstash-2021.04.09-000001", "_type": "_doc", "_id": "aTL3UHkBSh9MyZ_E_yVB", "_score": 1.0, "_source": { "host": "elastichost", "path": "/data/logs/springboot.log", "message": "2021-04-09 17:58:47.172 INFO 23556 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed3.", "@version": "1", "tags": [ "_grokparsefailure" "@timestamp": "2021-04-09T11:51:40.390Z" }Docker方式安装拉取镜像
docker pull docker.elastic.co/logstash/logstash:7.10.0Docker 模式运行 Logstash,
# 1.参考tar包中logstah/config文件夹下所有配置拷贝一份放在宿主机 /usr/share/logstash/config/ # 2.修改pipeline.yml,增加以下配置 pipeline.id: main path.config: /usr/share/logstash/config/log4j2es.conf # -v挂载Logstash的配置/usr/share/logstash/config/到docker的路径~/settings/中 docker run --rm -it -v ~/settings/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:7.10.0
举办方式:线上直播 直播时间:2021年4月26日晚19:00--21:00 扫码入群,预约直播...
1. 接口描述 接口请求域名: cvm.tencentcloudapi.com 。 本接口(InquirePricePu...
通过 云服务器 或者外部镜像文件创建私有镜像时,需要对 云服务器 或镜像文件所...
发布会传送门 : https://yqh.aliyun.com/live/edgecloud_visual 作者:胡帆 数...
什么场景下需要复制镜像? 复制镜像包括区域内复制和跨区域复制,两者的使用场景...
场景介绍 通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转...
Dubbo提供了六大核心能力 面向接口代理的高性能 RPC 调用、智能容错和负载均衡、...
国庆黄金周在即,大数据杀熟的话题在社交媒体上再度引发热议。从网友评论中可以...
TOP云 (west.cn)5月8日消息,据国外知名 域名 投资人George Kirikos爆料称,其...
视频网站 虚拟主机 多大才行?这得具体看网站有多少视频内容了。虽然虚拟主机可...