1、logstahs下载路径
Logstash 8.2.2 | Elastic
2、配置logstash 新版本不需要
新版本8.2.2 logstash自带logstash-integration-jdbc-5.2.5插件,不用执行以下命令
./logstash-plugin install logstash-input-jdbc
3、oracle驱动
logstash同步数据需要连接数据库,需要相关驱动。
将驱动ojdbc6.jar放到相关目录(可自定义l路径,后面配置需要该路径),该jar可从oracle安装目录的/home/ora/oracle/product/11.2.0/dbhome_1/jdbc/lib 下进行下载(实际路径可参照自己环境的安装路径)
4、logstash配置文件
可以从logstash安装目录下的conf 中找一个配置文件复制一下,以下是一个配置文件的例子
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
jdbc {
jdbc_driver_library => "/usr/local/logstash-8.2.2/lib/ojdbc6.jar"
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
jdbc_connection_string => "jdbc:oracle:thin:@2.2.2.2:1521/bpm"
jdbc_user => "username"
jdbc_password => "password"
schedule => "*/5 * * * *"
jdbc_default_timezone => "Asia/Shanghai"
statement => "select * from tablename where updatedate > :sql_last_value"
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
lowercase_column_names=> "true"
use_column_value => true
tracking_column => "updatedate"
tracking_column_type => "timestamp"
record_last_run => "true"
last_run_metadata_path => "/usr/local/logstash-8.2.2/config/lastRunDate/lastupdatetime.txt"
clean_run => "false"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => ["http://3.3.3.3:9200"]
index => "index_name"
document_id => "%{id}"
}
}
关键配置:
jdbc_driver_library:ojdbc6.jar包所在运行logstash程序服务器的路径
schedule :执行时间间隔
statement :增量执行的sql语句
jdbc_paging_enabled: 是否开启分页
jdbc_page_size:每页数据量
lowercase_column_names: 源表字段名导入ES后是否忽略大小写
use_column_value :是否使用字段值作为增量标识
tracking_column : 增量标识字段名
tracking_column_type:增量字段类型
record_last_run :上次数据存放位置
last_run_metadata_path:存储增量标识数据文件路径(上一次同步数据的最后一条记录时间)
clean_run:是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false
output :
document_id : 使用sql返回的哪个字段作为索引的id
5、用该配置文件进行启动
①控制台启动
以下命令执行路径:/usr/local/logsTash/logstash-8.2.2/bin
./logstash -f ./config/logstash_oracle.conf
②后台启动
### 后台启动不生成日志
./logstash -f ./config/logstash_oracle.conf >/dev/null 2>&1 &
6、多管道运行任务
1、如果需要同时同步多个表,可创建多个配置文件
编辑\logstash-8.2.2\config\pipelines.yml
- pipeline.id: oracle_136
queue.type: persisted
path.config: "/usr/local/logstash-8.2.2/config/logstash_oracle.conf"
2、 cmd启动。
以下命令执行路径:/usr/local/logsTash/logstash-8.2.2/bin
后台启动:
.\logstash &
注:在没有参数的情况下启动logstash时,它将读取pipelines.yml文件并实例化文件中指定的所有管道,当使用-e或-f时,Logstash会忽略pipelines.yml文件,并记录对此的警告。