ElasticSearch业务

ElasticSearch业务

Lucene介绍与入门使用 - 高压锅里的小白 - 博客园 (cnblogs.com)

ElasticSearch 和 Logstash

Elasticsearch和Logstash是两个开源项目,可以通过Logstash将数据和日志数据发送到Elasticsearch进行集中式管理、分析和监控。以下是通过整合Logstash和Elasticsearch进行数据抓取和日志统计的示例:

  1. 配置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 }
}

这里的配置是从MySQL数据库中抓取test表的数据,并将数据发送到Elasticsearch中。

  1. 启动Logstash服务

使用以下命令启动Logstash服务:

1
bin/logstash -f logstash.conf
  1. 在Elasticsearch中查看数据

通过Kibana工具或Elasticsearch的API可以查询到获取到的数据。例如在Kibana中,打开Discover页面并进行查询,就可以查看到刚刚获取到的数据。

  1. 配置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"
}
}

在这个配置中,Logstash通过beats插件来接收日志数据,然后使用grok插件提取日志数据并使用date插件进行时间解析,最后将数据发送给Elasticsearch。

通过以上步骤可以将日志数据发送到Elasticsearch,并通过Kibana等工具进行查询和可视化。

Beats 和 Canel

Beats是一种轻量级的数据收集器,而Canel是一个开源的数据库复制监控器。通过将这两个工具进行整合,可以实现数据同步更新。

以下是具体的实现步骤:

  1. 安装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/
  1. 配置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的地址和端口
  1. 安装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
  1. 配置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=
  1. 启动Beats和Canel

最后,启动Beats和Canel以开始数据同步更新。首先使用以下命令启动Filebeat:

1
./filebeat -e -c filebeat.yml -d "publish" 

然后,使用以下命令启动Canel:

1
./bin/startup.sh

通过以上的步骤,就可以通过Beats和Canel实现数据同步更新。当数据发生变化时,Filebeat会将日志数据发送到Logstash中,Logstash在接收到数据后对数据进行处理,最后将数据发送到Elasticsearch中。Canel会监控指定的数据库和表中的数据变化,将变化的数据发送到指定的目标。数据同步更新实现的核心在于Logstash的处理能力和Canel的数据同步能力。


ElasticSearch业务
http://example.com/2023/06/01/业务/ElasticSearch业务/
作者
where
发布于
2023年6月1日
许可协议