Elasticsearch7.2与Kibana7.2版本的强烈建议安装同一个版本的,不同的版本具体使用中会有什么问题作者没有试过。系统版本:CentOS Linux release 7.5.1804 (Core)
Elasticsearch 的底层存储是基于Lucene的所以安装之前要确保服务器已经装好了java环境,具体安装步骤就不多赘述
安装wget命令(如果服务器可以使用该命令就请跳过):
yum -y install wget
1.Elasticsearch下载地址:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-linux-x86_64.tar.gz
2.解压elasticsearch-7.2.0-linux-x86_64.tar.gz到/usr/local/pid/目录:
tar -zvxf elasticsearch-7.2.0-linux-x86_64.tar.gz
3.进入解压后的elasticsearch目录:
(1)新建data目录:
mkdir data
(2)修改config/elasticsearch.yml:
vim config/elasticsearch.yml
配置文件都是注释的,我不建议挨个找下面的配置取消注释,下次再找时非常不好找,在配置文件下面直接添加如下配置:
cluster.name: pid #集群名称(如果不是集群不要加这个属性,要不es虽然使用没问题,但是启动会报错!)
node.name: pid_node_1 #节点名称
#数据和日志的存储目录
path.data: /usr/local/elasticsearch-7.1.1/data
path.logs: /usr/local/elasticsearch-7.1.1/logs
#设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
http.port: 9200 #端口
#设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
cluster.initial_master_nodes: ["pid_node_1"]
具体集群更过参数配置见自己桌面配置文件
4.准备启动es
进入/bin目录执行命令:
./elasticsearch
如果出现以下错误说明该虚拟机的内存太小,因为ES启动默认占用内存是1G,然而我并没有这个报错,因为我的虚拟机是8G,我也就懒得改默认的内存占用了,
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# logs/hs_err_pid22863.log
[root@VM_0_2_centos bin]#
修改ES启动时占用的内存
cd 到es目录修改 ./config/jvm.options:
vim ./config/jvm.options
修改该内容(可根据实际情况进行修改下面是512):
-Xms512m
-Xmx512m
再次启动出现如下错误:
[2019-06-21T16:20:03,039][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.1.1.jar:7.1.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.1.1.jar:7.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.1.1.jar:7.1.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:102) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:169) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:325) ~[elasticsearch-7.1.1.jar:7.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.1.1.jar:7.1.1]
... 6 more
[root@VM_0_2_centos elasticsearch-7.1.1]#
ES 安装启动报错是很正常的事,不要慌都非常好解决,如果不会百度一下也就会了!
上面的错是说:这是不能使用root用户操作,添加一个其他的用户再试试
ES从5.几之后便不能用root用户进行启动了所以必须要建一个用户。
#新建用户
[root@VM_0_2_centos elasticsearch-7.1.1]# adduser es
#为用户设置密码
[root@VM_0_2_centos elasticsearch-7.1.1]# passwd es
Changing password for user es.
#输入密码
New password:
#确认密码
Retype new password:
passwd: all authentication tokens updated successfully.
改一下es目录所属用户(下面两种方式都可以,我用的第一种):
[root@VM_0_2_centos elasticsearch-7.1.1]# chown es /usr/local/pid/elasticsearch-7.2.0/ -R
[root@192 bin]# chown -R es:es /usr/local/pid/elasticsearch-7.2.0/
vim 编辑 /etc/security/limits.conf,在末尾加上:
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
vim 编辑 vim /etc/security/limits.d/20-nproc.conf,将* 改为用户名(es):
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
es soft nproc 4096
root soft nproc unlimited
vim 编辑 /etc/sysctl.conf,在末尾加上:
vm.max_map_count = 655360
执行,使配置文件生效:
[root@VM_0_2_centos ~]# sysctl -p
kernel.printk = 5
vm.max_map_count = 655360
[root@VM_0_2_centos ~]#
登录刚才新建的es用户,并启动elasticsearch,OK
[root@VM_0_2_centos elasticsearch-7.1.1]# su es
[es@VM_0_2_centos elasticsearch-7.1.1]$ ./bin/elasticsearch
image.png
5.后台启动:
[es@VM_0_2_centos elasticsearch-7.1.1]$ ./bin/elasticsearch -d
[es@VM_0_2_centos elasticsearch-7.1.1]$
查看进程:
[es@VM_0_2_centos elasticsearch-7.1.1]$ ./bin/elasticsearch -d
[es@VM_0_2_centos elasticsearch-7.1.1]$ ps -ef|grep elasticsearch
es 18652 1 19 17:48 pts/2 00:00:00 /usr/local/java/jdk1.8.0_211/bin/java -Xms200m -Xmx200m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch-182563007296674551 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Dio.netty.allocator.type=unpooled -Des.path.home=/usr/local/elasticsearch-7.1.1 -Des.path.conf=/usr/local/elasticsearch-7.1.1/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch-7.1.1/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
es 18728 8399 0 17:48 pts/2 00:00:00 grep --color=auto elasticsearch
[es@VM_0_2_centos elasticsearch-7.1.1]$
关闭elasticsearch的话使用以下两种方式均可
暴力方式(kill的是第一排的进程号)
[esuser@192 bin]$ ps -ef|grep elasticsearch
esuser 16370 16265 0 23:47 pts/0 00:00:00 grep --color=auto elasticsearch
[esuser@192 bin]$ kill -9 16265
已杀死
温柔一点的方式(这种方式我用着不能用)
[esuser@192 bin]$ jsp
16370 jsp
16265 Elasticsearch
[esuser@192 bin]$ kill 16265
重启(如果重启不行,直接使用上面的命令启动)
sh elasticsearch -d
日常报错请参考:
https://blog.csdn.net/qq_21387171/article/details/53577115
安装IK分词器
下载elasticsearch中文分词zip压缩包(在官网下载配套的7.2版本),
通过把解压后的所有文件放在新建的文件夹里
在里面下载最新版本的与ES版本相对应的IK分词器:
https://github.com/medcl/elasticsearch-analysis-ik/releases
在ES的plugins目录下创建一个名字为IK的文件夹,把分词器解压出来的东西全部放在IK文件夹下。分词器目录如下:
image.png
3,好了,接下来。重新ES(不要忘记了切换用户)
image.png
在ES的启动日志里会看到如上图,说明IK分词器安装成功。
kibana7.2安装
下载链接地址:
https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-linux-x86_64.tar.gz
授权(没有授权报错Error: EACCES: permission denied, open '/opt/software/kibana/optimize/.babelcache.json')
[root@192 bin]# chown -R esuser:esgroup /opt/software/kibana
[root@192 bin]# chown -R es:es /usr/local/pid/kibana
解压后,修改如下配置文件:
在第2行放开注释
第7行放开注释,并改为server.host: "0.0.0.0"
第28行(改成你的虚拟机IP)elasticsearch.hosts: ["http://192.168.69.110:9200"]
切换用户
[root@192 bin]# su es
启动(很慢,有点卡)./kibana9(不推荐,推荐下面的方式),最好先重启一下elastic search
推荐启动方式(这样控制台可以继续敲命令(ctr+c回到命令行模式)并且把日志文件放在bin目录了)
[esuser@192 bin]$ nohup ./kibana &
关闭使用(注意是node)
[esuser@localhost bin]$ ps -ef | grep node
返回的进程第一行的进程号可以用于关闭,比如
[esuser@192 bin]$ kill -9 8558
此时访问http://你的ip:5601/ (没有启动成功会提示Kibana server is not ready yet (服务器未启动好,yml配置错误))如图
image.png
注意:其实kibana配置文件的配置,这次这是和之前写过的一篇博客的配置不一样,网上有好多版本,具体等心情好了、有时间了、天气凉快了再看看
网友评论