手摸手 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::errorCode
PDO::errorCode — 获取跟数据库句柄上一次操作相关的 SQLSTATE(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 mixed PDO: ...
- C/C++编程笔记:C语言预处理命令是什么?不要以为你直接写#就行!
很多小伙伴在自己写代码的时候,已经多次使用过#include命令.使用库函数之前,应该用#include引入对应的头文件.其实这种以#号开头的命令称为预处理命令. C语言源文件要经过编译.链接才能生成 ...
- luogu P4590 [TJOI2018]游园会 dp套dp
LINK:游园会 容易想到 设\(f[i][j][k][l]\)前i个字符 j表示状压的w个字符状态为j 长度<=k 匹配到了NOI的第l个位置的方案数. 不过只能得到30分. 考虑优化 其实优 ...
- 5.19 省选模拟赛 小B的图 最小生成树 LCT
LINK:小B的图 这道题就比较容易了. 容易想到将询问离线 然后 从小到大排序 那么显然是优先放正图(x+k)的边. 考虑随着x的增大 那么负图上的边会逐渐加进来 一条边被加进来当且仅当 其权值小于 ...
- E CF R 85 div2 1334E. Divisor Paths
LINK:Divisor Paths 考试的时候已经想到结论了 可是质因数分解想法错了 导致自闭. 一张图 一共有D个节点 每个节点x会向y连边 当且仅当y|x,x/y是一个质数. 设f(d)表示d的 ...
- PHP开发者该知道的多进程消费队列
引言 最近开发一个小功能,用到了队列mcq,启动一个进程消费队列数据,后边发现一个进程处理不过来了,又加了一个进程,过了段时间又处理不过来了… 这种方式每次都要修改crontab,如果进程挂掉了,不会 ...
- MyBatis-Plus使用(1)-概述+代码生成器
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 官网:https://mp.baomidou.com ...
- Oracle连接池工具类OJDBCUtils
Oraclejdbc.properties driverClassName=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@127.0.0. ...
- CSS样式大全(网络收集整理)
CSS样式大全(网络收集整理 字体属性:(font) 大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 { ...
- Python数据类型-dic,set常见操作
字典常见方法 语法:字典名[新key]=value 功能:给字典增加键值 语法:字典名[字典里存在的key]=新的value 功能:修改字典里的值 功能:删除字典的元素,通过key来进行删除, ...