eace67bbf6
A monitoring cluster running Elasticsearch 7.0.0+ should never see `.monitoring-*-2-*` indices being created by the production cluster writing to it. So the Kibana Monitoring UI doesn't need to search against these indices any more.
88 lines
3.6 KiB
JavaScript
88 lines
3.6 KiB
JavaScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License;
|
|
* you may not use this file except in compliance with the Elastic License.
|
|
*/
|
|
|
|
import { XPACK_INFO_API_DEFAULT_POLL_FREQUENCY_IN_MILLIS } from '../../server/lib/constants';
|
|
|
|
/**
|
|
* User-configurable settings for xpack.monitoring via configuration schema
|
|
* @param {Object} Joi - HapiJS Joi module that allows for schema validation
|
|
* @return {Object} config schema
|
|
*/
|
|
export const config = (Joi) => {
|
|
const DEFAULT_REQUEST_HEADERS = [ 'authorization' ];
|
|
|
|
return Joi.object({
|
|
ccs: Joi.object({
|
|
enabled: Joi.boolean().default(true)
|
|
}).default(),
|
|
enabled: Joi.boolean().default(true),
|
|
ui: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
container: Joi.object({
|
|
elasticsearch: Joi.object({
|
|
enabled: Joi.boolean().default(false)
|
|
}).default(),
|
|
logstash: Joi.object({
|
|
enabled: Joi.boolean().default(false)
|
|
}).default()
|
|
}).default()
|
|
}).default(),
|
|
index_pattern: Joi.string().default('.monitoring-*-6-*'),
|
|
kibana: Joi.object({
|
|
index_pattern: Joi.string().default('.monitoring-kibana-6-*'),
|
|
collection: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
interval: Joi.number().default(10000) // op status metrics get buffered at `ops.interval` and flushed to the bulk endpoint at this interval
|
|
}).default()
|
|
}).default(),
|
|
logstash: Joi.object({
|
|
index_pattern: Joi.string().default('.monitoring-logstash-6-*')
|
|
}).default(),
|
|
beats: Joi.object({
|
|
index_pattern: Joi.string().default('.monitoring-beats-6-*')
|
|
}).default(),
|
|
cluster_alerts: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
index: Joi.string().default('.monitoring-alerts-6'),
|
|
email_notifications: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
email_address: Joi.string().email(),
|
|
}).default()
|
|
}).default(),
|
|
xpack_api_polling_frequency_millis: Joi.number().default(XPACK_INFO_API_DEFAULT_POLL_FREQUENCY_IN_MILLIS),
|
|
max_bucket_size: Joi.number().default(10000),
|
|
min_interval_seconds: Joi.number().default(10),
|
|
show_license_expiration: Joi.boolean().default(true),
|
|
report_stats: Joi.boolean().default(true),
|
|
agent: Joi.object({
|
|
interval: Joi.string().regex(/[\d\.]+[yMwdhms]/).default('10s')
|
|
}).default(),
|
|
elasticsearch: Joi.object({
|
|
customHeaders: Joi.object().default({}),
|
|
index_pattern: Joi.string().default('.monitoring-es-6-*'),
|
|
logQueries: Joi.boolean().default(false),
|
|
requestHeadersWhitelist: Joi.array().items().single().default(DEFAULT_REQUEST_HEADERS),
|
|
sniffOnStart: Joi.boolean().default(false),
|
|
sniffInterval: Joi.number().allow(false).default(false),
|
|
sniffOnConnectionFault: Joi.boolean().default(false),
|
|
hosts: Joi.array().items(Joi.string().uri({ scheme: ['http', 'https'] })).single(), // if empty, use Kibana's connection config
|
|
username: Joi.string(),
|
|
password: Joi.string(),
|
|
requestTimeout: Joi.number().default(30000),
|
|
pingTimeout: Joi.number().default(30000),
|
|
ssl: Joi.object({
|
|
verificationMode: Joi.string().valid('none', 'certificate', 'full').default('full'),
|
|
certificateAuthorities: Joi.array().single().items(Joi.string()),
|
|
certificate: Joi.string(),
|
|
key: Joi.string(),
|
|
keyPassphrase: Joi.string(),
|
|
alwaysPresentCertificate: Joi.boolean().default(false),
|
|
}).default(),
|
|
apiVersion: Joi.string().default('master')
|
|
}).default()
|
|
}).default();
|
|
};
|