elasticsearch7.6.2+kibana+xpack+metricbeat安装教程

以前用的6.1.4集群,用了两年,还是感觉有很多不完善的地方,现在升级为7.6.2,将安装过程记录下来,以防止后面用到
以下内容默认大家有es与linux的基础,且部分内容我直接从网上现有博客中摘抄的,我搭建完了,懒得再敲一遍

1. elsaticsearch安装

7.x后es默认集成了JDK,建议7.x搭配jdk11,所以本地如果没有装jdk11的话,就要启用es默认自带的jdk。修改/bin目录下elasticsearch-env 文件。 如果自己有安装jdk11,则可删除es包中的 jdk文件夹,节约点空间,也可以选择下载不带jdk的es。这些都是废话。
修改前:

 39 if [ ! -z "$JAVA_HOME" ]; then
 40   JAVA="$JAVA_HOME/bin/java"
 41   JAVA_TYPE="JAVA_HOME"
 42 else
 43   if [ "$(uname -s)" = "Darwin" ]; then
 44     # macOS has a different structure
 45     JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
 46   else
 47     JAVA="$ES_HOME/jdk/bin/java"
 48   fi
 49   JAVA_TYPE="bundled jdk"
 50 fi

修改后:

 if [ "$(uname -s)" = "Darwin" ]; then
    # macOS has a different structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled jdk"

在修改具体的配置之前,大家应该对生产环境的需求有所规划,比如多少个节点,要用到多少内存,cpu等。节点中准备几个数据节点,几个主分片几个副本等等。我这边是10个数据节点,2个主节点为例。

上传安装包,解压,重命名,传送到所有节点,基础操作后:

配置SSL安全认证证书(在主节点做就可以了):

 ./bin/elasticsearch-certutil ca   #证书名是elastic-stack-ca.p12,建议保存在config文件夹下
 ./bin/elasticsearch-certutil cert --ca /home/elasticsearch/config/elastic-stack-ca.p12 #生成客户端证书,同样保存在config文件夹下   

在生成证书的过程都会要求输入密码,注意密码要一致。
将生成出来的elastic-certificates.p12向各个节点的config文件夹传一份
所有节点将密码保存

./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

开始编辑es的配置文件elasticsearch.yml,数据节点实际上就是node的角色不同,其它一样

#这是主节点的配置
cluster.name: ai-es
node.name: centos60 #这里可以随意取,各节点名称不一致就行
node.master: true
node.data: false
node.ingest: false
path.data: /home/elasticsearch/data
path.logs: /home/elasticsearch/logs
http.port: 9200
bootstrap.memory_lock: true			#锁定内存
bootstrap.system_call_filter: false #禁用内存交换
network.host: 0.0.0.0
cluster.initial_master_nodes: ["192.168.10.60","192.168.10.61"]   #这里就是可以成为主节点的集合
discovery.zen.ping.unicast.hosts: ["192.168.10.60", "192.168.10.61", "192.168.10.62"] #所有节点
discovery.zen.minimum_master_nodes: 2 #防止脑裂问题
discovery.zen.ping_timeout: 60s # 心跳超时时间 
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "Authorization,X-Requested-With,Content-Length,Content-Type"
path.repo: ["/home/snapshot"] #快照存储需求,不用的可以注释了
search.max_buckets: 2000000
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /home/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /home/elasticsearch/config/elastic-certificates.p12

编辑jvm.options,将 -Xms -Xmx 保持一致,保持为物理内存一半,但是不要超过32G。也就是建议虚拟机内存不超过64G。真有钱超过了就分配32给es,其余的给Lucene,这样也是可以提高性能的。

修改系统配置,改完了貌似要重启

vim /etc/security/limits.conf

* soft nofile 1024000
* hard nofile 1024000
* soft nproc 1024000
* hard nproc 1024000
* soft stack 1024000
* soft memlock unlimited
* hard memlock unlimited

vim /etc/sysctl.conf
vm.max_map_count = 655360

es不能以ROOT用户启动,所以新建用户组,新建用户,且将elasticsearch文件夹里面的所有文件所有者都改成你新建用户的。

chown -R elastic:elasticsearch /home/elasticsearch*/    

所有节点启动es。待启动完成后,随便访问一个节点的9200,会发现要输入用户名与密码。注意防火墙的状态,9200,9300的端口要开的,kibana所在的5601也要开。

开始为各用户生成密码

 ./bin/elasticsearch-setup-passwords auto #auto:自动生成,你保存好接下来打印出来的用户名与密码就行 interactive 手动设置每个用户的密码 

至此,es安装完成。

2. kibana安装

上传安装包,解压,重命名。编辑配置文件 kibana/config/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.10.200.115:9200"] #自己的es地址
kibana.index: ".kibana"
i18n.locale: "zh-CN"  #默认语言设置为中文


elasticsearch.username: "kibana" 
elasticsearch.password: "wk4z9b2BBKaA9n6DrHlH"

xpack.reporting.capture.browser.chromium.disableSandbox: true
xpack.reporting.capture.browser.chromium.proxy.enabled: false
xpack.reporting.enabled: false

logging.quiet: true #为了不输出太空日志

#logging.dest: /home/zax/kibana/kibana.log  打印的日志地址,看情况吧,也可以在启动时指定位置
xpack.encryptedSavedObjects.encryptionKey: encryptedSavedObjects12345678909876543210
xpack.security.encryptionKey: encryptionKeysecurity12345678909876543210
xpack.reporting.encryptionKey: encryptionKeyreporting12345678909876543210

三个大长串配置,为啥要加,好像比较绕,加是为了不报错。有兴趣的可以看看关于kibana的配置,另外es的密码也可以不使用明文存在配置文件里。可以用密码本的形式。在bin目录有个可执行文件

./bin/kibana-keystore create  #创建密码本
./bin/kibana-keystore add xxx  #用户名,输入这个它马上就会让你输密码了,随后这组数据就会保存在密码本里用于访问es。

相应的 ,也有 list 命令 , remove 命令等等,详情见帮助文档。
启动kibana nohup ./bin/kibana &
如果有小伙伴在本地虚拟机尝试启动kibana时,在启动的最后一步会提示,内容大致是要更新很多模块,耗时比较长,然后还会打印要更新两个包。大致格式是 XXX XXX next xxx npm update,这个不用管。重点是初始化kibana时会使用大量cpu与内存资源,虚拟机配置不高就会等待时间很长,或者oom,最后显示进程已退出。我被这个坑了半天,小伙伴们注意下。

3. xpack配置与破解

此举仅供学习,希望大家有版权意识
找个地方新建两个类XPackBuild.javaLicenseVerifier.java

package org.elasticsearch.xpack.core;

import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.io.PathUtils;

import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;

public class XPackBuild {

    public static final XPackBuild CURRENT;

    static {
        CURRENT = new XPackBuild("Unknown", "Unknown");
    }


    @SuppressForbidden(reason = "looks up path of xpack.jar directly")
    static Path getElasticsearchCodebase() {
        URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
        try {
            return PathUtils.get(url.toURI());
        } catch (URISyntaxException bogus) {
            throw new RuntimeException(bogus);
        }
    }

    private String shortHash;
    private String date;

    XPackBuild(String shortHash, String date) {
        this.shortHash = shortHash;
        this.date = date;
    }

    public String shortHash() {
        return shortHash;
    }

    public String date() {
        return date;
    }
}

package org.elasticsearch.license;

public class LicenseVerifier{
    public static boolean verifyLicense(final License license, byte[] publicKeyData) {
        return true;
    }

    public static boolean verifyLicense(final License license) {
        return true;
    }
}

编译下

javac -cp "/home/elasticsearch/lib/elasticsearch-7.6.2.jar:/home/elasticsearch/lib/lucene-core-8.4.0.jar:/home/elasticsearch/modules/x-pack-core/x-pack-core-7.6.2.jar" LicenseVerifier.java 

javac -cp "/home/elasticsearch/lib/elasticsearch-7.6.2.jar:/home/elasticsearch/lib/lucene-core-8.4.0.jar:/home/elasticsearch/modules/x-pack-core/x-pack-core-7.6.2.jar:/home/elasticsearch/lib/elasticsearch-core-7.6.2.jar" XPackBuild.java

得到两个class,将两个class替换掉elasticsearch/modules/x-pack-core/x-pack-core-7.6.2.jar里面的calss,路径分别为x-pack-core-7.6.2.jar\org\elasticsearch\xpack\core\,x-pack-core-7.6.2.jar\org\elasticsearch\license\,再将这个jar替换掉所有es节点的该jar(理论上应该只用替换kibana节点连接的那个jar就行,我是直接所有节点都替换了)。
es证书申请登记信息,重要的是邮件地址,收到邮件后根据提示下载证书。打开,将 “basic” 改为 “platinum” ,“expiry_date_in_millis” 这个时间戳改大点。保存。
然后打开kibana,设置里有个许可管理,把你的证书放进去就ok

在这里插入图片描述

4. metricbeat配置

在生产集群上设置修改以下两项:

PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true,
    "xpack.monitoring.elasticsearch.collection.enabled": false
  }
}

每个节点上安装metricbeat,下的慢的可以自己去官网下对应版本,复制链接,用迅雷下

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.6.2-x86_64.rpm
sudo rpm -vi metricbeat-7.6.2-x86_64.rpm

在每个Elasticsearch节点上的Metricbeat中启用Elasticsearch X-Pack模块

metricbeat modules enable elasticsearch-xpack

修改配置,主要是两个:/etc/metricbeat/metricbeat.yml/etc/metricbeat/modules.d/elasticsearch-xpack.yml,注意用户名与密码配置。在此由于metricbeat跟es在同台服务器,所以地址用默认的就好了。实际情况下会出现一个是监控集群,这种情况下设置是不一样的,我没有实际尝试,所以就不说了。

每个节点上都启动 metricbeat

sudo service metricbeat start  # 相应的还有 status  stop  restart  reload  可以通过help命令查看

大功告成
在这里插入图片描述
在这里插入图片描述

重要提示: 上述的3 还是 4 ,有一步操作前要把 es设置里的 xpack.security.enabled: true 改为flase,但是具体在哪我忘记了。。如果破解不成功,或者metricbeat 启动不了,或者metricbeat 启动无数据,可以试试这步,应该是在更新许可的时候要做这步,做完了又改回来。这两天弄这个踩坑太多了。暂时不想再回想了。哪位小伙伴知道也可以留言。
还是重要提示------ 这次先更新安装,后续的相关操作,比如垃圾回收器的详解,快照操作,java api交互,跨集群同步,监控预警等等,等我弄明白了再分享给大家。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装和部署ElasticsearchKibana,你可以按照以下步骤进行操作: 1. 首先,你需要Elasticsearch官网下载Elasticsearch安装包。你可以使用以下命令来下载最新版本的Elasticsearch安装包: ``` wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz ``` 2. 下载完成后,解压缩安装包。你可以使用以下命令来解压缩文件: ``` tar -xzf elasticsearch-6.7.0.tar.gz ``` 3. 进入解压缩后的目录: ``` cd elasticsearch-6.7.0 ``` 4. 接下来,你需要修改Elasticsearch的配置文件。你可以使用任何文本编辑器打开`config/elasticsearch.yml`文件,并进行必要的配置更改。例如,你可以修改绑定的IP地址、端口号等。 5. 完成配置后,你可以启动Elasticsearch。使用以下命令启动Elasticsearch: ``` ./bin/elasticsearch ``` 6. 启动后,你可以访问`http://localhost:9200`来验证Elasticsearch是否成功启动。你应该能够看到Elasticsearch的信息。 7. 现在,你可以继续安装和部署Kibana。从Kibana官网下载Kibana安装包。你可以使用以下命令来下载最新版本的Kibana安装包: ``` wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz ``` 8. 下载完成后,解压缩Kibana安装包。你可以使用以下命令来解压缩文件: ``` tar -xzf kibana-6.7.0-linux-x86_64.tar.gz ``` 9. 进入解压缩后的目录: ``` cd kibana-6.7.0-linux-x86_64 ``` 10. 接下来,你需要修改Kibana的配置文件。你可以使用任何文本编辑器打开`config/kibana.yml`文件,并进行必要的配置更改。例如,你可以修改Elasticsearch的连接地址、端口号等。 11. 完成配置后,你可以启动Kibana。使用以下命令启动Kibana: ``` ./bin/kibana ``` 12. 启动后,你可以访问`http://localhost:5601`来访问Kibana的Web界面。在Kibana中,你可以进行数据可视化和分析等操作。 通过按照以上步骤,你可以成功安装和部署ElasticsearchKibana。记得根据你的具体需求进行配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值