一、安装准备工作
安装参考文档:
ELK官网:https://www.elastic.co/
ELK官网文档:https://www.elastic.co/guide/index.html
ELK中文手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK中文社区:https://elasticsearch.cn/
ELK-API :https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
Elasticsearch 是java项目需要运行jdk,故如果未装jdk需要先安装jdk。jdk linux安装教程很多,这里不再贴出。
二、Elasticsearch 的安装
(1)、规划elasticSearch安装目录
mkdir -p /usr/local/soft/elasticSearch
cd /usr/local/soft/elasticSearch
(2)、下载安装包 或者直接在linux环境直接下载
访问elasticSearch官网地址 https://www.elastic.co/
下载指定版本的安装包:elasticsearch-6.6.0.tar.gz
linux 服务器直接下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz
(3)、解压安装包
tar -zxvf elasticsearch-6.6.0.tar.gz
(4)、修改配置文件
进入到es解压之后的目录下的config文件夹中,修改elasticsearch.yml 文件
cd /usr/local/soft/elasticSearch/elasticsearch/config/
vim elasticsearch.yml
elasticsearch.yml 中的配置文件都被注释掉,这里新增配置内容
#配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分>不同的集群。
cluster.name: my-es
#节点名称,如果是集群,集群中每个节点的名字都不能一样
node.name: node-1
#设置索引数据的存储路径
path.data: /usr/local/soft/elasticSearch/elasticsearch/data
##设置日志的存储路径
path.logs: /usr/local/soft/elasticSearch/elasticsearch/logs
#是否允许访问的设置0.0.0.0 允许所有访问
network.host: 0.0.0.0
##设置服务端口,通信端口是9300
http.port: 9200
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["127.0.0.1","120.76.142.68:9200"]
#设置允许跨域,为Elasticsearch 安装插件做准备
http.cors.enabled: true
http.cors.allow-origin: "*"
(5)、补齐yml文件中配置data目录和log目录
log目录已经存在就不再创建,直接创建data目录
mkdir -p /usr/local/soft/elasticSearch/elasticsearch/data
三、解决启动时报错
cd /usr/local/soft/elasticSearch/elasticsearch
bin/elasticsearch
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户。
(1)添加用户
useradd esuser
passwd esuser
(2) 根据提示设置用户密码(自定义)
为用户赋权限
chown -R esuser:esuser /usr/local/soft/elasticSearch
(3) 根据提示设置用户密码(自定义)
(4)esuser 用户可以使用最大虚拟内存太小,解决办法切换到root用户修改配置sysctl.conf:
vim /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
最后记得执行:
sysctl -p
(5) esuser 用户最大可创建文件数太小,更改可以创建文件数量,添加两行
vim /etc/security/limits.conf
esuser hard nofile 65536
esuser soft nofile 65536
(6) 设置Elasticsearch的启动参数(默认1g,如果合适可以不修改)。
最好最大堆内存都超过物理机内存一半,由于我的服务器内存过小,这里将其修改512m
vim config/jvm.options
-Xms512m
-Xmx512m
(6) 然后使用es用户启动 :su esuser
cd /usr/local/soft/elasticSearch/elasticsearch
bin/elasticsearch
(7)测试(http访问)
http:ip:9200
四、安装插件
Elasticsearch安装Head插件
Elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。你可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp。
ES-head主要有四个方面的操作:
显示集群的拓扑,并且能够执行索引和节点级别操作
搜索接口能够查询集群中原始json或表格格式的检索数据
能够快速访问并显示集群的状态
有一个输入窗口,允许任意调用RESTful API。这个接口包含几个选项,可以组合在一起以产生有趣的结果;
- 请求方法(get、put、post、delete),查询json数据,节点和路径
- 支持JSON验证器
- 支持重复请求计时器
- 支持使用javascript表达式变换结果
- 收集结果的能力随着时间的推移(使用定时器),或比较的结果
- 能力图表转换后的结果在一个简单的条形图(包括时间序列)
(1)安装git
yum install git
(2)Nodejs安装
https://nodejs.org/en/download/ nodejs 下载地址
下载后,是一个【node-v12.18.4-linux-x64.tar.xz】文件夹,进行解压:
node-v12.18.4-linux-x64.tar.xz #.xz解压命令
tar -xvf node-v12.18.4-linux-x64.tar #.tar解压命令
配置环境变量
2.1 切换到root账户
su root
2.2 vim /etc/profile ,进入文件后,在最后面追加两条路径,如下:
export NODEJS_HOME=/usr/local/soft/node/node-v12.18.4-linux-x64
export PATH=
P
A
T
H
:
PATH:
PATH:NODEJS_HOME/bin
2.3、source /etc/profile ,文件生效
2.4、验证结果:
[root@localhost /]# node -v
v12.18.4
(3)Grunt安装
npm install -g grunt-cli
grunt -version – 安装后 ,查看 grunt版本。
(4)下载 head 插件的源码并安装
git clone git://github.com/mobz/elasticsearch-head.git
4.1 :elasticsearch-head/Gruntfile.js,增加hostname属性
connect: {
server: {
options: {
port: 9100,
hostname: '0.0.0.0',
base: '.',
keepalive: true
}
}
}
4.2 elasticsearch-head/_site/app.js。修改head的连接地址
this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://localhost:9200”;
把localhost修改成你es的服务器地址,如:
this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://192.168.102.201:9200”;
4.3 添加下面依赖
npm install grunt-contrib-clean --registry=https://registry.npm.taobao.org
npm install grunt-contrib-concat --registry=https://registry.npm.taobao.org
npm install grunt-contrib-watch --registry=https://registry.npm.taobao.org
npm install grunt-contrib-connect --registry=https://registry.npm.taobao.org
npm install grunt-contrib-copy --registry=https://registry.npm.taobao.org
npm install grunt-contrib-jasmine --registry=https://registry.npm.taobao.org
4、4 elasticsearch-head源码目录中,执行npm install
npm install -g
npm install grunt --save-dev
npm run start
4、5 在elasticsearch-head源代码目录下启动nodejs,
运行grunt server
(5) 验证(页面输入http://ip:9100/)
http://ip:9100/
Elasticsearch安装IK分词器插件
(1) 安装
直接执行
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
发现ik已经安装好了。
重启Elasticsearch
(1) 测试
http://ip:9200/_analyze post请求
使用ik分词器
{
"text": "测试分词器,后边是测试内容:spring cloud实战"
,"analyzer":"ik_max_word"
}
查看分词效果
当未使用分词器时候
"text": "测试分词器,后边是测试内容:spring cloud实战"
}