(CentOS-7.8)Logstash安装

969 阅读2分钟

Logstash 介绍

Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。详细

必要条件

安装Logstash前,需确保已经安装Elasticsearch,并可正常运行。 Elasticsearch安装教程

下载Logstash

下载地址 下载版本需与Elasticsearch版本一致

image.png

image.png

下载Logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.1-linux-x86_64.tar.gz

解压Logstash

tar -zxvf logstash-7.12.1-linux-x86_64.tar.gz

下载 mysql-connector-java-8.0.27.jar

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.27.tar.gz

解压到指定目录

# 可以自定义创建目录,不存在可以先创建目录
tar -zxvf mysql-connector-java-8.0.27.tar.gz -C /softwares/logstash-7.12.1/config/mysql-connector-java

添加数据同步配置文件

在安装配置目录下,创建新的配置文件,命名为:mysqltoes.conf, 并在文件中加入以下内容:

input {
  stdin {
  }
  jdbc {
	  # mysql 数据库链接,test为数据库名
	  jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
	  
	  # 用户名和密码
	  jdbc_user => "test_user"
	  jdbc_password => "test_password"

	  # 驱动
	   jdbc_driver_library => "/softwares/logstash-7.12.1/config/mysql-connector-java/mysql-connector-java-8.0.27.jar"
	  jdbc_driver_class => "com.mysql.jdbc.Driver"
	  
	  # 是否分页
	  jdbc_paging_enabled => "true"
          //每页获取数量,可以根据性能按需修改
          jdbc_page_size => "20000"
	  
	  # 直接执行sql语句
	  statement => "select `id`,`title`,`content`,`author`,`description`,`keywords`,`update_date` from app_article where id > :sql_last_value"
	  
	  # 是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false);
	  lowercase_column_names => false
	  
	  # 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中
	  record_last_run => true
	  
	  # 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值
	  use_column_value => true
	  
	  # 查询结果某字段的数据类型,仅包括numeric和timestamp,默认为numeric
	  tracking_column => "id"
	  
	  # 记录上次执行结果数据的存放位置
	  last_run_metadata_path => "/softwares/logstash-7.12.1/logs/last_id.txt"
	  
	  # 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false
	  clean_run => false
	  
	  # 要执行的sql文件
	  # statement_filepath => "/softwares/logstash-7.12.1/config/export-data.sql"
	  
	  # 定时配置 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
	  schedule => "* * * * *"
  }
}
 
output {
  elasticsearch {

	  # es的ip和端口
	  hosts => ["127.0.0.1:9200"]
	  
	  # ES索引库名称
	  index => "test"
	  
	  # 文档类型
	  document_type => "_doc"
	  
	  # 设置数据的id为数据库中的字段
	  document_id => "%{id}"
  }
  stdout {
	 #日志输出
	 codec => json_lines
  }
}

启动数据同步脚本

cd /softwares/logstash-7.12.1
bin/logstash -f config/mysqltoes.conf

看到sql查询语句,说明操作成功 image.png

如果有安装Kibana,可以打开数据界面查看索引或查询

image.png

image.png