大家好,我是Edison。

上一篇:初识ElasticSearch

ElasticSearch的安装方式

ElasticSearch可以有多种安装方式,比如直接下载安装到宿主机进行运行,也可以通过docker的方式运行,完全取决我们的用途。这里,我们只是为了学习和练习,通过docker方式运行即可。

Docker安装的前置条件

这里为了成功通过docker安装ElasticSearch+Kibana,我们需要准备一下docker和docker-compose(如果你的实验机器没有安装的话):

安装docker:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O
/etc/yum.repos.d/docker-ce.repo
yum -y install docker
systemctl enable docker && systemctl start docker
docker --version

安装docker-compose:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O
/etc/yum.repos.d/docker-ce.repo
yum -y install docker
systemctl enable docker && systemctl start docker
docker --version

这里我们通过直接运行的方式(非Docker)运行Logstash,因此这里我们安装一下JDK:

yum install java-1.8.0-openjdk
java -version

修改系统参数(如果你的机器配置较低的话,比如只有2个G内存):

# 修改配置
sudo vim /etc/sysctl.conf
vm.max_map_count = 655360
# 让配置生效
sudo sysctl -p

Docker安装ElasticSearch+Kibana

这里我们以ES 7.1.0版本为例,虽然它是几年前的版本了,但这里我们只是学习完全够用了。

下面是我们准备好的docker-compose.yml文件:

version: '2.2'
services:
kibana:
image: docker.elastic.co/kibana/kibana:7.1.0
container_name: kibana7
environment:
- I18N_LOCALE=en-US
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
networks:
- es7net elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
container_name: es7_01
environment:
- cluster.name=edisontalk
- node.name=es7_01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01,es7_02
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- es7net elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
container_name: es7_02
environment:
- cluster.name=edisontalk
- node.name=es7_02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01,es7_02
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data2:/usr/share/elasticsearch/data
networks:
- es7net volumes:
es7data1:
driver: local
es7data2:
driver: local networks:
es7net:
driver: bridge

在这个文件中,定义了两个ES实例 和 一个Kibana实例,两个ES实例组成了一个小集群,Kibana则是可视化查询工具。

这里需要注意的是参数是“ES_JAVA_OPTS”,建议将Xmx 和 Xms 设置成一样的,如这里的512M。当然,如果你的机器配置较低,建议将这两个值调的低一些,比如256M。但是,Xmx的值不要超过机器内存的50%

运行docker-compose文件执行运行安装:

docker-compose up -d

运行后等待1分钟,通过浏览器URL访问ES实例:

然后通过浏览器URL访问Kibana实例:

至此,你的ES+Kibana初步安装好了。

安装Logstash并导入测试数据集

这里我们再安装一个logstash,选择下载一个logstash-7.1.0安装到宿主机上的/usr/local/elastic/elk7目录下。

从这里下载logstash 7.1.0,与我们刚刚安装的ES实例保持一致:https://www.elastic.co/cn/downloads/past-releases/logstash-7-1-0

然后将其copy到你的服务器上,并进行解压:

然后准备一个logstash.conf配置文件,并copy到logstash-7.1.0/bin目录下:

input {
file {
path => "/usr/local/elastic/elk7/logstash-7.1.0/bin/movies.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns => ["id","content","genre"]
} mutate {
split => { "genre" => "|" }
remove_field => ["path", "host","@timestamp","message"]
} mutate { split => ["content", "("]
add_field => { "title" => "%{[content][0]}"}
add_field => { "year" => "%{[content][1]}"}
} mutate {
convert => {
"year" => "integer"
}
strip => ["title"]
remove_field => ["path", "host","@timestamp","message","content"]
} }
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "movies"
document_id => "%{id}"
}
stdout {}
}

这个配置文件定义了我们需要采集的数据的路径,为了实现测试数据集的导入,我们也需要下载一个测试数据集,这里选择的是MovieLens的开放数据集,选择其small类型的movies测试数据,将这个movices.csv数据copy到logstash-7.1.0/bin目录下即可。

数据集地址:http://files.grouplens.org/datasets/movielens/ml-latest-small.zip

这个movie.csv中包含了一些电影的id和标题,以及该电影的类别,数据格式如下:

movieId, title, genres

最后,开始运行logstash:

sudo ./logstash -f logstash.conf

稍后,我们就可以看到一条条数据被传到了ElasticSearch中:

NOTE:logstash的执行比较慢,需要耐心等待一下,取决于你的测试服务器的配置了。

数据插入完成后,我们可以到Kibana的Dev Tools中验证一下:

可以看到,共计9743个movie数据被传到了ElasticSearch中。

安装Cerebro可视化管理界面

Cerebro是一个常用的开源可视化管理工具,它可以对ElasticSearch进行集群监控和管理、集群配置修改、索引分片管理。

要安装Cerebro,只需要修改一下我们的docker-compose.yml,添加一个service即可:

version: '2.2'
services:
cerebro:
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://elasticsearch:9200
networks:
- es7net ......

然后重新执行以下命令即可安装:

docker-compose up -d

安装好后访问9000端口即可看到:

小结

本篇,我们了解了ElasticSearch的安装方式,并通过docker-compose的方式快速搭建了一个两个ES节点的ElasitcSearch + Kibana服务。然后,通过手动安装Logstash并导入测试数据集,为后续学习ElasticSearch基本概念和查询练习奠定了基础。

下一篇,我们就正式开始ElasticSearch的入门,先从一些常见的基本概念走起!

参考资料

极客时间,阮一鸣,《ElasticSearch核心技术与实战

作者:周旭龙

出处:https://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

Elastic学习之旅 (2) 快速安装ELK的更多相关文章

  1. 谷歌Cartographer学习(1)-快速安装测试(转载)

    转载自谷歌Cartographer学习(1)-快速安装测试 代码放到个人github上,https://github.com/hitcm/ 如下,需要安装3个软件包,ceres solver.cart ...

  2. 谷歌Cartographer学习(1)-快速安装测试

    谷歌自己提供了安装方法,但是安装比较繁琐,我做了一定的修改,代码放到个人github上,https://github.com/hitcm/. ros下面的安装非常快捷,只需要catkin_make即可 ...

  3. Docker 快速安装&搭建 Ngnix 环境,并配置反向代理

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  4. Docker 快速安装&搭建 Mysql 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  5. Docker 快速安装&搭建 MongDB 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  6. 虚拟机创建及安装ELK

    虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1    标题1 Ctrl + 2    标题2 Ctrl + 3    标题3 C ...

  7. 180分钟的python学习之旅

    最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时 ...

  8. 快速认识ELK中的L - Logstash

    快速认识ELK中的L - Logstash 原创 2016-12-07 杜亦舒 简介 Logstash 是一个开源的数据采集引擎. Logstash 就像是一个管子,左面接数据源接收数据,右面接存储目 ...

  9. CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

    第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...

  10. ELK技术实战-安装Elk 5.x平台

    ELK技术实战–了解Elk各组件   转载  http://www.ywnds.com/?p=9776 ELK技术实战-部署Elk 2.x平台 ELK Stack是软件集合Elasticsearch. ...

随机推荐

  1. requests.exceptions.ProxyError问题解决方法

    出现这个问题是因为你系统上在使用代理,然后你的代理又是规则匹配的. https://stackoverflow.com/questions/36906985/switch-off-proxy-in-r ...

  2. minio集群部署

    minio集群部署 1.说明: 安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替. 运行分布式 MinIO 实例的服务器时间差不应 ...

  3. 【2】从零玩转OSS阿里云存储服务之Java代码操作-2-cong-ling-wan-zhuan-oss-a-li-yun-cun-chu-fu-wu-zhi-java-dai-ma-cao-zuo

    title: [2]从零玩转OSS阿里云存储服务之Java代码操作 date: 2021-06-09 17:37:14.486 updated: 2021-12-26 17:43:12.779 url ...

  4. vulnhub - tornado - wp

    coverY: 0 tornado 信息收集 目标开放了80,22端口. 访问80网页,是默认页面: 目录枚举 用dirsearch没有什么发现,换gobuster发现了一个bluesky目录.访问如 ...

  5. Windows系统修复(System Update Readiness Tool、SFC模式、DISM命令)可解决系统更新问题。

    安装System Update Readiness Tool 提供此更新是因为在 Windows servicing store 中发现了不一致,这可能会影响将来成功安装更新.service pack ...

  6. java实现一个录像大师

    java实现一个录像大师 javacv从入门到入土系列,发现了个好玩的东西,视频处理,于是我想搞了个屏幕录屏大师,这里我使用javafx进行页面显示. 依赖 <!-- 需要注意,javacv主要 ...

  7. ChatGPT新玩法来了,微信聊天机器人

    前言 上一篇文章中说了ChatGPT是什么,然后怎么注册使用. 传送门:花了1块钱体验一把最近很火的ChatGPT 但是实际操作下来还是有不少小伙伴跟我一样遇到各种坑. 没有魔法工具 OpenAI的服 ...

  8. DWS临时内存不可用报错: memory temporarily unavailable

    本文分享自华为云社区<DWS临时内存不可用报错: memory temporarily unavailable>,作者:漫天. 1.定位报错的DN/CN 当出现memory tempora ...

  9. 如何强制SQL走性能更优的hash join

    本文分享自华为云社区<[SQL优化]为什么有时候无法走执行性能更优的hashjoin>,作者: leapdb. 1. hash join通常优于nestloop join 通常nestlo ...

  10. openGauss数据库在CentOS上的安装实践

    本文分享自华为云社区<openGauss数据库在CentOS上的安装实践>,作者:Gauss小松鼠 . 1.安装前准备 安装数据库前先要有已安装centOS 7.6的服务器+数据库安装包. ...