淘东电商项目(45) -Docker下Kibana与Logstash的ES集群配置(一次填完所有的坑)

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 淘东电商项目(45) -Docker下Kibana与Logstash的ES集群配置(一次填完所有的坑)

引言

本文代码已提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop

阅读本文前,为了保证思维的连贯性,可以先阅读之前的博客:

本文目录结构:

l____引言

l____ 1. kibana配置ES集群

l____ 2. logstash配置ES集群

l____ 3. 测试

l____ 4. 总结

1. kibana配置ES集群

1.新建宿主主机的挂载配置文件:
cd /usr/local
mkdir -p kibana/config
cd kibana
cd config
vi kibana.yml

配置内容如下:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.162.134:9201","http://192.168.162.134:9202"]

字段解析以及填坑方法:

字段 解析
server.port kibana运行端口
server.host kibana后端服务器的主机,如果设置为“127.0.0.1”将访问不了,如果设置为“192.168.162.134”则启动失败,建议设置为"0.0.0.0"
elasticsearch.hosts es集群地址,不要使用elasticsearch.url,因为过期了
2.以挂载配置文件的方式启动kibana
docker run \
-d -p 5601:5601 \
-v /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
--name kibana-cluster kibana:7.6.1

注意:最后一行 kibana-cluster名字不能为kibana,不然docker启动会识别不了。

3.浏览器访问

访问http://192.168.162.134:5601/app/kibana#/dev_tools/console,可以看到启动成功:

2. logstash配置ES集群

1.新建宿主主机的挂载配置文件:
cd /usr/local
mkdir -p logstash/config
cd logstash
mkdir lib
cd config
vi mysql.conf
vi mysql1.conf
vi pipelines.yml

上传jar包到/user/local/logstash/lib目录下:

配置:mysql.confmysql1.confpipelines.yml

1. mysql.conf内容(注意es集群配置):

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://192.168.18.166:3306/taodong-goods"
    jdbc_user => "root"
    jdbc_password => "123456"
    schedule => "* * * * *"
    statement => "SELECT * FROM product WHERE UPDATED_TIME > :sql_last_value"
    use_column_value => true
    tracking_column_type => "timestamp"
    tracking_column => "updated_time"
    last_run_metadata_path => "syncpoint_product_table"
  }
}
output {
    elasticsearch {
        hosts => ["192.168.162.134:9201","192.168.162.134:9202"]
        index => "product"
        document_id => "%{id}"
        document_type => "product"
    }
    stdout {
        codec => json_lines
    }
}

2. mysql1.conf内容(注意es集群配置):

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://192.168.18.166:3306/taodong-goods"
    jdbc_user => "root"
    jdbc_password => "123456"
    schedule => "* * * * *"
    statement => "SELECT * FROM category WHERE UPDATED_TIME > :sql_last_value"
    use_column_value => true
    tracking_column_type => "timestamp"
    tracking_column => "updated_time"
    last_run_metadata_path => "syncpoint_category_table"
  }
}
output {
    elasticsearch {
        hosts => ["192.168.162.134:9201","192.168.162.134:9202"]
        index => "category"
        document_id => "%{id}"
        document_type => "category"
    }
    stdout {
        codec => json_lines
    }
}

3. pipelines.yml内容:

- pipeline.id: product_table
  path.config: "/usr/share/logstash/config/mysql.conf"
- pipeline.id: category_table
  path.config: "/usr/share/logstash/config/mysql1.conf"
2.以挂载配置文件的方式启动logstash

mysql.confmysql1.confpipelines.yml

docker run \
-v /usr/local/logstash/lib/mysql-connector-java-5.1.46.jar:/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar \
-v /usr/local/logstash/config/mysql.conf:/usr/share/logstash/config/mysql.conf \
-v /usr/local/logstash/config/mysql1.conf:/usr/share/logstash/config/mysql1.conf \
-v /usr/local/logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml \
-d --name logstash-cluster logstash:7.6.1

从控制台,可以看到有查询到内容:

3. 测试

使用kibana查询商品product是否插入ES集群,下图可以看出插入成功:

使用kibana查询商品目录category是否插入ES集群,下图可以看出插入成功:

4. 总结

本文主要讲解Kibana和Logstash配置集群,主要内容如下:

类型 kibana logstash
目录 kibana安装目录/config/kibana.yml logstash安装目录/config/
关键配置内容 elasticsearch.hosts output {elasticsearch { hosts => [es集群地址]
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
10月前
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
3933 1
|
Prometheus 监控 Cloud Native
Prometheus配置docker采集器
本文介绍了如何使用 Prometheus 监控 Docker 容器,涵盖环境准备、配置文件编写及服务启动等步骤。首先确保安装 Docker 和 Docker Compose,接着通过 `docker-compose.yml` 配置 Prometheus 和示例应用。创建 `prometheus.yml` 指定数据采集目标,最后用 `docker-compose up -d` 启动服务。文章还展示了甘特图和类图,帮助理解服务状态与关系,助力提升系统可靠性和可维护性。
573 11
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
440 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
10月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
6001 60
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
7307 56
|
10月前
|
Java 分布式数据库 Docker
使用Docker配置并连接HBase的Java API
本流程概要的解释了如何在Docker上配置并启动HBase服务,并通过Java API进行连接和操作表,不涉及具体的业务逻辑处理和数据模型设计,这些因应用而异需由开发者根据实际需求进行实现。
456 13
|
11月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1313 4
|
数据安全/隐私保护 Docker 容器
docker pull 相关配置
通过本文的介绍,您已经了解了如何通过镜像源配置、登录私有仓库、设置网络代理以及其他优化策略来提升 `docker pull`命令的效率和可靠性。这些配置不仅能够显著加快镜像下载速度,还能确保在不同网络环境下的稳定性。通过合理使用这些配置,您可以更好地管理和优化Docker环境中的镜像拉取操作。
2241 18