logstash抓取日志到mysql_使用Logstash实时采集日志数据

本文介绍了如何利用Logstash的logstash-output-analyticdb插件,将日志数据实时、高效地导入到AnalyticDB for MySQL。相比logstash-output-jdbc,此插件在性能上有显著提升,且CPU消耗更低。详细步骤包括Logstash安装、插件安装、配置文件编写以及任务启动,最后提到了更新插件以获取最佳效果。
摘要由CSDN通过智能技术生成

Logstash是一个开源的服务器端数据处理管道,起初用于将日志类数据写入ES中。随着开源社区的不断发展,Logstash可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到您需要的“存储端”。

以日志数据为例,由于AnalyticDB for MySQL支持原生JDBC方式访问,您可以通过开源logstash output插件

通过logstash-output-analyticdb将数据写入AnalyticDB for MySQL时的性能,相较于logstash-output-jdbc有5倍提升,并且对CPU的消耗也明显降低。

安装

Logstash的安装流程请参见

进入logstash根目录:cd logstash。

安装logstash-output-analyticdb:bin/logstash-plugin install logstash-output-analyticdb。

在logstash目录下创建vendor/jar/jdbc目录:mkdir -p vendor/jar/jdbc。

将jdbc jar拷贝到vendor/jar/jdbc中:cd vendor/jar/jdbc; wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar。

至此,已成功安装logstash-output-analyticdb。

使用方式

在config目录下创建一个logstash-analyticdb.conf(名字可以自定义)配置文件,logstash-analyticdb.conf文件的内容如下所示。

input

{

stdin { }

}

output {

analyticdb {

driver_class => "com.mysql.jdbc.Driver"

connection_string => "jdbc:mysql://HOSTNAME:PORT/DATABASE?user=USER&password=PASSWORD"

statement => [ "INSERT INTO log (host, timestamp, message) VALUES(?, ?, ?)", "host", "@timestamp", "message" ]

commit_size => 4194304

}

}

connection_string:连接AnalyticDB for MySQL的JDBC URL。

statement:INSERT SQL的声明数组。

更多参数配置:

max_flush_exceptions:当写入数据出现异常时,设置最大重试次数,默认值100。

skip_exception:设置是否跳过异常,默认为FALSE,表示出现异常时将重试直到到达最大重试次数max_flush_exceptions,如果仍然失败,则同步程序抛异常终止。设置为TRUE时,如果达到重试次数后仍是失败,则跳过异常,将异常写入日志。

flush_size:一次最多攒批数量,和commit_size参数搭配使用。

commit_size:一次最多攒批数据量大小,和flush_size参数搭配使用,达到限定值即提交写入任务。

上述配置文件只是一个示例,您需要根据实际业务配置logstash-analyticdb.conf文件。与AnalyticDB for MySQL相关的其他配置请参见

至此,配置任务已全部完成,接下来将启动任务。

启动任务

在logstash的安装目录执行bin/logstash -f config/logstash-analyticdb.conf启动任务。

注意事项

建议您通过以下命令将logstash升级至最新版本后,再进行数据写入。

bin/logstash-plugin update logstash-output-analyticdb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值