logstash多个mysql的input导出到多个output

本文介绍了一种使用Logstash从MySQL数据库中提取数据并同步到Elasticsearch的方法。通过两个具体的例子展示了如何配置Logstash输入插件来实现增量数据抓取,并根据不同类型的数据设置不同的输出格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

input {
    jdbc {
      jdbc_driver_library => "mysql-connector-java-5.1.33-bin.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_user => "usr"
      jdbc_password=> "pwd"
      jdbc_connection_string => "jdbc:mysql://localhost:3306/db"
      jdbc_validate_connection => true
      schedule => "* * * * *"
      use_column_value => true
      tracking_column => "id"
      last_run_metadata_path => "/home/www/.logstash_headlines_last_run"
      statement => "SELECT * FROM tb WHERE id > :sql_last_value AND content <> '' ORDER BY id ASC"
      jdbc_paging_enabled => true
      jdbc_page_size => 10000
      type => "headlines"
    }

    jdbc {
      jdbc_driver_library => "mysql-connector-java-5.1.33-bin.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_user => "usr"
      jdbc_password=> "pwd"
      jdbc_connection_string => "jdbc:mysql://localhost:3306/db"
      jdbc_validate_connection => true
      schedule => "* * * * *"
      use_column_value => true
      tracking_column => "id"
      last_run_metadata_path => "/home/www/.logstash_vms_last_run"
      statement => "SELECT a.id, a.title, d.content FROM vms_article a JOIN vms_article_data d ON a.id=d.id WHERE a.id > :sql_last_value AND a.status=100 ORDER BY id ASC"
      jdbc_paging_enabled => true
      jdbc_page_size => 10000
      type => "article"
    }
}
output {
    if [type] == "headlines" {
        elasticsearch {
          hosts => "localhost"
          index => "collection"
          document_id => "%{id}"
        }   
        stdout {
            codec => line {
                    format => "Crawl: %{id} %{title}"
            }   
        }
    } else {
        elasticsearch {
          hosts => "localhost"
          index => "vms"
          document_id => "%{id}"
        }    
        stdout {
            codec => line {
                format => "VMS: %{id} %{title}"
            }   
        }
    }
}
ELK是指Elasticsearch、Logstash和Kibana三个开源软件的组合,可以用来处理和可视化大规模数据。在ELK中,Logstash用于数据收集、处理和转换,Elasticsearch用于数据存储和检索,Kibana用于数据可视化。 以下是将MySQL数据导出到Elasticsearch的大致步骤: 1. 安装Elasticsearch、Logstash和Kibana。 2. 创建一个Logstash配置文件,指定MySQL作为数据源,并将数据导入到Elasticsearch中。例如,以下是一个简单的Logstash配置文件示例: ``` input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/mydatabase" jdbc_user => "myuser" jdbc_password => "mypassword" jdbc_driver_library => "/path/to/mysql-connector-java.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" statement => "SELECT * from mytable" } } output { elasticsearch { hosts => ["localhost:9200"] index => "myindex" document_type => "_doc" } } ``` 在这个配置文件中,我们使用jdbc插件来读取MySQL中的数据,然后使用elasticsearch插件将数据写入到Elasticsearch中。 3. 运行Logstash,让它开始读取MySQL中的数据并将数据导入到Elasticsearch中。你可以通过以下命令来启动Logstash: ``` bin/logstash -f /path/to/config/file.conf ``` 这里的`/path/to/config/file.conf`是你的Logstash配置文件的路径。 4. 检查Elasticsearch中是否已经成功导入了MySQL中的数据。你可以使用Kibana等工具来浏览和查询Elasticsearch中的数据。 需要注意的是,这只是一个简单的示例,你需要根据自己的具体情况来设置Logstash的配置文件。同时,也需要确保MySQL和Elasticsearch都已经正确地安装和配置好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小龙在山东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值