MISSION CONTROL/Insight:插件[search-guard-7]是为Elasticsearch版本X构建的,但需要版本Y

乔伊Naor
2023-01-22 11:05

JFrog Mission Control和Insight都使用Elasticsearch,用于存储和检索Artifactory服务及其存储库的历史数据。
在某些用例中,Elasticsearch会启动失败,在' /var/log/ Elasticsearch / Elasticsearch .log '中产生如下日志:

由于:java.lang.IllegalArgumentException: plugin [search-guard-7]是为Elasticsearch版本X构建的,但需要版本Y。

这意味着Elasticsearch和SearchGuard插件这通常发生在MC/Insight升级跳过手动/自动SearchGuard升级之后。

解决这个问题是一个相当简单的过程,包括卸载SearchGuard并重新安装到正确的版本:
1.找到Elasticsearch二进制文件,通常在“/usr/share/ Elasticsearch /bin/”下。
2.使用Elasticsearch二进制文件,检查你的Elasticsearch版本:

$ ./elasticsearch——version
版本:7.14.1,Build: default/deb/66b55ebfa59c92c15db3f69a335d500018b3331e/2021-08-26T09:01:05.390870785Z, JVM: 16.0.2

3.接下来,使用' Elasticsearch -plugin '二进制文件,检查你的Elasticsearch插件及其版本:

$ ./elasticsearch-plugin list——verbose
Plugins目录:/usr/share/elasticsearch/ Plugins
search-guard-7
-插件信息:
名称:search-guard-7
描述:为Elasticsearch 7提供访问控制相关特性
版本:7.13.1-52.1.0
Elasticsearch版本:7.13.1
Java版本:1.8
本机控制器:false
授权:假
类型:孤立
扩展插件:[lang-painless]
*类名:com.floragunn.searchguard.SearchGuardPlugin

4.卸载SearchGuard插件:

$ ./elasticsearch-plugin删除search-guard
->删除[search-guard-7]…

5.重新安装SearchGuard。您将需要从MC/Insight安装(如果使用与相同版本捆绑的Elasticsearch实例)或在线SearchGuard网站获取新的SearchGuard插件存档。记住:SearchGuard插件版本必须与Elasticsearch版本相同:

$ ./elasticsearch-plugin install -b file:// opt/jfrog/mc/app/third-第三方/elasticsearch/search-guard-7.14.1.zip

或者:

$ ./elasticsearch-plugin install -b file:///path/to/ downloads /zip/search-guard-7.14.1.zip->安装文件:// opt/jfrog/mc/app/third-第三方/elasticsearch/search-guard-7.14.1.zip
->下载文件:// opt/jfrog/mc/app/third-第三方/elasticsearch/search-guard-7.14.1.zip
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
警告:插件需要额外的权限
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.com.sun.jndi.*
* java.lang.RuntimePermission accessClassInPackage.sun.misc
* java.lang.RuntimePermission accessClassInPackage.sun.nio.ch
* java.lang.RuntimePermission accessClassInPackage.sun.security.x509
* java.lang.RuntimePermission accessdeclardmembers
* java.lang.RuntimePermission createClassLoader
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission . loadLibrary.*
* java.lang.RuntimePermission设置contextclassloader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.net.NetPermission getProxySelector
*连接,接受,解析
* java.security.SecurityPermission
* java.security. security.register
* java.security.SecurityPermission putProviderProperty。公元前
* java.util.PropertyPermission *读、写
* java.util.PropertyPermission org.apache.xml.security.ignoreLineBreaks write
* javax.security.auth.AuthPermission doAs
* javax.security.auth.AuthPermission modifyprivatecredals
* javax.security.auth.kerberos.ServicePermission * accept
参见http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
有关这些权限允许的内容和相关风险的描述。
->安装search-guard-7
->请重新启动Elasticsearch以激活已安装的插件

注:根据SearchGuard文档,上述警告信息是预期的。

6.安装完成后,重新启动MC和Elasticsearch,并检查Elasticsearch .log,看看问题是否解决了。

有一种可能性,在这个用例发生后,MC/Insight将不再自动启动Elasticsearch服务,当' systemctl < MC | Insight > start '执行。在这种情况下,请在启动MC/Insight之前尝试手动启动Elasticsearch服务。