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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
简介: 淘东电商项目(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集群地址]
相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
弹性计算 运维 Linux
Docker环境如何配置?使用阿里云OOS一步搞定!
阿里云OOS简化了ECS上应用部署,提供Docker一键安装服务。支持多种操作系统,包括Alibaba Cloud Linux、CentOS、Ubuntu、Debian和Windows Server。要安装Docker,用户只需在OOS扩展程序中选择并确认实例,执行安装。OOS扩展程序还支持Java、Python等开发环境及宝塔面板、WordPress等应用的快速配置,提升运维效率,让云资源管理更便捷。
53479 3
Docker环境如何配置?使用阿里云OOS一步搞定!
|
10天前
|
缓存 Linux Docker
CentOS 7 下安装 Docker 及配置阿里云加速服务
CentOS 7 下安装 Docker 及配置阿里云加速服务
218 0
|
22天前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
2天前
|
Linux Docker 容器
Docker02--搭建Linux环境,配置Docker,docker images无法访问,因为docker没有启动,阿里云镜像加速器免费的
Docker02--搭建Linux环境,配置Docker,docker images无法访问,因为docker没有启动,阿里云镜像加速器免费的
|
1月前
|
Docker 容器
docker 运行 elasticsearch + kibana + head 集群
docker 运行 elasticsearch + kibana + head 集群
|
9天前
|
运维 Serverless 文件存储
函数计算产品使用问题之在利用Docker镜像部署应用时,容器内的应用如何能访问函数计算配置的NAS挂载
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
10天前
|
存储 Serverless 对象存储
函数计算产品使用问题之项目打包为docker镜像,该如何部署上去
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
10天前
|
关系型数据库 MySQL Nacos
使用 Docker 部署 Nacos 并配置 MySQL 数据源
使用 Docker 部署 Nacos 并配置 MySQL 数据源
25 0
|
12天前
|
应用服务中间件 nginx Docker
详细解读docker部署项目
详细解读docker部署项目
16 0
|
12天前
|
前端开发 Java Docker
Docker 部署项目,真的太雅了~
Docker 部署项目,真的太雅了~
22 0