美文网首页
CentOS7按装ES 7.2 和 kibana

CentOS7按装ES 7.2 和 kibana

作者: 李小二的倔强 | 来源:发表于2019-07-22 16:48 被阅读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配置文件的配置,这次这是和之前写过的一篇博客的配置不一样,网上有好多版本,具体等心情好了、有时间了、天气凉快了再看看

    相关文章

      网友评论

          本文标题:CentOS7按装ES 7.2 和 kibana

          本文链接:https://www.haomeiwen.com/subject/vchwlctx.html