Logstash 安装与部署(无坑版)

下载

版本对照关系:ElasticSearch 7.9.2 和 Logstash 7.9.2 ;

官方下载地址

选择ElasticSearch版本一致的Logstash版本

https://www.elastic.co/cn/downloads/logstash

下载链接:https://artifacts.elastic.co/downloads/logstash/logstash-7.9.2-linux-x86_64.tar.gz

解压文件

下载完成后,将文件拷贝到自己喜欢的目录!!!

javascript 复制代码
tar -zxvf logstash-7.9.2-linux-x86_64.tar.gz
javascript 复制代码
cd /usr/local/app/logstash-7.9.2

或者

javascript 复制代码
cd /你自己的安装目录/logstash-7.9.2

新建配置文件

切换到config目录,可以按照logstash-sample.conf示例文件,添加连接的配置文件;

  • logstash-sample.conf示例
  • 解释

配置示例是一个 Logstash 配置文件,用于从 Beats 输入数据并将其发送到 Elasticsearch。

这个配置文件包含两部分:

  1. Input 部分:该部分定义了输入插件,指定 Logstash 应该从哪个来源接收数据。在这里,使用的是 Beats 输入插件,它监听端口 5044,以接收从 Beats 发送的数据。Beats 是一组轻量级数据采集器,通常用于收集服务器日志和监控数据。
  2. Output 部分:该部分定义了输出插件,指定 Logstash 应该将接收到的数据发送到哪个目标。在这里,使用的是 Elasticsearch 输出插件,它将数据发送到 Elasticsearch 集群。你可以看到以下配置选项:

hosts:指定了 Elasticsearch 集群的主机地址和端口。在这里,数据将被发送到本地主机的 Elasticsearch 服务,端口为 9200。
index:定义了数据在 Elasticsearch 中的索引名称。这里使用了 Logstash 的动态索引命名,基于数据的 metadata 信息和日期来生成索引名称。
userpassword:这两行是被注释掉的,通常用于指定连接 Elasticsearch 集群所需的用户名和密码。如果 Elasticsearch 集群需要身份验证,你可以取消注释并提供正确的用户名和密码。

这个配置文件的作用是接收来自 Beats 的日志数据,并将其索引到 Elasticsearch 中,以便进行检索和分析。确保 Logstash 和 Elasticsearch 服务正在运行,并监听相应的端口(例如,5044 和 9200),以使这个配置文件正常工作。


以上只是示例,下面我们新建logstash-springboot.conf文件,这种类型的文件可以有多个。

  • 新建配置logstash-springboot.conf
javascript 复制代码
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 5670
    codec => json_lines
  }
}
filter {

}
output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    index => "log-goboy-dev-%{+yyyy.MM.dd}" 
  }
}
  • 解释

这是 Logstash 配置文件,用于接收来自 TCP 输入的 JSON 格式日志数据,并将其发送到 Elasticsearch 中。

让我解释每个部分的配置:

Input 部分
tcp 插件被用作输入插件,它监听端口 5670并接受传入的 TCP 连接。
mode => "server" 表示 Logstash 将以服务器模式运行,等待来自客户端的连接。
host => "0.0.0.0" 指定 Logstash 应该接受所有网络接口上的连接,因此可以从任何 IP 地址连接到 Logstash。
port => 5670 指定监听的端口号为 5670。
codec => json_lines 表示接收到的数据将被解析为 JSON 格式的行。
Filter 部分 :在你的配置中,过滤器部分是空的。这意味着 Logstash 不会对接收的数据进行进一步的处理或筛选。你可以在这部分添加过滤器插件,以根据需要对数据进行处理、转换或过滤。
Output 部分
elasticsearch 输出插件用于将数据发送到 Elasticsearch。
hosts => ["http://127.0.0.1:9200"] 指定了 Elasticsearch 集群的主机地址和端口。
index => "log-goboy-dev-%{+yyyy.MM.dd}" 定义了数据在 Elasticsearch 中的索引名称。这里使用 Logstash 的动态索引命名,基于日期来生成索引名称。

这个配置文件的作用是将通过 TCP 连接接收到的 JSON 格式的日志数据发送到 Elasticsearch 中,每天都会创建一个新的索引以便于日志的时间分割。确保 Logstash 和 Elasticsearch 服务正在运行,并监听相应的端口(例如,5044 和 9200),以使这个配置文件正常工作。如果需要对数据进行更多的处理,可以在过滤器部分添加适当的过滤器插件。


指定配置

编辑config/pipelines.yml文件

  • pipeline.id指定该管道id
  • path.config指定ES和logstash连接的配置文件,就是上一步新建的conf文件的绝对路径
javascript 复制代码
- pipeline.id: log_dev
  path.config: "/usr/local/app/logstash-7.9.2/config/logstash-springboot.conf"
  • 切换到bin目录,执行
javascript 复制代码
./logstash

完成

打印如下内容,则代表启动成功

注意

在安装和部署的过程中,注意版本之间的差异化。特别要主要安全组端口的开发情况!!!

相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务