手摸手 Elastic Stack 使用教程 - 环境安装
前言
在日常的开发中,会涉及到对一些中间件以及基础组件的使用,日志汇总分析、APM 监控、接口的健康检查、站内搜索,以及对于服务器、nginx、iis 等等的监控,最近的几个需求点,都和 Elastic Stack 有着很大的联系,有些需求可能使用 Elastic Stack 并不会是最优的方案,本着减少后期运维风险的原则,所以这里选择了统一
因此自己之前也没接触过,所以私底下就自己捯饬捯饬,看看如何使用,毕竟,技多不压身,当然,能够使用的前提是有环境支持,所以第一步需要在本地安装上 Elastic Stack
Step by Step
2.1、介绍&准备
Elastic Stack,主要包含了 Elasticsearch(数据存储)和 Kibana(可视化管理)以及一系列的插件,插件最终实现的也是将各种指标、日志、数据抽取到 elasticsearch 中,通过 kibana 进行可视化的展示、数据分析
作为整个技术栈的基础,所以首先需要安装的就是 elasticsearch 和 kibana
虽然也可以安装在 windows 上,但是本着不给自己找事的原则,以及出了问题好寻找解决方案,这里选择将 Elastic Stack 安装到 CentOS 7.6 上
因为我是使用的 RPM 进行安装的,由于某些原因,官网提供的组件包下载地址,如果没有特殊手段的话,可能会下载到地老天荒,因此这里可以使用国内的镜像地址进行下载,我是使用的清华的镜像进行下载的(链接直达),你可以依据自己的喜好来选择镜像地址
2.2、下载组件包
登录服务器,通过 wget 命令下载 elasticsearch 和 kibana or 直接在本地下载好然后再丢到服务器上,这里需要注意,确保 elasticsearch、kibana 以及后续使用的各个插件的版本一定要保持一致,不然的话可能会存在一些莫名其妙的问题
-- 下载 elasticsearch
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/7.9.0/elasticsearch-7.9.0-x86_64.rpm
-- 下载 kibana
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/7.9.0/kibana-7.9.0-x86_64.rpm
2.3、安装与配置
2.3.1、配置 elasticsearch
当组件下载完成后,就可以开始程序的安装,因为我是使用的 RPM 包,所以这里可以直接通过 rpm 命令完成 elasticsearch 的安装
sudo rpm --install elasticsearch-7.9.0-x86_64.rpm
当命令执行完成后,可以看到,控制台已经很清楚的提醒我们,通过 systemctl
指令就可以完成对于 elasticsearch 服务的管理
-- 设置开机自启
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
-- 启动 elasticsearch 服务
sudo systemctl start elasticsearch.service
启动之后,可以在服务器上通过 curl 127.0.0.1:9200
来验证我们的 elasticsearch 是否已经安装成功,如果可以显示出服务的相关信息,则代表 elasticsearch 已经安装成功了
与 mysql、mongodb 相同,默认情况下,elasticsearch 是不允许远程访问服务的,但是,鉴于实际的使用情况,这里需要修改配置文件,从而允许远程访问服务器上的 elasticsearch 服务
首先,通过 whereis elasticsearch
命令查找程序的安装路径,这里会有两个路径,通过查阅官方文档可以得知,/etc/elasticsearch
是配置文件所在的路径,而 /usr/share/elasticsearch
则是 elasticsearch 的运行路径所在
切换到 /etc/elasticsearch
目录下,打开 elasticsearch.yml 文件,找到 Network 节点,调整如下的配置,从而允许远程访问服务。PS,因为配置文件是 yml 文件,所以这里的对于内容格式有着很严格的要求,一定不能忘记 : 后面的空格
network.host: 0.0.0.0
当配置文件被修改后,需要重新启动 elasticsearch 服务,通过 systemctl
命令来重启服务,不出意外的话,你会发现服务启动不起来
-- 重启 elasticsearch 服务
systemctl restart elasticsearch.service
这里我们可以通过 systemctl status
来查看服务无法正常启动的原因
systemctl status elasticsearch.service -l
在控制台打印的信息中,我们重点关注错误信息中的这句话,可以看到,我们需要针对 elasticsearch 进行节点的相关配置,因为这里采用的只是单机单节点,并不会搭建集群,因此,重新打开 elasticsearch.yml 文件,修改如下的配置项即可
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
# 设置集群名称
cluster.name: elastic-cluster
# 设置节点名称
node.name: node-mater
# 默认初始化的节点名称
cluster.initial_master_nodes: ["node-mater"]
当然,你也可以直接修改配置文件,指明当前的 elasticsearch 服务以单节点的形式运行,不过,不推荐这种方式
discovery.type: single-node
保存对于配置文件的修改,重新执行启动服务的命令,可以看到服务已经启动以来了,当然,此时如果你想要通过远程访问该服务的话,还请确保服务器的防火墙有开放 9200 端口,此时再通过浏览器访问即可打开如下的页面
-- 永久开放 9200 端口
sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
-- 重启防火墙
firewall-cmd --reload
2.3.2、安装 kibana
与安装 elasticsearch 时相似,回到文件所在的路径,通过 rpm 命令,就可以完成 kibana 的安装,之后就可以通过 systemctl
来控制 kibana 的启动
-- 回到用户的根目录
cd ~
-- 安装 kibana
sudo rpm --install kibana-7.9.0-x86_64.rpm
-- 设置开机自启
sudo systemctl daemon-reload
sudo systemctl enable kibana.service
-- 启动 elasticsearch 服务
sudo systemctl start kibana.service
因为 kibana 是对 elasticsearch 中的数据进行可视化管理的,所以这里需要修改 kibana 的配置文件来完成与 elasticsearch 的串接,与 elasticsearch 配置文件所在的路径相似,kibana 的配置文件位于 /etc/kibana
路径下,找到 kibana.yml
文件,需要调整的配置项如下
## 允许远程访问
server.host: "0.0.0.0"
## 设置服务的名称
server.name: "elastic-kibana"
## 设置需要连接的 elasticsearch 服务地址
elasticsearch.hosts: ["localhost:9200"]
## 设置页面通过中文显示
i18n.locale: "zh-CN"
当然,别忘了开放服务器的 5601 端口,从而允许远程访问
-- 永久开放 5601 端口
sudo firewall-cmd --zone=public --add-port=5601/tcp --permanent
-- 重启防火墙
firewall-cmd --reload
在重新启动 kibana 之后,如果你立刻通过浏览器访问可能会提示下面的内容,嗯,请坐和放宽,等一会,多刷新几次就可以了,如果一直出现下面这个提示,可通过 systemctl status
命令来查看具体是 elasticsearch or kibana 出问题了,毕竟就这两个服务
Kibana server is not ready yet
之前在我的云服务器上安装时,当 kibana 安装启动之后,一直报这个错误,最终发现是 elasticsearch 一直启动不起来,看了看错误信息,结果发现是 elasticsearch 所使用的 jvm 内存不够了,嗯,1 核 2G 内存的主机,如果你也遇到这样的问题,这个时候你可以修改 /etc/elasticsearch
路径下的 jvm.options
文件,来调整 elasticsearch 的 jvm 虚拟机配置,之后重启就可以了
至此,就完成了 elasticsearch 和 kibana 的安装,后续也就可以基于 elasticsearch 来实现一些功能。另,对于权限相关的管控以及如何基于实际的需求来实现一些功能,则在后面不定期的文章中进行体现
2.4、注意
公网直接开放 9200 端口、5601 端口很危险,请谨慎操作,谨慎操作!!!
手摸手 Elastic Stack 使用教程 - 环境安装的更多相关文章
- 被一位读者赶超,手摸手 Docker 部署 ELK Stack
被一位读者赶超,容器化部署 ELK Stack 你好,我是悟空. 被奇幻"催更" 最近有个读者,他叫"老王",外号"茴香豆泡酒",找我崔更 ...
- 原创 | 手摸手带您学会 Elasticsearch 单机、集群、插件安装(图文教程)
欢迎关注笔者的公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site/ ...
- YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台
手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...
- 【转】手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)
前言 做这个 vueAdmin-template 的主要原因是: vue-element-admin 这个项目的初衷是一个vue的管理后台集成方案,把平时用到的一些组件或者经验分享给大家,同时它也在不 ...
- 【转】手摸手,带你用vue撸后台 系列一
前言 说好的教程终于来了,第一篇文章主要来说一说在开始写业务代码前的一些准备工作吧,但这里不会教你webpack的基础配置,热更新怎么做,webpack速度优化等等,有需求的请自行google. 目录 ...
- 手摸手带你用Hexo撸博客(一)
原文地址 手摸手带你用Hexo撸博客(一) 环境搭建 安装 node 狂点下一步 命令行输入此条命令 如果能看到版本号则安装成功 node -v 安装Git (同上) 实在不会的小伙伴百度一下,教程很 ...
- 【转】手摸手,带你用vue撸后台 系列二(登录权限篇)
前言 拖更有点严重,过了半个月才写了第二篇教程.无奈自己是一个业务猿,每天被我司的产品虐的死去活来,之前又病了一下休息了几天,大家见谅. 进入正题,做后台项目区别于做其它的项目,权限验证与安全性是非常 ...
- 【转】手摸手,带你用vue撸后台 系列三(实战篇)
前言 在前面两篇文章中已经把基础工作环境构建完成,也已经把后台核心的登录和权限完成了,现在手摸手,一起进入实操. Element 去年十月份开始用vue做管理后台的时候毫不犹豫的就选择了Elemen, ...
- 手摸手教你让Laravel开发Api更得心应手
https://www.guaosi.com/2019/02/26/laravel-api-initialization-preparation/ 1. 起因 随着前后端完全分离,PHP也基本告别了v ...
随机推荐
- PDO::rollBack
PDO::rollBack — 回滚一个事务(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 bool PDO::rollBack ( void )高佣联 ...
- 5.15 牛客挑战赛40 B 小V的序列 关于随机均摊分析 二进制
LINK:小V的序列 考试的时候 没想到正解 于是自闭. 题意很简单 就是 给出一个序列a 每次询问一个x 问序列中是否存在y 使得x^y的二进制位位1的个数<=3. 容易想到 暴力枚举. 第一 ...
- explain关键字使用解释
原文: 58沈剑 架构师之路 https://mp.weixin.qq.com/s/oWNrLHwqM-0ObuYbuGj98A <数据库允许空值,往往是悲剧的开始>一文通过explai ...
- 解决IIS发布时CS0016未能写入输出文件错误
今天遇到一个将asp.net项目部署到IIS后访问的时候报的一个错误: 在网上查询了相关资料后,解决方法如下: 找到C:\Windows\下的temp文件,右键属性>安全>编辑,给其中II ...
- Eclipse RCP:多平台部署
1 问题 在使用Eclipse RCP IDE进行开发时,它自带的PDE(插件开发环境)工具仅能够导出相同平台的部署包,比如win32的仅能导出win32的,linux64仅能够导出linux64的. ...
- 你不是说你会Aop吗?
一大早,小王就急匆匆的跑过来找我,说:周哥,那个记录日志的功能我想请教一下. 因为公司某个项目要跟别的平台做对接,我们这边需要给他们提供一套接口.昨天,我就将记录接口日志的工作安排给了小王. 下面是我 ...
- Kaggle-SQL(1)
Getting-started-with-sql-and-bigquery 教程 结构化查询语言(SQL)是数据库使用的编程语言,它是任何数据科学家的一项重要技能. 在本课程中,您将使用BigQuer ...
- java动态代理——代理方法的假设和验证及Proxy源码分析五
前文地址 https://www.cnblogs.com/tera/p/13419025.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...
- Java—转换流、字符缓冲流
转换流 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写 ...
- HBase存储及读写原理介绍
一.HBase介绍及其特点 HBase是一个开源的非关系型分布式数据库,它参考了谷歌的BigTable建模,实现的编程语言为Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDF ...