Logstash、Filebeat安装与数据同步(+ES安装讲解)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: Logstash、Filebeat安装与数据同步(+ES安装讲解)

一、安装Java

之前写的安装JDK的

Linux(centos 7.5)服务器安装JDK(1.8)

yum安装JDK

# 查看可安装java版本
yum list java*
# 安装JDK11
yum install java-11-openjdk-demo.x86_64

二、安装 Logstash

1、下载Logstash

官网地址:

https://www.elastic.co/cn/downloads/logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.3.3-linux-x86_64.tar.gz

2、安装Logstash

创建安装目录

mkdir /usr/local/logstash

解压缩安装文件

tar -zxvf logstash-8.3.3-linux-x86_64.tar.gz -C /usr/local/logstash

二、使用Logstash

1、安装结果测试

执行以下命令

cd logstash-8.3.3
bin/logstash -e 'input { stdin { } } output { stdout {} }'

如果你在你的 Terminal 中看到和我一样的输出,说明你的 Logstash 安装时成功的。

2、测试文件启动

我们也可以创建一个自己的 logstash.conf 文件,并存于你的文件系统的一个目录下。这个 logstash.conf 的文件内容如下:

input {
  heartbeat {
    interval => 10
    type => "heartbeat"
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

启动

bin/logstash -f heartbeat.conf

通过这样的 -f 选项,我们可以启动任何一个我们喜欢路径的 longstash 配置文件。

3、监控指定端口输入

创建一个自己的logstash.conf文件

input {
  tcp {
    port => 9900
  }
}
output {
  stdout { }
}

运行Logstash

bin/logstash -f weblog.conf

接下来,我们使用 nc 应用把数据发送到 TCP 端口号 9900,并查看 console 的输出。我们在另外一个 console 中打入如下的命令

echo 'hello logstash' | nc localhost 9900

4、从文件中推送到Logstash

新建一个含有日志文件:

14.49.42.25 - - [12/May/2019:01:24:44 +0000] “GET /articles/ppp-over-ssh/ HTTP/1.1” 200 18586 “-” “Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5”

执行以下命令推送大Logstash

head -n 1 weblog-sample.log | nc localhost 9900

5、设置输出到ES中

核心配置:

elasticsearch {
  hosts => ["http://172.28.70.231:9200"]
  index => "logstash"
  user => "elastic"
  password => "23hUMjScdjOkbKiqCYj9"
}

完整配置:

input {
  tcp {
    port => 9900
  }
}
filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  mutate {
    convert => {
      "bytes" => "integer"
    }
  }
  geoip {
    source => "clientip"
    target => "clientgeo"
  }
  useragent {
    source => "agent"
    target => "useragent"
  }
}
output {
  stdout { }
  elasticsearch {
    hosts => ["http://172.28.70.231:9200"]
    index => "logstash"
    user => "elastic"
    password => "23hUMjScdjOkbKiqCYj9"
  }
}

从日志文件weblog-sample.log中导入数据

head -n 1 weblog-sample.log | nc localhost 9900

五、使用File Beat导入数据

官网地址

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

1、下载安装Filebeat

下载地址

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.3.3-linux-x86_64.tar.gz

解压缩安装包

tar -zxvf filebeat-8.3.3-linux-x86_64.tar.gz

新建配置文件filebeat_apache.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /Users/liuxg/data/apache_logs/*
output.logstash:
  hosts: ["localhost:5044"]

运行Filebeat

$ ./filebeat -c filebeat_apache.yml

就会将日志同步到Logstash

2、核心点

日志所在的目录(正则表达式),可匹配目录以及文件。

/Users/liuxg/data/apache_logs/*

六、安装问题

1、 GeoIP Filter in ECS-Compatiblity mode

[2022-08-04T11:05:00,966][ERROR][logstash.javapipeline    ][main] Pipeline error {:pipeline_id=>"main", :exception=>#<LogStash::ConfigurationError: GeoIP Filter in ECS-Compatiblity mode requires a `target` when `source` is not an `ip` sub-field,。

修复内容

改为target去展示

2、配置到ES中未连接报错

需要配置上到达ESindex

elasticsearch {
  hosts => ["http://172.28.70.231:9200"]
  index => "logstash"
  user => "elastic"
  password => "23hUMjScdjOkbKiqCYj9"
}

3、权限问题error loading config file

权限问题:

如果没有赋予权限,下面启动会报错:

Exiting: error loading config file: open filebeat.yml: permission denied

如果赋予777权限,也会报错:

Exiting: error loading config file: config file (“filebeat.yml”) can only be writable by the owner but the permissions are “-rwxrwxrwx” (to fix the permissions use: ‘chmod go-w /usr/share/filebeat/filebeat.yml’)

解决:

chmod 755 /home/filebeat/filebeat.yml

七、参考文档

Logstash:把 Apache 日志导入到 Elasticsearch

Logstash:Logstash 入门教程 (二)

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
|
SQL 分布式计算 Oracle
数据同步工具DataX的安装
数据同步工具DataX的安装
2502 0
|
消息中间件 关系型数据库 MySQL
Maxwell 概述、安装、数据同步【一篇搞定】!
Maxwell 是一个由 Zendesk 开源的用于 MySQL 数据库实时数据捕获和同步的工具,支持多种数据库系统,以 JSON 格式输出变更数据。它实时监控数据库中的更新,将变化传递给其他系统,常用于实时数据管道、数据仓库和事件驱动架构。Maxwell 具有实时性、可配置性和高性能等特点。其工作流程包括 Binlog 解析、数据解析、重构、发布到消息队列(如 Kafka)以及事件处理。安装时需注意 JDK 版本,并配置 MySQL、Zookeeper 和 Kafka。此外,Maxwell 支持定向监听特定库表,并能进行历史和增量数据同步。
2314 1
|
canal 关系型数据库 MySQL
四种常用的 MySQL 数据同步 ES 的方法
【2月更文挑战第16天】
4445 2
四种常用的 MySQL 数据同步 ES 的方法
|
SQL JSON DataWorks
DataWorks产品使用合集之DataWorks 数据集成任务中,将数据同步到 Elasticsearch(ES)中,并指定 NESTED 字段中的 properties 类型如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
184 0
|
canal 监控 关系型数据库
【技术选型】Mysql和ES数据同步方案汇总
【技术选型】Mysql和ES数据同步方案汇总
695 0
【技术选型】Mysql和ES数据同步方案汇总
|
存储 关系型数据库 MySQL
百度搜索:蓝易云【MySQL数据同步到ES的4种解决方案】
以上这些解决方案都可以实现MySQL数据到ES的同步,您可以根据实际需求和技术栈选择合适的方案。请注意,每种方案都有其优缺点和适用场景,因此在选择之前需要对其进行评估和测试,以确保其满足您的需求。
200 0
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
214 0
|
12月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
317 1
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
1606 4
|
关系型数据库 MySQL 数据库
【MySQL】手把手教你MySQL数据同步
【MySQL】手把手教你MySQL数据同步

热门文章

最新文章