use of org.elasticsearch.client.sniff.ElasticsearchNodesSniffer in project graylog2-server by Graylog2.
the class FilteredElasticsearchNodesSniffer method create.
static FilteredElasticsearchNodesSniffer create(RestClient restClient, long sniffRequestTimeoutMillis, ElasticsearchNodesSniffer.Scheme scheme, String filter) {
final String attribute;
final String value;
if (!Strings.isNullOrEmpty(filter)) {
final String[] conditions = filter.split(":");
if (conditions.length < 2) {
throw new IllegalArgumentException("Invalid filter specified for ES node discovery: " + filter);
}
attribute = conditions[0].trim();
value = conditions[1].trim();
} else {
attribute = null;
value = null;
}
final NodesSniffer nodesSniffer = new ElasticsearchNodesSniffer(restClient, sniffRequestTimeoutMillis, scheme);
return new FilteredElasticsearchNodesSniffer(nodesSniffer, attribute, value);
}
use of org.elasticsearch.client.sniff.ElasticsearchNodesSniffer in project ARLAS-server by gisaia.
the class ElasticTool method getRestHighLevelClient.
public static ImmutablePair<RestHighLevelClient, Sniffer> getRestHighLevelClient(HttpHost[] nodes, boolean ssl, String cred, boolean skipMaster, boolean sniffing) {
// disable JVM default policies of caching positive hostname resolutions indefinitely
// because the Elastic load balancer can change IP addresses
java.security.Security.setProperty("networkaddress.cache.ttl", "60");
java.security.Security.setProperty("networkaddress.cache.negative.ttl", "0");
RestClientBuilder restClientBuilder = RestClient.builder(nodes);
if (skipMaster) {
restClientBuilder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);
}
// Authentication needed ?
if (!StringUtil.isNullOrEmpty(cred)) {
String[] credentials = ElasticConfiguration.getCredentials(cred);
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(credentials[0], credentials[1]));
restClientBuilder.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
}
RestHighLevelClient client = new RestHighLevelClient(restClientBuilder);
// Sniffing should be disabled with Elasticsearch Service (cloud)
Sniffer sniffer = null;
if (sniffing) {
SniffOnFailureListener sniffOnFailureListener = new SniffOnFailureListener();
restClientBuilder.setFailureListener(sniffOnFailureListener);
NodesSniffer nodesSniffer = new ElasticsearchNodesSniffer(client.getLowLevelClient(), ElasticsearchNodesSniffer.DEFAULT_SNIFF_REQUEST_TIMEOUT, ssl ? ElasticsearchNodesSniffer.Scheme.HTTPS : ElasticsearchNodesSniffer.Scheme.HTTP);
sniffer = Sniffer.builder(client.getLowLevelClient()).setSniffAfterFailureDelayMillis(30000).setNodesSniffer(nodesSniffer).build();
sniffOnFailureListener.setSniffer(sniffer);
}
return new ImmutablePair<>(client, sniffer);
}
use of org.elasticsearch.client.sniff.ElasticsearchNodesSniffer in project quarkus by quarkusio.
the class RestClientBuilderHelper method createSniffer.
public static Sniffer createSniffer(RestClient client, ElasticsearchConfig config) {
SnifferBuilder builder = Sniffer.builder(client).setSniffIntervalMillis((int) config.discovery.refreshInterval.toMillis());
// https discovery support
if ("https".equalsIgnoreCase(config.protocol)) {
NodesSniffer hostsSniffer = new ElasticsearchNodesSniffer(client, // 1sec
ElasticsearchNodesSniffer.DEFAULT_SNIFF_REQUEST_TIMEOUT, ElasticsearchNodesSniffer.Scheme.HTTPS);
builder.setNodesSniffer(hostsSniffer);
}
return builder.build();
}
use of org.elasticsearch.client.sniff.ElasticsearchNodesSniffer in project hibernate-search by hibernate.
the class ElasticsearchClientFactoryImpl method createSniffer.
private Sniffer createSniffer(ConfigurationPropertySource propertySource, RestClient client, ServerUris hosts) {
boolean discoveryEnabled = DISCOVERY_ENABLED.get(propertySource);
if (discoveryEnabled) {
SnifferBuilder builder = Sniffer.builder(client).setSniffIntervalMillis(DISCOVERY_REFRESH_INTERVAL.get(propertySource) * // The configured value is in seconds
1_000);
// https discovery support
if (hosts.isSslEnabled()) {
NodesSniffer hostsSniffer = new ElasticsearchNodesSniffer(client, // 1sec
ElasticsearchNodesSniffer.DEFAULT_SNIFF_REQUEST_TIMEOUT, ElasticsearchNodesSniffer.Scheme.HTTPS);
builder.setNodesSniffer(hostsSniffer);
}
return builder.build();
} else {
return null;
}
}
Aggregations