Elastic学习之旅 (2) 快速安装ELK
大家好,我是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核心技术与实战》

Elastic学习之旅 (2) 快速安装ELK的更多相关文章
- 谷歌Cartographer学习(1)-快速安装测试(转载)
转载自谷歌Cartographer学习(1)-快速安装测试 代码放到个人github上,https://github.com/hitcm/ 如下,需要安装3个软件包,ceres solver.cart ...
- 谷歌Cartographer学习(1)-快速安装测试
谷歌自己提供了安装方法,但是安装比较繁琐,我做了一定的修改,代码放到个人github上,https://github.com/hitcm/. ros下面的安装非常快捷,只需要catkin_make即可 ...
- Docker 快速安装&搭建 Ngnix 环境,并配置反向代理
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker 快速安装&搭建 Mysql 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker 快速安装&搭建 MongDB 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 虚拟机创建及安装ELK
虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 C ...
- 180分钟的python学习之旅
最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时 ...
- 快速认识ELK中的L - Logstash
快速认识ELK中的L - Logstash 原创 2016-12-07 杜亦舒 简介 Logstash 是一个开源的数据采集引擎. Logstash 就像是一个管子,左面接数据源接收数据,右面接存储目 ...
- CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)
第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...
- ELK技术实战-安装Elk 5.x平台
ELK技术实战–了解Elk各组件 转载 http://www.ywnds.com/?p=9776 ELK技术实战-部署Elk 2.x平台 ELK Stack是软件集合Elasticsearch. ...
随机推荐
- MySQL运维9-Mycat分库分表之枚举分片
一.枚举分片 通过在配置文件中配置可能的枚举值,指定数据分布到不同数据节点上,这种方式就是枚举分片规则,本规则适用于按照省份,性别,状态拆分数据等业务 二.枚举分片案例 枚举分片需求:现有 tb_en ...
- python3发送Gratuitous ARP更新vip绑定关系
操作系统 :CentOS 7.6_x64 Python版本:3.9.12 FreeSWITCH版本 :1.10.9 高可用场景下,vip切换完成后需要发送arp广播更新ip和mac地址的绑定关系,如果 ...
- 一键式调试工具—Reqable 使用指南
简介 Reqable是一款跨平台的专业HTTP开发和调试工具,在全平台支持HTTP1.HTTP2和HTTP3(QUIC)协议,简单易用.功能强大.性能高效,助力程序开发和测试人员提高生产力!本产品需要 ...
- springboot的启动器
前言 ~ 面试的时候,被问到springboot 官方提供的启动器常见的有哪些?(头大) 正文 ~ 启动器作用: 启动器是为了 适应 一个特定的场景的,里面定义了 这个场景下 需要用到的依赖. 启动器 ...
- 文心一言 VS 讯飞星火 VS chatgpt (35)-- 算法导论5.3 5题
五.证明:在过程 PERMUTE-BY-SORTING的数组 P中,所有元素都唯一的概率至少是1-1/n. 文心一言: 证明: 在过程PERMUTE-BY-SORTING中,对于输入数组P中的每个元素 ...
- 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦
摘要:介绍了13种GaussDB(DWS)单点性能的案例. 一.数据倾斜 1.1 问题描述 某局点SQL执行慢,涉及大表的SQL执行不出来结果. 1.2 分析过程 数据倾斜在很多方面都会有体现: 1) ...
- 云图说|Git云上仓库哪家好?一张图了解华为云代码托管服务
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 云办公时代已然到 ...
- iOS distribution发布证书过期或者被手动revoke了app会被下架吗?
在距离distribution 证书过期一个月(或被手动revoke了)的时候会受到apple的邮件 编辑 虽然distribution过期(或者被手动revoke)了,如果你的开发者账号是co ...
- SBOM:缓解软件供应链风险的关键
软件包含大量且范围广泛的组件.部分和相互依赖关系.需要有效缓解与使用软件相关的安全风险:需要遵守与组件相关的许可证.通过第三方代码(包括开源软件 (OSS))了解产品中所有项目的出处至关重要,无论这些 ...
- Hugging News #0203: 3.3 MB 的文生图模型、RHLF 训练框架、手机上能跑的 Transformer
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...