当前位置:首页 > ELK > 正文内容

ELK7.5.1实战-自建logstash同步数据到腾讯云ES集群

phpmianshi2年前 (2019-08-20)ELK58

背景

本来自建的单机ES提供搜索服务,随着数据的变多,性能已经成为严重的问题,现在准备迁移到腾讯云ES集群


实战示例

1. 购买腾讯云白金版ES集群7.5.1

集群自带 es+kibana 但是不带logstash,所以还要自己安装一个


2. 下载logstash7.5.1+JDK


wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz
wget https://mirrors.yangxingzhen.com/jdk/jdk-11.0.1_linux-x64_bin.tar.gz

3.配置JDK 设置环境变量

tar xvf jdk-11.0.1_linux-x64_bin.tar.gz
mv jdk-11.0.1 /usr/java
vim .bash_profile
export JAVA_HOME=/usr/java export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

source .bash_profile

4.验证jdk安装是否成功

java -version

5.安装logstash

tar -xvf logstash-7.5.1.tar.gz
mv logstash-7.5.1 /usr/local/logstash

6.配置mysql-connector-java

下载jar包,放入logstash安装目录的tools目录下

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.23/mysql-connector-java-8.0.23.jar

7.配置文件修改

input {
       jdbc {
               jdbc_connection_string => "jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"

               jdbc_user => "es_igper"
               jdbc_password => "123456"

               jdbc_driver_library => "/usr/local/logstash/tools/mysql-connector-java-8.0.23.jar"

               jdbc_driver_class => "com.mysql.jdbc.Driver"
               jdbc_paging_enabled => "true"
               jdbc_page_size => "50000"


               clean_run => false
               use_column_value => true
               tracking_column => id
               record_last_run => true
               last_run_metadata_path => "/usr/local/logstash/config/igp/run/live_v1_run"
               
               statement => "select * from live where live.id>(:sql_last_value-5000) limit 10000"

               schedule => "* * * * *"

               type => "live"
       }
}
filter {

}
output {
if [type]=="live" {
       elasticsearch {
               hosts => ["localhost:9200"]
               index => "live_v1"
               document_id => "%{id}"
               user => "elastic"
               password => "es1234"
       }
       stdout {
               codec => json_lines
       }
}
}

因为腾讯云的ES集群开始了认证模式,所以output要加入账号密码

user => "elastic"
password => "es1234"


8.启动测试

nohup ./bin/logstash &


版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

elasticsearch中基于slop参数实现近似匹配

slop的含义query string,搜索文本,中的几个term,要经过几次移动才能与一个document匹配,这个移动的次数,就是slop词条位置当一个字符串被分析时,分析器不仅只返回一个词条列表...

elasticsearch中搜索数量不能超过10000的解决方案

问题描述开发环境: JDK1.8、Elasticsearch7.5.1最近在操作ES进行分页查询(from+size)时,需要返回满足条件的数据总数。我发现满足条件的数据总数一旦超过10000条,返回...

logstash过滤器--mutate

概念filters/mutate 插件是 Logstash 另一个重要插件。它提供了丰富的基础类型数据处理能力。包括类型转换,字符串处理和字段处理等。Plugin version: v3.5.0执行顺...

elasticsearch中修改mapping实战

查询原有mapping登录kibana的Index Management 查看 Mapping{     "mapping": ...

elasticsearch中重新索引数据

概念虽然你可以给索引添加新的类型,或给类型添加新的字段,但是你不能添加新的分析器或修改已有字段。假如你这样做,已被索引的数据会变得不正确而你的搜索也不会正常工作。 修改在已存在的数据最简单的...

block b-tree.jpg

elasticsearch中字符串类型text vs keyword的选择

关于ES字符串类型的选择ElasticSearch 5.0以后,string类型有重大变更,移除了string类型,string字段被拆分成两种新的数据类型: text用于全文搜索的,而ke...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。