zoukankan      html  css  js  c++  java
  • 安装elasticsearch(centos7)

    云主机上需设置root密码

    注:目前阿里云为7.4

    sudo passwd root 回车后出入密码两次

    jdk11页面

    https://www.oracle.com/technetwork/java/javase/downloads/index.html
    https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

    安装jdk

    mkdir /opt/downloads

    jdk11
    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads http://download.oracle.com/otn-pub/java/jdk/11.0.2+9/f51449fcd52f4d52b93a989c5c56ed3c/jdk-11.0.2_linux-x64_bin.rpm

    rpm -ivh /opt/downloads/jdk-11.0.2_linux-x64_bin.rpm

    yum install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64 

    jdk1.8

    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm

    rpm -ivh /opt/downloads/jdk-8u201-linux-x64.rpm

    yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

    查看是否安装成功

    java -version

    安装elasticsearch

    下载和安装前切换用户,root用户无法执行es

    cat /etc/passwd 查看所有用户的列表

    cat /etc/group 查看用户组

    groupadd elasticsearch
    userdel -r elasticsearch
    useradd -s /bin/bash -g elasticsearch elasticsearch

    添加权限

    vim /etc/sudoers

    root下添加 elasticsearch ALL=(ALL) ALL

    :x!强制保存

    另:避免输密码可以用 elasticsearch ALL=(ALL) NOPASSWD: ALL

    passwd elasticsearch *****   设置你的密码

    sudo chown -R elasticsearch /opt/downloads;sudo chgrp -R elasticsearch /opt/downloads;sudo chown -R elasticsearch /var/lib/rpm;sudo chgrp -R elasticsearch /var/lib/rpm;

    sudo chown -R elasticsearch /opt/downloads/elasticsearch-7.5.0-x86_64.rpm;sudo chgrp -R elasticsearch /opt/downloads/elasticsearch-7.5.0-x86_64.rpm;

    su elasticsearch

    https://www.elastic.co/cn/downloads/elasticsearch

    cd  /opt/downloads
    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-x86_64.rpm
    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz

    sudo rpm -ivh /opt/downloads/elasticsearch-7.5.0-x86_64.rpm

    卸载sudo rpm -e elasticsearch

    配置elasticsearch

    vim /etc/elasticsearch/elasticsearch.yml
    修改network.host的值
    network.host: 192.168.x.x 自身ip,限制为内网访问
    network.host: 0.0.0.0 也可以不限制ip
    http.port: 9200

    添加action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*

    取消注释 node.name: node-1 

    取消注释 bootstrap.memory_lock: true

    修改cluster.initial_master_nodes: ["node-1"]

    若是单机版加入discovery.type: single-node

     如果要安装xpack需要添加

    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true

    # ======================== Elasticsearch Configuration =========================
    #
    # NOTE: Elasticsearch comes with reasonable defaults for most settings.
    #       Before you set out to tweak and tune the configuration, make sure you
    #       understand what are you trying to accomplish and the consequences.
    #
    # The primary way of configuring a node is via this file. This template lists
    # the most important settings you may want to configure for a production cluster.
    #
    # Please consult the documentation for further information on configuration options:
    # https://www.elastic.co/guide/en/elasticsearch/reference/index.html
    #
    # ---------------------------------- Cluster -----------------------------------
    #
    # Use a descriptive name for your cluster:
    #
    cluster.name: elasticsearch-cluster
    #
    # ------------------------------------ Node ------------------------------------
    #
    # Use a descriptive name for the node:
    #
    node.name: node-1
    #
    # Add custom attributes to the node:
    #
    #node.attr.rack: r1
    #
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #
    path.data: /var/lib/elasticsearch
    #
    # Path to log files:
    #
    path.logs: /var/log/elasticsearch
    #
    # ----------------------------------- Memory -----------------------------------
    #
    # Lock the memory on startup:
    #
    #bootstrap.memory_lock: true
    #
    # Make sure that the heap size is set to about half the memory available
    # on the system and that the owner of the process is allowed to use this
    # limit.
    #
    # Elasticsearch performs poorly when the system is swapping the memory.
    #
    # ---------------------------------- Network -----------------------------------
    #
    # Set the bind address to a specific IP (IPv4 or IPv6):
    #
    network.host: 192.168.0.101
    #
    # Set a custom port for HTTP:
    #
    http.port: 9200
    
    transport.tcp.port: 9300
    #
    # For more information, consult the network module documentation.
    #
    # --------------------------------- Discovery ----------------------------------
    #
    # Pass an initial list of hosts to perform discovery when this node is started:
    # The default list of hosts is ["127.0.0.1", "[::1]"]
    #
    #discovery.seed_hosts: ["host1", "host2"]
    discovery.seed_hosts: ["192.168.0.101"]
    #
    # Bootstrap the cluster using an initial set of master-eligible nodes:
    #
    #cluster.initial_master_nodes: ["node-1", "node-2"]
    cluster.initial_master_nodes: ["node-1"]
    #
    # For more information, consult the discovery and cluster formation module documentation.
    #
    #
    # ---------------------------------- Gateway -----------------------------------
    #
    # Block initial recovery after a full cluster restart until N nodes are started:
    #
    #gateway.recover_after_nodes: 3
    #
    # For more information, consult the gateway module documentation.
    #
    # ---------------------------------- Various -----------------------------------
    #
    # Require explicit names when deleting indices:
    #
    #action.destructive_requires_name: true
    #
    
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
    http.cors.allow-credentials: true
    
    node.master: true
    node.data: true
    
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    #xpack.security.transport.ssl.verification_mode: certificate
    #xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    #xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
    #xpack.security.http.ssl.enabled: true
    #xpack.security.http.ssl.keystore.path: elastic-certificates.p12
    #xpack.security.http.ssl.truststore.path: elastic-certificates.p12
    #xpack.security.http.ssl.client_authentication: optional

    关闭防火墙或在防火墙设置端口穿透

    执行/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

    不需要执行 bin/elasticsearch-keystore create

    如果es是root用户安装的,文件归属于,root组和root用户,需要改变归属。

    cat /etc/passwd 查看所有用户的列表

    cat /etc/group 查看用户组

    groupadd elasticsearch
    userdel -r elasticsearch
    useradd -s /bin/bash -g elasticsearch elasticsearch

    sudo chown -R elasticsearch /usr/share/elasticsearch;sudo chgrp -R elasticsearch /usr/share/elasticsearch;sudo chown -R elasticsearch /etc/elasticsearch;sudo chgrp -R elasticsearch /etc/elasticsearch;sudo chown -R elasticsearch /etc/sysconfig/elasticsearch;sudo chgrp -R elasticsearch /etc/sysconfig/elasticsearch;sudo chown -R elasticsearch /var/log/elasticsearch;sudo chgrp -R elasticsearch /var/log/elasticsearch

    vim /usr/lib/systemd/system/elasticsearch.service 

    加入LimitMEMLOCK=infinity

    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch.service
    sudo systemctl start elasticsearch.service

    生成安全证书必须切换回root

    su

    /usr/share/elasticsearch/bin/elasticsearch-certutil ca -out elastic-stack-ca.p12 -pass ""
    /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
    回车 回车 回车
    mv /usr/share/elasticsearch/elastic-certificates.p12 /etc/elasticsearch/
    mv /usr/share/elasticsearch/elastic-stack-ca.p12 /etc/elasticsearch/
    chown -R elasticsearch:elasticsearch /etc/elasticsearch/elastic-certificates.p12
    chown -R elasticsearch:elasticsearch /etc/elasticsearch/elastic-stack-ca.p12

    将配置中的注释去掉

    #xpack.security.transport.ssl.verification_mode: certificate
    #xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    #xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

    重启

    sudo systemctl start elasticsearch.service

    日志

    sudo journalctl -u elasticsearch.service --since "30 min ago"

    测试是否正常运行
    curl http://localhost:9200/

    关闭命令
    netstat -anltp|grep 9200
    显示LISTEN xxxx/java
    kill -9 xxxx

    安装Elasticsearch-head

    先查看是否安装git
    git --version
    安装git
    yum install -y git
    卸载为
    yum remove git

    安装Elasticsearch-head
    cd /opt
    git clone git://github.com/mobz/elasticsearch-head.git

    修改配置
    vim /opt/elasticsearch-head/Gruntfile.js
    在原有的connect:server:options节点上加上hostname: '*',

    修改es配置
    vim /etc/elasticsearch/elasticsearch.yml
    network.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    安装node和npm
    查看安装最新版本命令:https://github.com/nodesource/distributions

    curl -sL https://rpm.nodesource.com/setup_12.x | bash -

    yum install -y nodejs

    查看安装的版本
    node -v
    npm -v

    cd /opt/elasticsearch

    安装grunt和grunt-cli
    sudo npm install -g grunt
    sudo npm install -g grunt-cli
    安装模块依赖
    npm install -g
    npm install grunt --save #安装grunt到模块中并保存

    后台启动head
    cd /opt/elasticsearch-head
    nohup npm run start &
    回车返回到shell

    守护进程启动

    vim /lib/systemd/system/elasticsearch-head.service

    [Unit]
    Description=Elasticsearch-head
    After=network.target syslog.target

    [Service]
    Type=simple
    WorkingDirectory=/opt/elasticsearch-head
    ExecStart=/usr/bin/npm run start
    Restart=always
    StandardOutput=syslog
    StandardError=syslog

    [Install]
    WantedBy=multi-user.target

    [Unit]
    Description=Elasticsearch-head
    After=network.target syslog.target

    [Service]
    Type=simple
    WorkingDirectory=/opt/elasticsearch-head
    ExecStart=/opt/elasticsearch-head/node_modules/grunt/bin/grunt server
    Restart=always
    StandardOutput=syslog
    StandardError=syslog

    [Install]
    WantedBy=multi-user.target

    chmod 777 /lib/systemd/system/elasticsearch-head.service

    systemctl enable elasticsearch-head.service
    systemctl daemon-reload

    运行
    systemctl start elasticsearch-head.service


    客户端浏览器打开x.x.x.x:9100
    若显示未连接修改http://y.y.y.y:9200为es服务器ip:port


    关闭
    netstat -anltp|grep 9100
    显示LISTEN xxxx/grunt
    kill -9 xxxx

    安装IK Analysis插件
    /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip
    重启es服务
    sudo systemctl restart elasticsearch.service

    守护进程启动文件浏览

    vim /usr/lib/systemd/system/elasticsearch.service

    [Unit]
    Description=Elasticsearch
    Documentation=http://www.elastic.co
    Wants=network-online.target
    After=network-online.target

    [Service]
    Type=notify
    RuntimeDirectory=elasticsearch
    PrivateTmp=true
    Environment=ES_HOME=/usr/share/elasticsearch
    Environment=ES_PATH_CONF=/etc/elasticsearch
    Environment=PID_DIR=/var/run/elasticsearch
    Environment=ES_SD_NOTIFY=true
    EnvironmentFile=-/etc/sysconfig/elasticsearch

    WorkingDirectory=/usr/share/elasticsearch

    User=elasticsearch
    Group=elasticsearch

    ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet

    # StandardOutput is configured to redirect to journalctl since
    # some error messages may be logged in standard output before
    # elasticsearch logging system is initialized. Elasticsearch
    # stores its logs in /var/log/elasticsearch and does not use
    # journalctl by default. If you also want to enable journalctl
    # logging, you can simply remove the "quiet" option from ExecStart.
    StandardOutput=journal
    StandardError=inherit

    # Specifies the maximum file descriptor number that can be opened by this process
    LimitNOFILE=65535

    # Specifies the maximum number of processes
    LimitNPROC=65535

    # Specifies the maximum size of virtual memory
    LimitAS=infinity

    # Specifies the maximum file size
    LimitFSIZE=infinity

    LimitMEMLOCK=infinity

    # Disable timeout logic and wait until process is stopped
    TimeoutStopSec=0

    # SIGTERM signal is used to stop the Java process
    KillSignal=SIGTERM

    # Send the signal only to the JVM rather than its control group
    KillMode=process

    # Java process is never killed
    SendSIGKILL=no

    # When a JVM receives a SIGTERM signal it exits with code 143
    SuccessExitStatus=143

    [Install]
    WantedBy=multi-user.target

    # Built for packages-7.5.0 (packages)

  • 相关阅读:
    call/cc 总结 | Scheme
    用call/cc合成所有的控制流结构
    词法作用域 vs 动态作用域
    数论部分第二节:埃拉托斯特尼筛法
    1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】
    C++面向对象作业1
    数论部分第一节:素数与素性测试【详解】
    基数排序与桶排序,计数排序【详解】
    计蒜客:百度的科学计算器(简单)【python神解】
    优质免费在线学习网站【自用】
  • 原文地址:https://www.cnblogs.com/wintersoft/p/10635284.html
Copyright © 2011-2022 走看看