Linux 安装部署ES及Kibana
一、什么是Elastic Search
ElasticSearch 简称 ES ,是基于Apache Lucene构建的开源搜索引擎,是当前流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包,但是lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际的应用中去。但是ES是采用java语言编写,提供了简单易用的RestFul API,开发者可以使用其简单的RestFul API,开发相关的搜索功能,从而避免lucene的复杂性。
二、准备环境
1、安装前准备
- centos7 +
- java 8 +
- elastic 6.8.0+
2、安装配置JDK环境(必须JDK1.8+) 【安装过的请忽略此步骤】
注意:选择适合自己的JDK,并且注意安装JDK的系统
地址:https://www.oracle.com/java/technologies/downloads/#java8
2.1、卸载linux系统自带的JDK(建议直接用超级用户,不然卸载的时候可能会报权限不够的error,之后的操作也需要用root权限)
2.1.1、切换用户:su root
su root
2.1.2、查看自带JDK命令:rpm -qa | grep jdk
rpm -qa | grep jdk
2.1.3、卸载自带JDK命令:rpm -e --nodeps 要卸载的JDK
rpm -e --nodeps 要卸载的JDK
2.2、在usr/local目录下创建java目录,把我们下载好的JDK压缩包上传到 创建好的 java目录下(我放在该目录下了,也可以放在其他目录下)
创建安装目录:mkdir java
cd /usr/local
mkdir java
cd java
2.3、把压缩包解压到当前目录(我们创建的java目录下),解压命令:tar -zxvf 所要解压的文件名
tar -zxvf 所要解压的文件名
2.4、编辑profile文件:vim /etc/profile
把光标移到最后一行,键盘按 i,进入编辑模式,然后插入以下内容:(注意自己所建java的路径、jdk的名称)
JAVA_HOME=/usr/local/java/jdk1.8.0_381
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
然后按ESC退出编辑模式,‘shift + :’,输入wq,回车,完成保存并退出
2.5、让编辑的文件生效执行:source /etc/profile
2.6、最后验证JDK安装是否成功:java -version
[root@aliyun ~]# cd /usr/local/java
[root@aliyun java]# ls
jdk-8u381-linux-x64.tar.gz
[root@aliyun java]# tar -zxvf jdk-8u381-linux-x64.tar.gz
[root@aliyun java]# vim /etc/profile
[root@aliyun java]# source /etc/profile
[root@aliyun java]# java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)
出现上述显示,则完毕!
3、下载安装ES:
注意对应JDK版本,官方文档查看对应版本:https://www.elastic.co/cn/support/matrix#matrix_jvm
3.1、使用命令或官网下载:
#下载ES
wget -P /download/ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-linux-x86_64.tar.gz
官网下载:
ES官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 可选择历史版本
3.3、解压文件
#elasticsearch是不能使用root用户操作,这里我们就需要创建一个其他用户,创建用户
#在linux系统中创建新的组
groupadd es
#创建新的用户esUser并将esUser用户放入es组中
useradd esUser -g es
#修改es用户密码
passwd esUser
#---输入密码
#解压
tar -zxf /download/elasticsearch-7.17.4-linux-x86_64.tar.gz -C /usr/local
#将解压后的文件移动到指定目录(根据自己目录操作)
mv /usr/local/elasticsearch-7.17.4 /usr/local/elasticsearch
#更改文件或目录的所有权
chown esUser:es -R /usr/local/elasticsearch
三、修改配置、启动ES
1、修改ES使用的jvm内存大小
vi /usr/local/elasticsearch/config/jvm.options
#-Xms4g
#-Xms4g
#修改为 (内存大小根据自己服务器配置修改)
-Xms256m
-Xms256m
2、修改ES相关配置
注意:ES服务默认启动是受保护的,只允许本地客户端连接,如果想要通过远程客户端访问,必须开启远程连接
vi /usr/local/elasticsearch/config/elasticsearch.yml
#修改以下配置 (默认端口9200)
# 支持远程访问
network.host: 0.0.0.0
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
3、启动ES (30s - 1min)
su - esUser
cd /usr/local/elasticsearch/bin
# -d 表示后台启动
./elasticsearch -d
报错解决
使用root用户修改系统配置
su root
vim /etc/security/limits.conf
在最后面追加下面内容
* soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096
vim /etc/sysctl.conf
- 添加此语句:
vm.max_map_count=655360
执行命令检测是否生效:sysctl -p
退出从新登录之后重新启动ES服务
通过浏览器访问ES服务
- 放开云服务器安全规则关闭防火墙即可通过 ip:9200 在浏览器访问
四、Kibana
Kibana是一个针对Elasticsearch的开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。
注意:如果没有安装es(搜索引擎),请先安装es后再来安装Kibana(可视化平台)。
1.下载Kibana 点击下载
安装下载的kibana | 指令:wget -P /download/ https://artifacts.elastic.co/downloads/kibana/kibana-7.17.4-linux-x86_64.tar.gz
wget -P /download/ https://artifacts.elastic.co/downloads/kibana/kibana-7.17.4-linux-x86_64.tar.gz
解压文件
#解压文件到指定目录
tar -zxf /download/kibana-7.17.4-linux-x86_64.tar.gz -C /usr/local
#将解压后的文件移动到指定目录(根据自己目录操作)
mv /usr/local/kibana-7.17.4-linux-x86_64 /usr/local/kibana
修改配置
vi /usr/local/kibana/config/kibana.yml
# 默认端口为5601
# 支持远程访问
server.host: "0.0.0.0"
启动kibana (30s - 1min)
cd /usr/local/kibana/bin
# 允许使用root用户启动
./kibana --allow-root &
防火墙放行5601 ,浏览器远程访问即可
“Kibana server is not ready yet”这个错误通常是由于Kibana服务无法连接到Elasticsearch引起的。这可能是由于以下原因之一:
- Elasticsearch没有启动。请确保Elasticsearch正在运行并且没有遇到任何错误。您可以在Elasticsearch的日志文件中查看错误消息以了解有关原因的更多信息。
- Kibana未能连接到Elasticsearch。请确保Kibana配置文件中的Elasticsearch连接信息正确,并且Elasticsearch服务已在相应端口上启动。默认情况下,Elasticsearch使用端口9200和9300。
- Elasticsearch的索引不可用。请检查Elasticsearch中是否存在Kibana索引,该索引通常称为“.kibana”。如果不存在,请尝试通过访问
http://localhost:9200/.kibana
来手动创建它。 - Kibana的配置文件存在问题。请检查Kibana配置文件中是否有任何错误或不正确的设置。您可以在Kibana日志文件中查找更多信息,该文件通常位于Kibana安装目录下的logs文件夹中。
如果您已经检查了上述问题,并且仍然无法解决问题,则可能需要升级或降级Kibana或Elasticsearch版本以确保它们兼容。
Docker安装部署Elasticsearch、kibana
一、安装Elasticsearch
1.1.创建网络
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
docker network create es-net
1.2.拉取
docker pull elasticsearch:7.12.1
1.3.运行
运行docker命令,部署单点es:
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
elasticsearch:7.12.1
命令解释:
-e "cluster.name=es-docker-cluster"
:设置集群名称-e "http.host=0.0.0.0"
:监听的地址,可以外网访问-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
:内存大小-e "discovery.type=single-node"
:非集群模式-v es-data:/usr/share/elasticsearch/data
:挂载逻辑卷,绑定es的数据目录-v es-logs:/usr/share/elasticsearch/logs
:挂载逻辑卷,绑定es的日志目录-v es-plugins:/usr/share/elasticsearch/plugins
:挂载逻辑卷,绑定es的插件目录--privileged
:授予逻辑卷访问权--network es-net
:加入一个名为es-net的网络中-p 9200:9200
:端口映射配置
在浏览器中输入:http://IP地址:9200 即可看到elasticsearch的响应结果:
二、部署kibana
2.1.部署
拉取镜像命令
docker pull kibana:7.12.1
运行docker命令,部署kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
--network es-net
:加入一个名为es-net的网络中,与elasticsearch在同一个网络中-e ELASTICSEARCH_HOSTS=http://es:9200"
:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch-p 5601:5601
:端口映射配置
此时,在浏览器输入地址访问:http://IP地址:5601,即可看到结果
2.2.DevTools
kibana中提供了一个DevTools界面:
这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。