版本: 7.3-8.9
简而言之,当 Elasticsearch 中 Watcher 功能的加密密钥未在 keystore 中设置时,就会出现此错误。keystore 是一个用于存储密码和加密密钥等敏感设置的安全位置。要解决此问题,你需要将加密密钥添加到 Elasticsearch keystore 中。你可以通过使用 ‘elasticsearch-keystore add’ 命令后跟密钥名称来实现。添加密钥后,你需要重启 Elasticsearch 以使更改生效。
日志上下文 #
日志 “setting [” + WatcherField.ENCRYPTION_KEY_SETTING.getKey() + “] must be set in keystore” 的类名是 CryptoService.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:
throw new IllegalArgumentException("invalid key length [" + keyLength + "]. value must be a multiple of 8");
} try (InputStream in = WatcherField.ENCRYPTION_KEY_SETTING.get(settings)) {
if (in == null) {
throw new ElasticsearchException("setting [" + WatcherField.ENCRYPTION_KEY_SETTING.getKey() + "] must be set in keystore");
}
SecretKey systemKey = readSystemKey(in);
try {
encryptionKey = encryptionKey(systemKey; keyLength; keyAlgorithm);
} catch (NoSuchAlgorithmException nsae) {





