Bootstrap

kibana集群聚合远程集群

kibana集群聚合

在这里插入图片描述

把多套集群的es聚集在一个kibana中展示

原理

  • 通过kibana调用接口,连接集群的管理端口transport.host/port(一个或多个集群)

方法:远程集群

参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.14/modules-remote-clusters.html
准备:
  • 所有集群保证网络可以互通
  • 在es集群中查看elasticsearch.yml中的 transport.host,transport.port的参数。
图形化创建

Stack Management---->远程集群----->添加即可(种子节点为transport.ip:9300默认)

在这里插入图片描述

开发者工具创建
添加远程集群:cluster_one,cluster_two

PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
      ##自己定义的集群的名字
        "cluster_one": {
          "seeds": [
            ##transport.host的ip及端口
            "10.251.68.249:9300"
          ]
        },
        "cluster_two": {
          "seeds": [
            "10.11.5.147:9300"
          ]
        }
      }
    }
  }
}
  • 可以加的参数
transport.host:host地址,默认network.host
transport.port:端口号,默认9300-9400
transport.publish_port:对外公布端口,默认于transport相同
transport.bind_host:service绑定的地址,默认是transport.bind_host或transport.host
transport.publish_host:集群通信地址默认transport.bind_host或transport.host有且只有一个
transport.connect_timeout:连接超时时间
transport.compress:是否在传输时进行压缩
transport.ping_schedule:ping消息间隔时间,用来确认transport是否可用,默认是5s,可用设置为-1来代表禁止ping
#例如
PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_one": {
          "seeds": [
            "10.251.68.249:9300"
          ],
         "transport.ping_schedule": "1s"
        },
        "cluster_two": {
          "mode": "sniff",
          "seeds": [
            "10.11.5.147:9300"
          ],
          "transport.ping_schedule": "1s",
          "skip_unavailable": true
        }
      }
    }
  }
}
查询远程集群及参数
#查询全部远程集群及详细配置
PUT _cluster/settings
#查询单个集群的索引内容
GET nginx_access_2022.09.23/_search
删除远程集群
PUT _cluster/settings
{
  "persistent": {
    "search": {
      "remote": {
        "cluster_one": {
          "seeds": null 
        }
      }
    }
  }
}
报错小帖士1
#删除时报错
Cannot configure setting [cluster.remote.cluster_one.transport.ping_schedule] if remote cluster is not enabled.
  • 解决办法
#看远程集群的详细配置参数
GET _cluster/settings
#如
"cluster_one" : {
          "mode" : "sniff",
          "skip_unavailable" : "false",
          "transport" : {
            "ping_schedule" : "30s"
          },
          "node_connections" : "3",
          "seeds" : [
            "10.251.54.200:9300"
          ]
        }
        
#删除的配置信息比它的配置少所以删不掉把多的配置也给设置为null如:
PUT _cluster/settings
{
    "persistent":{
        "cluster":{
            "remote":{
                "cluster_one":{
                    "mode":null,
                    "node_connections":null,
                    "seeds":null,
                    "skip_unavailable":null,
                    "transport.ping_schedule":null
                }
            }
        }
    }
}
错误小贴士2
##远程集群删不掉
GET _cluster/settings
查看时发现在最低部有一行配置
“cluster.routing.allocation.awareness.attributes”
  • 解决把它配置设为null
PUT _cluster/settings
{
“persistent”: {
“cluster.routing.allocation.awareness.attributes”: null
}
}
建索引模式

stack Management. -> 索引模式 -> 创建索引模式 (可以创建例如:*:nginx*)

直接创建索引模式索引名称为:远程集群名:索引
可以使用*匹配多个

在这里插入图片描述

;