ElasticSearch 安装与运行
安装
elasticsearch的运行基于java,需要先安装jdk,推荐使用jdk8以上的版本。
es下载地址:https://www.elastic.co/cn/downloads/elasticsearch
下载比较慢,我用的是7.6.0版本的,可以使用下面的百度云链接进行下载,也包含了对应版本的kibana和ik中文分词器包。
链接:https://pan.baidu.com/s/1SgPe3sIPSopYXjsVFy1QoA
提取码:8rxp
将下载好的elasticsearch安装包上传服务器 /home/software
下 解压
tar -zxvf elasticsearch-7.6.0-linux-x86_64.tar.gz
移动解压后es文件夹
mv elasticsearch-7.6.0 /usr/local/
es目录
- bin:可执行文件
- config:配置文件目录
- JDK:java环境
- lib:依赖的jar,类库
- logs:日志文件
- modules:es相关的模块
- plugins:可以自己开发的插件
- data:这个目录没有,自己新建一下,后面要用 -> mkdir data,这个作为索引目录
修改配置文件 elasticsearch.yml
cd /usr/local/elasticsearch-7.6.0/config
vim elasticsearch.yml
#精简配置后(单机模式下)
cluster.name: demeter-elasticsearch
node.name: node-1
path.data: /usr/local/elasticsearch-7.6.0/data
path.logs: /usr/local/elasticsearch-7.6.0/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
- 修改集群名称,默认是elasticsearch
- 修改当前es节点名称,名称随意,如果在集群环境中,都要有相应的名字
- 修改data数据保存地址(需要自己新建一下目录)
- 修改日志数据保存地址
- 绑定es网络ip
- 默认端口号,可以自定义修改
- 集群节点,名字改成之前的那个节点名称
修改jvm参数
elasticsearch比较耗内存,可以根据自己的机器内存情况调整内存大小
vim /usr/local/elasticsearch-7.6.0/config/jvm.options
# 根据情况自行修改
-Xms1g
-Xmx1g
添加用户
elasticsearch不需要使用root账户操作es,需要添加用户,并赋予操作es目录文件的权限
useradd esuser
chown -R esuser:esuser /usr/local/elasticsearch-7.6.0
切换到esuser
su esuser
whoami
启动es
cd /usr/local/elasticsearch-7.6.0/bin
./elasticsearch
如果出现如下错误:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3834] for user [esuser] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
需要切换到root用户下修改配置
vim /etc/security/limits.conf
# 加入以下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
vim /etc/sysctl.conf
# 加入以下内容
vm.max_map_count=262145
sysctl -p 刷新配置
在切换到esuser用户,启动
访问ip+port,我的是192.168.25.136:9200
{
"name": "node-1",
"cluster_name": "demeter-elasticsearch",
"cluster_uuid": "-EwONdcWTpaszwPvcsd1SQ",
"version": {
"number": "7.6.0",
"build_flavor": "default",
"build_type": "tar",
"build_hash": "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
"build_date": "2020-02-06T00:09:00.449973Z",
"build_snapshot": false,
"lucene_version": "8.4.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
停止es
如果是命令./elasticsearch
启动的,是前台启动,ctrl+c就可以停止
后台启动
./elasticsearch -d
通过jps
查看 Elasticsearch的进程,在通过 kill -9 进程号
停止es
[esuser@localhost bin]$ jps
1792 Elasticsearch
1857 Jps
[esuser@localhost bin]$ kill -9 1792
端口
9200:Http协议,用于外部通讯
9300:Tcp协议,ES集群之间是通过9300通讯
可视化
Elasticsearch Head
方式1:
Elasticsearch Head 插件地址
https://github.com/mobz/elasticsearch-head
- 需要先安装node.js
- git clone git://github.com/mobz/elasticsearch-head.git
- cd elasticsearch-head
- npm install
- npm run start
- open http://localhost:9100/
连接测试发现,存在跨域问题:配置elasticsearch.yml 加上下面两行代码即可
http.cors.enabled: true
http.cors.allow-origin: "*"
方式2:
使用谷歌插件Elasticsearch Head,不会存在跨域的问题,但是需要科学上网安装。
Kibana
Kibana是ELK(ElasticSearch、Logstash、Kibana)的其中之一,ElasticSearch是基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elsaticsearch/kafka等)。Kibana可以将es的数据通过友好的页面显示出来,提供实时分析的功能。
安装
将下载好的安装包上传到服务器的 /home/software
下,解压
tar -zxvf kibana-7.6.0-linux-x86_64.tar.gz
将解压后的kibana目录移动到/usr/local/
下
mv kibana-7.6.0-linux-x86_64 /usr/local/
修改配置
vim /usr/local/kibana-7.6.0-linux-x86_64/config/kibana.yml
server.port: 5601 # 端口号
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.25.136:9200"] #es地址
kibana.index: ".kibana"
启动
./kibana
报错如下:
Kibana should not be run as root. Use --allow-root to continue.
需要root启动的话 使用下列命令
./kibana --allow-root
访问网址http://192.168.25.136:5601 安装成功