如何安装ElasticSearch及相关件

一、简介

ElasticSearch是什么?

elasticsearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。

ElasticSearch 插件

elasticsearch-head是一款专门针对于elasticsearch的客户端工具,elasticsearch-head是一个基于node.js的前端工程

IK分词器

ElasticSearch 默认采用的分词器, 是单个字分词 ,效果很差 ,所以我们需要安装一个更实用的分词器,这里采用 IK分词器

Kibana是什么?

是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。

你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。

可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。

Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。

二、安装ElasticSearch

操作2-6 均在root 账户下执行,操作7启动elasticsearch在sonar账户下运行

1、新创建普通用户

elasticsearch不能用root账号启动,为了避免之后启动麻烦,直接创建一个用户建立一个文件夹

  • 在root账户下运行:adduser sonar

sudo password for xx:

输入xx用户的密码,出现如下信息

正在添加用户"linuxidc"...

正在添加新组"linuxidc" (1006)...

正在添加新用户"linuxidc" (1006) 到组"linuxidc"...

创建主目录"/home/linuxidc"...

正在从"/etc/skel"复制文件...

输入新的 UNIX 口令:

重新输入新的 UNIX 口令:

两次输入linuxidc的初始密码,出现的信息如下

passwd: password updated successfully

Changing the user information for linuxidc

Enter the new value, or press ENTER for the default

Full Name \[\]:

Room Number \[\]:

Work Phone \[\]:

Home Phone \[\]:

Other \[\]:

Full Name \[\]: 等信息一路回车

这个信息是否正确? Y/n y

到此,用户添加成功。

  • 检查是否添加成功:ls /home/ 下面是否有sonar账号
  • 如果elasticsearch文件目录放在root目录下,那还需要给root目录一个权限,但不推荐

chmod 755 /root

2、新建tools目录并且从官网下载压缩包

可以先从网上下载压缩包,然后上传到ubuntu系统当中

  • 创建tools 目录

mkdir tools

  • 下载项目

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz

3、解压zip

  • tar -zxvf elasticsearch-7.16.3-linux-x86_64.tar.gz
  • mv elasticsearch-7.16.3 elasticsearch

4、修改运行内存

  • 进入解压后的elasticsearch 文件中

cd elasticsearch (对应你的解压路径)

  • 修改配置文件

vim /config/jvm.options

修改如下内容,取消下面两行的注释,内存设置为2g

-Xms2g

-Xmx2g

exit + :wq! 退出保存

5、修改外网访问权限

  • mkdir -p /home/sonar/elasticsearch/data
  • mkdir -p /home/sonar/elasticsearch/data
  • vim /config/elasticsearch.yml

找到并取消下面行的注释,并修改

path.data: /home/sonar/elasticsearch/data

path.logs: /home/sonar/elasticsearch/logs

network.host: 0.0.0.0

node.name: node-1

cluster.initial_master_nodes: "node-1"

文件结尾添加:

http.cors.enabled: true

http.cors.allow-origin: "*"

备注:http.cors.enabled 该参数的意思:是否支持跨域,默认为false

http.cors.allow-origin 该参数意思:当设置允许跨域,默认为*,表示支持所有域 名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许 本地地址。 /https?:\/\/localhost(:0-9+)?/

exit + :wq! 退出保存

6、java 环境配置

  • elasticsearch 7.0 之后的版本会集成相应的jdk版本
  • 修改elastic的启动脚本文件

cd elasticsearch (对应你的解压路径)

vim /bin/elasticsearch

添加以下代码

export JAVA_HOME= path/elasticsearch/jdk/ (此处配置为elasticsearch解压后jdk的路径,如上图写绝对路径)

export PATH=JAVA_HOME/bin:PATH

if -x "$JAVA_HOME/bin/java" ; then

JAVA="/home/yutao/jdk1.8.0_121/bin/java"

else

JAVA=`which java`

fi

exit + :wq! 退出保存

7、运行elasticsearch

切换到sonar账号

运行 ./elasticsearch (后续没有报错,可以加上 -d 后台运行)

发现有报错 (elasticsearch用户拥有的内存权限太小):

ERROR: 1 bootstrap checks failed. You must address the points described in the following 1 lines before starting Elasticsearch.

bootstrap check failure 1 of 1: max virtual memory areas vm.max_map_count 65530 is too low, increase to at least 262144

ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/log/my-es.log

解决方案:

vim /etc/sysctl.conf

添加如下所示配置: vm.max_map_count=655360

exit + :wq! 退出保存

刷新配置: sysctl -p /etc/sysctl.conf/

再次运行

8、检查是否运行成功

  • 可以查看后台进程:ps -ef | grep elastic
  • 访问网址:ip: 9200

如果访问不到,需要关闭防火墙或添加端口号9200

再次访问可以看到如下效果:

三、安装 es 插件Elasticsearch-head

1、下载插件

2、安装nodejs,npm,切换npm源, 安装grunt

3、设置head-master目录下Gruntfile.js文件

在connect下增加:hostname: '*'

在connect下修改:port改为9009

改后

4、安装npm 依赖

npm install phantomjs-prebuilt@2.1.16 --ignore-scripts

npm install

5、运行

执行命令:npm run start

网页访问:ip:9009 (上图修改后的port)

相关推荐
虎头金猫12 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站14 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏15 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅16 小时前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren16 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼16 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘17 小时前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥17 小时前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝18 小时前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
Lsetea18 小时前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链