一、简介
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/logs
- 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、下载插件
- wget https://codeload.github.com/mobz/elasticsearch-head/zip/master
- unzip master
2、安装nodejs,npm,切换npm源, 安装grunt
- sudo apt-get install nodejs
- sudo apt-get install npm
- npm config set registry https://registry.npm.taobao.org
- npm install -g grunt-cli
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)