ElasticSearch业务Lucene介绍与入门使用 - 高压锅里的小白 - 博客园 (cnblogs.com)
ElasticSearch 和 Logstash
Elasticsearch和Logstash是两个开源项目,可以通过Logstash将数据和日志数据发送到Elasticsearch进行集中式管理、分析和监控。以下是通过整合Logstash和Elasticsearch进行数据抓取和日志统计的示例:
配置Logstash
安装Logstash,并在logstash.conf中添加以下配置内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/test" jdbc_user => "user" jdbc_password => "password" jdbc_driver_library => "/path/to/mysql-connector-java-8.0.21.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" statement => "SELECT * FROM test_table" schedule => "*/5 * * * *" } } output { elasticsearch { hosts => [ "localhost:9200" ] index => "test" } stdout { codec => rubydebug } }
JSON
这里的配置是从MySQL数据库中抓取test表的数据,并将数据发送到Elasticsearch中。
启动Logstash服务
使用以下命令启动Logstash服务:
1 bin/logstash -f logstash.conf
BASH
在Elasticsearch中查看数据
通过Kibana工具或Elasticsearch的API可以查询到获取到的数据。例如在Kibana中,打开Discover页面并进行查询,就可以查看到刚刚获取到的数据。
配置Logstash获取日志数据
日志数据可以通过filebeat、Logback等工具采集,并通过Logstash进行处理和发送到Elasticsearch。以下是一个示例配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 input { beats { port => 5044 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { hosts => [ "localhost:9200" ] index => "weblogs" } }
JSON
在这个配置中,Logstash通过beats插件来接收日志数据,然后使用grok插件提取日志数据并使用date插件进行时间解析,最后将数据发送给Elasticsearch。
通过以上步骤可以将日志数据发送到Elasticsearch,并通过Kibana等工具进行查询和可视化。
Beats 和 CanelBeats是一种轻量级的数据收集器,而Canel是一个开源的数据库复制监控器。通过将这两个工具进行整合,可以实现数据同步更新。
以下是具体的实现步骤:
安装Beats
首先需要安装Beats,以Filebeat为例,在Linux系统下可以使用以下命令进行安装:
1 2 3 curl -L -O https:// artifacts.elastic.co/downloads/ beats/filebeat/ filebeat-x.y.z-linux-x86_64.tar.gz tar xzvf filebeat-x.y.z-linux-x86_64.tar.gz cd filebeat-x.y.z-linux-x86_64/
AWK
配置Filebeat
接下来需要配置Filebeat将日志数据发送到Logstash中,以实现数据同步更新。在Filebeat的配置文件(filebeat.yml)中添加以下配置:
1 2 3 4 5 6 7 filebeat.inputs: - type : log paths: - /var /log /app .log # 要同步更新的日志数据 output.logstash: hosts: ["localhost:5044" ] # Logstash的地址和端口
STATA
安装Canel
在Linux系统下,可以使用以下命令安装Canel:
1 2 wget https://dl.bintray.com/konstantin-izmailov/generic/canal-server-1.1.5.tar.gz tar -zxf canal-server-1.1.5.tar.gz
BASH
配置Canel
Canel的配置文件中需要指定需要同步的数据库和表的信息,以及将数据发送到哪个目标。在Canel的配置文件(instance.properties)中添加以下配置:
1 2 3 4 5 6 7 8 9 10 11 12 canal.instance.master.address =canal.instance.dbUsername =al.instance.dbPassword =canal.instance.filter.regex =canal.instance.filter.black.regex =canal.mq.topic =canal.mq.url =
PROPERTIES
启动Beats和Canel
最后,启动Beats和Canel以开始数据同步更新。首先使用以下命令启动Filebeat:
1 ./filebeat -e -c filebeat.yml -d "publish"
BASH
然后,使用以下命令启动Canel:
通过以上的步骤,就可以通过Beats和Canel实现数据同步更新。当数据发生变化时,Filebeat会将日志数据发送到Logstash中,Logstash在接收到数据后对数据进行处理,最后将数据发送到Elasticsearch中。Canel会监控指定的数据库和表中的数据变化,将变化的数据发送到指定的目标。数据同步更新实现的核心在于Logstash的处理能力和Canel的数据同步能力。