ES集群,kibana和es-head安装搭建

ES集群搭建

安装环境

需要至少准备两台服务器,并安装JDK环境。

我这里用了2台服务器虚拟机搭建的集群测试。

1.安装ES

下载ES的安装包,我这里用的是 elasticsearch-7.6.1-linux-x86_64.tar.gz

把安装包通过工具拷贝到要安装的目录下,执行下列命令解压:

tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz

进入config配置目录下,修改elasticsearch.yml配置文件

cd elasticsearch-7.6.1/config/
vim elasticsearch.yml

修改内容如下:

#集群名称,每台节点的名称必须相同
cluster.name: elasticsearch

#节点名称,每台不能一样
node.name: node01
#是否可被选举为主节点
node.master: true
#是否可保存数据
node.data: true

#节点IP
network.host: 192.168.187.131
#ES访问端口号
http.port: 9200
#数据保存路径
path.data: /tools/elasticsearch-7.6.1/data
#日志保存路径
path.logs: /tools/elasticsearch-7.6.1/logs

#锁住物理内存,不使用swap内存,有swap内存的可以开启此项
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true
# 为了避免ES脑裂,集群节点数最少为 半数+1
discovery.zen.minimum_master_nodes: 2
#自动发现拼其他节点超时时间
discovery.zen.ping_timeout: 3s
#设置集群的初始节点列表
discovery.zen.ping.unicast.hosts: ["192.168.187.131","192.168.187.132"]
#是否支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

除了节点名称,节点IP设置不一样,其他服务器节点的配置都相同,直接复制配置文件即可。

修改其他配置:

  • jvm 内存不足,修改内存大小
vim elasticsearch/config/jvm.options

-Xms512m
-Xmx512m
  • 操作系统调优,在/etc/sysctl.conf添加如下内容
#系统最大打开文件描述符数
fs.file-max=655360
#限制一个进程拥有虚拟内存区域的大小
vm.max_map_count=655360

sysctl -p生效

  • 修改vim /etc/security/limits.conf文件

    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 65536
    * hard nproc 65536
    * soft memlock unlimited
    * hard memlock unlimited
    
  • 修改/etc/security/limits.d/90-nproc.conf文件

    *          soft    nproc     1024     修改前
    *          soft    nproc     65536   修改后
    
  • ES的启动不能使用root用户,要创建一个普通用户,并把ES文件权限赋予它

# 创建用户组
groupadd es
# 创建用户并添加至用户组
useradd es -g es 
# 更改用户密码(输入 123123)
passwd es
#赋予权限
chown -R es:123456 elasticsearch-7.6.1
chmod -R 777 elasticsearch-7.6.1
  • 切换到es用户下elasticsearch-7.6.1/bin目录下,启动
su es

./elasticsearch
#后台启动
./elasticsearch -d
  • 查看启动
netstat -tlnp | egrep '9200|9300'
service elasticsearch status
jps
  • 启动成功可访问

其他节点ES也做如上修改即可


2.安装kibana

​ Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

  Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

  设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。

  • 下载kibana的安装包kibana-7.6.1-linux-x86_64.tar.gz,注意kibana的版本要和安装的ES对应,只需要一台主节点安装即可

​ 和ES放到一个目录下安装,执行解压命令

tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz
  • 编辑文件config/kibana.yml ,配置属性,做如下修改
#本机IP
server.host: "192.168.187.131"
#kibana访问端口号
server.port: 5601
#连接的ES地址
elasticsearch.hosts: ["http://192.168.187.131:9200"]

#编码格式
i18n.locale: "zh-CN"

#kibana的随机密匙设置
xpack.reporting.encryptionKey: "es"
xpack.security.encryptionKey: "122333444455555666666777777788888888"
xpack.encryptedSavedObjects.encryptionKey: "122333444455555666666777777788888888"
  • 先启动ES之后,在启动kibana

    #切换到kibana的bin目录下 执行命令
    nohup ./kibana &
    #查看实时日志,在bin目录下
    tail -f  nohup.out
    #停止运行, 查到进程号,然后杀死
    netstat -anltp|grep 5601
    
  • kibana访问 ip:5601,加载成功如下

3.安装es-head

elasticsearch-head 是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。你可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp。

es-head主要有三个方面的操作:

  1. 显示集群的拓扑,并且能够执行索引和节点级别操作
  2. 搜索接口能够查询集群中原始json或表格格式的检索数据
  3. 能够快速访问并显示集群的状态
  4. 有一个输入窗口,允许任意调用RESTful API。这个接口包含几个选项,可以组合在一起以产生有趣的结果;
    1. 请求方法(get、put、post、delete),查询json数据,节点和路径
    2. 支持JSON验证器
    3. 支持重复请求计时器
    4. 支持使用javascript表达式变换结果
    5. 收集结果的能力随着时间的推移(使用定时器),或比较的结果
    6. 能力图表转换后的结果在一个简单的条形图(包括时间序列)
  • 下载es-head插件

    wget  https://github.com/mobz/elasticsearch-head/archive/master.zip
    
  • 安装node.js

    ##下载
    wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
    ##解压压缩包
    tar -zxvf node-v4.4.7-linux-x64.tar.gz
    ##配置环境变量
    vim /etc/profile
    export NODE_HOME=/tools/elasticsearch-7.6.1/elasticsearch-head/node-v4.4.7-linux-x64
    export PATH=$PATH:$NODE_HOME/bin
    export NODE_PATH=$NODE_HOME/lib/node_modules
    ##让配置生效
    source /etc/profile
    
  • 安装grunt

    grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动

    ##进入到插件目录下面
    cd /tools/elasticsearch-7.6.1/elasticsearch-head/elasticsearch-head-master
    ##下载安装grunt
    npm install -g grunt-cli
    ##检测是否安装成功,如果执行命令后出现版本号就表明成功
    grunt -version
    #修改 elasticsearch-head/Gruntfile.js,添加host正则匹配项
    vim Gruntfile.js
    connect: {
        server: {
            options: {
                port: 9100,
                hostname: '*'
                base: '.',
                keepalive: true,
            }
          }
        }
    #修改 elasticsearch-head/_site/app.js,修改es的链接地址(在4388行),改为本机ES的IP
     var ui = app.ns("ui");
            var services = app.ns("services");
    
            app.App = ui.AbstractWidget.extend({
                    defaults: {
                            base_uri: null
                    },
                    init: function(parent) {
                            this._super();
                            this.prefs = services.Preferences.instance();
                            this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.187.131:9200";
    #安装npm的服务,然后再head目录下面启动插件
    npm install
    grunt server
    

  • 启动所有的ES集群后,在启动es-head后,可以查看到

posted on 2020-11-26 19:33  有梦可有为  阅读(778)  评论(0编辑  收藏  举报