please check that any required plugins are installed, or check the breaking changes documentation f 2022-01-26 08:52:58

今天在部署es集群的时候,发现它报了下面这样的一个错误:

"Caused by: java.lang.IllegalArgumentException: unknown setting [discovery.send_hosts] please check that any required plugins are installed, or check the breaking changes documentation for removed settings",
"at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:532) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:477) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:448) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:419) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.common.settings.SettingsModule.<init>(SettingsModule.java:149) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.node.Node.<init>(Node.java:356) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.node.Node.<init>(Node.java:257) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:221) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:221) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.6.2.jar:7.6.2]",
"at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170) ~[elasticsearch-7.6.2.jar:7.6.2]",

开始的时候,我以为是JDK的问题,当我在linux上面重新安装了一个JDK之后,发现还是没有解决根本的问题,错误依然存在。后来,我就开始查看自己写的快速部署ES集群的脚本,集群shell脚本如下:

for port in $(seq 1 3); \
do \
mkdir -p /mydata/elasticsearch/master-${port}/config
mkdir -p /mydata/elasticsearch/master-${port}/data
chmod -R 777 /mydata/elasticsearch/master-${port}
cat <<EOF> /mydata/elasticsearch/master-${port}/config/elasticsearch.yml
cluster.name: my-es
node.name: es-master-${port}
node.master: true 
node.data: false 
network.host: 0.0.0.0
http.host: 0.0.0.0 
http.port: 920${port}
transport.tcp.port: 930${port}
discovery.zen.ping_timeout: 10s
discovery.send_hosts: ["172.18.12.21:9301","172.18.12.22:9302","172.18.12.23:9303"]
cluster.initial_master_nodes: ["172.18.12.21"]
docker run --name elasticsearch-node-${port} \
 -p 920${port}:920${port} -p 930${port}:930${port} \
 --network=mynet --ip 172.18.12.2${port} \
 -e ES_JAVA_OPTS="-Xms300m -Xmx300m" \
 -v /mydata/elasticsearch/master-${port}/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /mydata/elasticsearch/master-${port}/plugins:/usr/share/elasticsearch/plugins \
 --privileged=true \
 -d elasticsearch:7.6.2

发现脚本里面有一个discovery.send_hosts,这个是去设置集群节点IP的,可是错误里面显示又没有这个设置,然后百度了一下,我将discovery.send_hosts替换成了discovery.zen.ping.unicast.hosts,修改之后的脚本如下:

for port in $(seq 1 3); \
do \
mkdir -p /mydata/elasticsearch/master-${port}/config
mkdir -p /mydata/elasticsearch/master-${port}/data
chmod -R 777 /mydata/elasticsearch/master-${port}
cat <<EOF> /mydata/elasticsearch/master-${port}/config/elasticsearch.yml
cluster.name: my-es
node.name: es-master-${port}
node.master: true 
node.data: false 
network.host: 0.0.0.0
http.host: 0.0.0.0 
http.port: 920${port}
transport.tcp.port: 930${port}
discovery.zen.ping_timeout: 10s
discovery.zen.ping.unicast.hosts: ["172.18.12.21:9301","172.18.12.22:9302","172.18.12.23:9303"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: ["172.18.12.21"]
docker run --name elasticsearch-node-${port} \
 -p 920${port}:920${port} -p 930${port}:930${port} \
 --network=mynet --ip 172.18.12.2${port} \
 -e ES_JAVA_OPTS="-Xms300m -Xmx300m" \
 -v /mydata/elasticsearch/master-${port}/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /mydata/elasticsearch/master-${port}/plugins:/usr/share/elasticsearch/plugins \
 --privileged=true \
 -d elasticsearch:7.6.2

然后我再运行这个脚本,发现成功启动了ES集群。

discovery.seed_hosts是一种新的配置方式,
discovery.zen.ping.unicast.hosts是一种过时的配置方式,可以在 elasticsearch.yml 配置文件中使用discovery.zen.ping.unicast.hosts静态设置设置主机列表。
discovery.zen.ping.unicast.hosts: [“host1”, “host2”]
具体的值是一个主机数组或逗号分隔的字符串。
因为我的shell脚本里面配置的都是写在elasticsearch.yml这个配置文件中,是静态设置的主机列表,故需要使用discovery.zen.ping.unicast.hosts来进行设置。

在调试的过程中,可能需要频繁的创建docker容器或者删除docker容器,现在将调试命令贡献给大家,大家可以按需使用:

查询docker运行日志:
docker logs 容器id

批量停止es集群容器:
docker stop $(docker ps -a | grep elasticsearch-node-* | awk ‘{ print $1}’)

批量删除es集群容器:
docker rm $(docker ps -a | grep elasticsearch-node-* | awk ‘{ print $1}’)

check_mk插件 This repository holds a copy of LGB check_mk plugins. Each sub-directory contains one plugin including a README with installation instructions. I uploaded the mk packages to http://exchange.check-mk.org/ Fork the project Commit and push until you are happy with your contribution Send a pull request with a description of your changes Wait for merge ;-) 自定义分析器 虽然Elasticsearch内置了一系列的分析器,但是真正的强大之处在于定制你自己的分析器。你可以通过在配置文件中组合字符过滤器,分词器和表征过滤器,来满足特定数据的需求。 分析器  是三个顺序执行的组件的结合(字符过滤器,分词器,表征过滤器)。 字符过滤器     字符过滤器是让字符串在被分词前变得更加“整洁”。例如,如果我们的文    本是HTML格式,它可能会 ubuntu环境下使用apt-get install elasticsearch安装es,一路掉坑,做个简单记录,避免再次踩坑。systemctl start elasticsearch 方式启动,通过 journalctl -xe 和 查看 elasticsearch日志进行排错。当前的elasticserch版本是8.6,日志默认位置在/var/log/elasticsearch/elasticsearch.log.优先使用。搜索答案,其次参考网络其他答案。 下载汉语分词器插件:elasticsearch-analysis-ik 代码地址:https://github.com/medcl/elasticsearch-analysis-ik 命令行安装: ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.0/elasticsearch-analysis Docker elasticsearch 报错 unknown setting [cluster.initial_master_nodes] 的解决办法 在 根目录 docker-compose.yml 文件中找到并删除行 - cluster.initial_master_nodes=laradock-node elasticsearch: build: ./elasticsearch volumes: - elasticsearch:/usr/share/ela java.lang.RuntimeException: java.lang.IllegalArgumentException: unknown setting [mode] please check that any required plugins are installed, or check the breaking changes documentation for removed settings at com.alibaba.otter.c 升级原因:kibana 升级至6.4 无法正常启动连接 6.2 版本es集群数据; x-pack 插件错误: [2018-09-19×××7:12:54,555][ERROR][o.e.b.Bootstrap ] Exception java.lang.IllegalArgumentException: property [name] ... 1.报错:此时不应有 \java\jdk1.8.0_20 2.报错:‘elasticsearch.bat’ 不是内部或外部命令,也不是可运行的程序或批处理文件 3报错unknown setting [node.master] please check that any required plugins are installed, or check the breaking changes documentation Elasticsearch问题解决:unknown setting [xpack.security.transport.ssl.enabled] please check that any required plugins are installed 今天有个小伙伴说Elasticsearch从高版本的java客户端换成原生的TransportClient后,连不上ES集群了,我查看并测试了这个问题。 一、查看现有集群信息 我使用他提供的ES集群链接信息,在服务器上看了一下集群的基本信息,发现es是7.10 ELK是由Elasticsearch、Logstash、Kiban三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。 这几天在做openapi中的一些数据推送,测试环境已经通过,到压测环境java连接es时候报异常:xception in thread "main" NoNodeAvailableException[None of the configured nodes are available...... 搜了一下网上的解决方案. 1、代码配置ip,端口号2、es集群起了clustername与集群配置不一... 手把手教学:使用Elastic search和Kibana进行数据探索(Python语言) https://www.evget.com/article/2017/7/20/26615.html Kibana基本使用 http://blog.csdn.net/ming_311/article/details/50619859 Elasticsearch索引 1、问题出现环境,OS版本:CentOS-7-x86_64-Minimal-1708;ES版本:elasticsearch-6.2.2。 1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量 ul... 摘要:通过JAVA API操作elasticsearch5.6.1的连接及连接过程中所遇到的问题,问题分析,问题解决。作为一个ES的JAVA操作的新生参考与记录。0. 官方文档JAVA操作ES的文档: https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html 如果安装了xpack一定要查看这个 今天在部署es集群的时候,发现它报了下面这样的一个错误: uncaught exception in thread [main] java.lang.IllegalArgumentException: unknown setting [discovery.send_hosts] please check that any required plugins are installed, or check the breaking changes documentation for removed settin