CentOS7按装ES 7.2 和 kibana

2019-07-22  本文已影响0人  李小二的倔强

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配置文件的配置,这次这是和之前写过的一篇博客的配置不一样,网上有好多版本,具体等心情好了、有时间了、天气凉快了再看看

上一篇下一篇

猜你喜欢

热点阅读