From 3ca624a8b5eb053a382f1db102f84f5612fcfdac Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 7 Dec 2021 11:28:37 -0500 Subject: [PATCH] Update Beats tutorials for security on by default (#120388) (#120629) Co-authored-by: Josh Dover <1813008+joshdover@users.noreply.github.com> --- src/plugins/home/server/plugin.ts | 3 +- .../tutorials/lib/tutorials_registry_types.ts | 1 + .../tutorials/tutorials_registry.test.ts | 29 +- .../services/tutorials/tutorials_registry.ts | 15 +- .../server/tutorials/activemq_logs/index.ts | 4 +- .../tutorials/activemq_metrics/index.ts | 4 +- .../tutorials/aerospike_metrics/index.ts | 4 +- .../server/tutorials/apache_logs/index.ts | 4 +- .../server/tutorials/apache_metrics/index.ts | 4 +- .../home/server/tutorials/auditbeat/index.ts | 4 +- .../server/tutorials/auditd_logs/index.ts | 4 +- .../home/server/tutorials/aws_logs/index.ts | 4 +- .../server/tutorials/aws_metrics/index.ts | 4 +- .../home/server/tutorials/azure_logs/index.ts | 4 +- .../server/tutorials/azure_metrics/index.ts | 4 +- .../server/tutorials/barracuda_logs/index.ts | 4 +- .../server/tutorials/bluecoat_logs/index.ts | 4 +- .../home/server/tutorials/cef_logs/index.ts | 4 +- .../server/tutorials/ceph_metrics/index.ts | 4 +- .../server/tutorials/checkpoint_logs/index.ts | 4 +- .../home/server/tutorials/cisco_logs/index.ts | 4 +- .../server/tutorials/cloudwatch_logs/index.ts | 4 +- .../tutorials/cockroachdb_metrics/index.ts | 4 +- .../server/tutorials/consul_metrics/index.ts | 4 +- .../server/tutorials/coredns_logs/index.ts | 4 +- .../server/tutorials/coredns_metrics/index.ts | 4 +- .../tutorials/couchbase_metrics/index.ts | 4 +- .../server/tutorials/couchdb_metrics/index.ts | 4 +- .../tutorials/crowdstrike_logs/index.ts | 4 +- .../server/tutorials/cylance_logs/index.ts | 4 +- .../server/tutorials/docker_metrics/index.ts | 4 +- .../tutorials/dropwizard_metrics/index.ts | 4 +- .../tutorials/elasticsearch_logs/index.ts | 4 +- .../tutorials/elasticsearch_metrics/index.ts | 4 +- .../server/tutorials/envoyproxy_logs/index.ts | 4 +- .../tutorials/envoyproxy_metrics/index.ts | 4 +- .../server/tutorials/etcd_metrics/index.ts | 4 +- .../home/server/tutorials/f5_logs/index.ts | 4 +- .../server/tutorials/fortinet_logs/index.ts | 4 +- .../home/server/tutorials/gcp_logs/index.ts | 4 +- .../server/tutorials/gcp_metrics/index.ts | 4 +- .../server/tutorials/golang_metrics/index.ts | 4 +- .../server/tutorials/gsuite_logs/index.ts | 4 +- .../server/tutorials/haproxy_logs/index.ts | 4 +- .../server/tutorials/haproxy_metrics/index.ts | 4 +- .../home/server/tutorials/ibmmq_logs/index.ts | 4 +- .../server/tutorials/ibmmq_metrics/index.ts | 4 +- .../server/tutorials/icinga_logs/index.ts | 4 +- .../home/server/tutorials/iis_logs/index.ts | 4 +- .../server/tutorials/iis_metrics/index.ts | 4 +- .../server/tutorials/imperva_logs/index.ts | 4 +- .../server/tutorials/infoblox_logs/index.ts | 4 +- .../instructions/auditbeat_instructions.ts | 560 ++++++++++-------- .../instructions/filebeat_instructions.ts | 557 +++++++++-------- .../instructions/functionbeat_instructions.ts | 346 ++++++----- .../instructions/heartbeat_instructions.ts | 521 ++++++++-------- .../instructions/metricbeat_instructions.ts | 548 +++++++++-------- .../instructions/winlogbeat_instructions.ts | 180 +++--- .../server/tutorials/iptables_logs/index.ts | 4 +- .../server/tutorials/juniper_logs/index.ts | 4 +- .../home/server/tutorials/kafka_logs/index.ts | 4 +- .../server/tutorials/kafka_metrics/index.ts | 4 +- .../server/tutorials/kibana_logs/index.ts | 4 +- .../server/tutorials/kibana_metrics/index.ts | 4 +- .../tutorials/kubernetes_metrics/index.ts | 4 +- .../server/tutorials/logstash_logs/index.ts | 4 +- .../tutorials/logstash_metrics/index.ts | 4 +- .../tutorials/memcached_metrics/index.ts | 4 +- .../server/tutorials/microsoft_logs/index.ts | 4 +- .../home/server/tutorials/misp_logs/index.ts | 4 +- .../server/tutorials/mongodb_logs/index.ts | 4 +- .../server/tutorials/mongodb_metrics/index.ts | 4 +- .../home/server/tutorials/mssql_logs/index.ts | 4 +- .../server/tutorials/mssql_metrics/index.ts | 4 +- .../server/tutorials/munin_metrics/index.ts | 4 +- .../home/server/tutorials/mysql_logs/index.ts | 4 +- .../server/tutorials/mysql_metrics/index.ts | 4 +- .../home/server/tutorials/nats_logs/index.ts | 4 +- .../server/tutorials/nats_metrics/index.ts | 4 +- .../server/tutorials/netflow_logs/index.ts | 4 +- .../server/tutorials/netscout_logs/index.ts | 4 +- .../home/server/tutorials/nginx_logs/index.ts | 4 +- .../server/tutorials/nginx_metrics/index.ts | 4 +- .../home/server/tutorials/o365_logs/index.ts | 4 +- .../home/server/tutorials/okta_logs/index.ts | 4 +- .../tutorials/openmetrics_metrics/index.ts | 4 +- .../server/tutorials/oracle_metrics/index.ts | 4 +- .../server/tutorials/osquery_logs/index.ts | 4 +- .../home/server/tutorials/panw_logs/index.ts | 4 +- .../server/tutorials/php_fpm_metrics/index.ts | 4 +- .../server/tutorials/postgresql_logs/index.ts | 4 +- .../tutorials/postgresql_metrics/index.ts | 4 +- .../tutorials/prometheus_metrics/index.ts | 4 +- .../server/tutorials/rabbitmq_logs/index.ts | 4 +- .../tutorials/rabbitmq_metrics/index.ts | 4 +- .../server/tutorials/radware_logs/index.ts | 4 +- .../home/server/tutorials/redis_logs/index.ts | 4 +- .../server/tutorials/redis_metrics/index.ts | 4 +- .../redisenterprise_metrics/index.ts | 4 +- .../home/server/tutorials/santa_logs/index.ts | 4 +- .../server/tutorials/sonicwall_logs/index.ts | 4 +- .../server/tutorials/sophos_logs/index.ts | 4 +- .../home/server/tutorials/squid_logs/index.ts | 4 +- .../server/tutorials/stan_metrics/index.ts | 4 +- .../server/tutorials/statsd_metrics/index.ts | 4 +- .../server/tutorials/suricata_logs/index.ts | 4 +- .../server/tutorials/system_logs/index.ts | 4 +- .../server/tutorials/system_metrics/index.ts | 4 +- .../server/tutorials/tomcat_logs/index.ts | 4 +- .../server/tutorials/traefik_logs/index.ts | 4 +- .../server/tutorials/traefik_metrics/index.ts | 4 +- .../server/tutorials/uptime_monitors/index.ts | 4 +- .../server/tutorials/uwsgi_metrics/index.ts | 4 +- .../server/tutorials/vsphere_metrics/index.ts | 4 +- .../tutorials/windows_event_logs/index.ts | 4 +- .../server/tutorials/windows_metrics/index.ts | 4 +- .../home/server/tutorials/zeek_logs/index.ts | 4 +- .../tutorials/zookeeper_metrics/index.ts | 4 +- .../server/tutorials/zscaler_logs/index.ts | 4 +- .../translations/translations/ja-JP.json | 19 - .../translations/translations/zh-CN.json | 19 - 121 files changed, 1726 insertions(+), 1508 deletions(-) diff --git a/src/plugins/home/server/plugin.ts b/src/plugins/home/server/plugin.ts index 6f082dd561e93..04d2d80898b50 100644 --- a/src/plugins/home/server/plugin.ts +++ b/src/plugins/home/server/plugin.ts @@ -27,12 +27,13 @@ export interface HomeServerPluginSetupDependencies { } export class HomeServerPlugin implements Plugin { - private readonly tutorialsRegistry = new TutorialsRegistry(); + private readonly tutorialsRegistry; private readonly sampleDataRegistry: SampleDataRegistry; private customIntegrations?: CustomIntegrationsPluginSetup; constructor(private readonly initContext: PluginInitializerContext) { this.sampleDataRegistry = new SampleDataRegistry(this.initContext); + this.tutorialsRegistry = new TutorialsRegistry(this.initContext); } public setup(core: CoreSetup, plugins: HomeServerPluginSetupDependencies): HomeServerPluginSetup { diff --git a/src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts b/src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts index 4c80c8858a475..aeebecf6cab32 100644 --- a/src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts +++ b/src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts @@ -29,6 +29,7 @@ export enum TutorialsCategory { export type Platform = 'WINDOWS' | 'OSX' | 'DEB' | 'RPM'; export interface TutorialContext { + kibanaBranch: string; [key: string]: unknown; } export type TutorialProvider = (context: TutorialContext) => TutorialSchema; diff --git a/src/plugins/home/server/services/tutorials/tutorials_registry.test.ts b/src/plugins/home/server/services/tutorials/tutorials_registry.test.ts index ee73c8e13f62b..dec1d23e05787 100644 --- a/src/plugins/home/server/services/tutorials/tutorials_registry.test.ts +++ b/src/plugins/home/server/services/tutorials/tutorials_registry.test.ts @@ -69,6 +69,7 @@ const validTutorialProvider = VALID_TUTORIAL; describe('TutorialsRegistry', () => { let mockCoreSetup: MockedKeys; + let mockInitContext: ReturnType; let testProvider: TutorialProvider; let testScopedTutorialContextFactory: ScopedTutorialContextFactory; let mockCustomIntegrationsPluginSetup: jest.Mocked; @@ -80,6 +81,7 @@ describe('TutorialsRegistry', () => { describe('GET /api/kibana/home/tutorials', () => { beforeEach(() => { mockCoreSetup = coreMock.createSetup(); + mockInitContext = coreMock.createPluginInitializerContext(); }); test('has a router that retrieves registered tutorials', () => { @@ -90,13 +92,19 @@ describe('TutorialsRegistry', () => { describe('setup', () => { test('exposes proper contract', () => { - const setup = new TutorialsRegistry().setup(mockCoreSetup, mockCustomIntegrationsPluginSetup); + const setup = new TutorialsRegistry(mockInitContext).setup( + mockCoreSetup, + mockCustomIntegrationsPluginSetup + ); expect(setup).toHaveProperty('registerTutorial'); expect(setup).toHaveProperty('addScopedTutorialContextFactory'); }); test('registerTutorial throws when registering a tutorial with an invalid schema', () => { - const setup = new TutorialsRegistry().setup(mockCoreSetup, mockCustomIntegrationsPluginSetup); + const setup = new TutorialsRegistry(mockInitContext).setup( + mockCoreSetup, + mockCustomIntegrationsPluginSetup + ); testProvider = ({}) => invalidTutorialProvider; expect(() => setup.registerTutorial(testProvider)).toThrowErrorMatchingInlineSnapshot( `"Unable to register tutorial spec because its invalid. Error: [name]: is not allowed to be empty"` @@ -104,7 +112,10 @@ describe('TutorialsRegistry', () => { }); test('registerTutorial registers a tutorial with a valid schema', () => { - const setup = new TutorialsRegistry().setup(mockCoreSetup, mockCustomIntegrationsPluginSetup); + const setup = new TutorialsRegistry(mockInitContext).setup( + mockCoreSetup, + mockCustomIntegrationsPluginSetup + ); testProvider = ({}) => validTutorialProvider; expect(() => setup.registerTutorial(testProvider)).not.toThrowError(); expect(mockCustomIntegrationsPluginSetup.registerCustomIntegration.mock.calls).toEqual([ @@ -129,7 +140,10 @@ describe('TutorialsRegistry', () => { }); test('addScopedTutorialContextFactory throws when given a scopedTutorialContextFactory that is not a function', () => { - const setup = new TutorialsRegistry().setup(mockCoreSetup, mockCustomIntegrationsPluginSetup); + const setup = new TutorialsRegistry(mockInitContext).setup( + mockCoreSetup, + mockCustomIntegrationsPluginSetup + ); const testItem = {} as TutorialProvider; expect(() => setup.addScopedTutorialContextFactory(testItem) @@ -139,7 +153,10 @@ describe('TutorialsRegistry', () => { }); test('addScopedTutorialContextFactory adds a scopedTutorialContextFactory when given a function', () => { - const setup = new TutorialsRegistry().setup(mockCoreSetup, mockCustomIntegrationsPluginSetup); + const setup = new TutorialsRegistry(mockInitContext).setup( + mockCoreSetup, + mockCustomIntegrationsPluginSetup + ); testScopedTutorialContextFactory = ({}) => 'string'; expect(() => setup.addScopedTutorialContextFactory(testScopedTutorialContextFactory) @@ -149,7 +166,7 @@ describe('TutorialsRegistry', () => { describe('start', () => { test('exposes proper contract', () => { - const start = new TutorialsRegistry().start( + const start = new TutorialsRegistry(mockInitContext).start( coreMock.createStart(), mockCustomIntegrationsPluginSetup ); diff --git a/src/plugins/home/server/services/tutorials/tutorials_registry.ts b/src/plugins/home/server/services/tutorials/tutorials_registry.ts index 723c92e6dfaf4..7d93a57b2073d 100644 --- a/src/plugins/home/server/services/tutorials/tutorials_registry.ts +++ b/src/plugins/home/server/services/tutorials/tutorials_registry.ts @@ -6,11 +6,12 @@ * Side Public License, v 1. */ -import { CoreSetup, CoreStart } from 'src/core/server'; +import { CoreSetup, CoreStart, PluginInitializerContext } from 'src/core/server'; import { TutorialProvider, TutorialContextFactory, ScopedTutorialContextFactory, + TutorialContext, } from './lib/tutorials_registry_types'; import { TutorialSchema, tutorialSchema } from './lib/tutorial_schema'; import { builtInTutorials } from '../../tutorials/register'; @@ -71,12 +72,14 @@ export class TutorialsRegistry { private tutorialProviders: TutorialProvider[] = []; // pre-register all the tutorials we know we want in here private readonly scopedTutorialContextFactories: TutorialContextFactory[] = []; + constructor(private readonly initContext: PluginInitializerContext) {} + public setup(core: CoreSetup, customIntegrations?: CustomIntegrationsPluginSetup) { const router = core.http.createRouter(); router.get( { path: '/api/kibana/home/tutorials', validate: false }, async (context, req, res) => { - const initialContext = {}; + const initialContext = this.baseTutorialContext; const scopedContext = this.scopedTutorialContextFactories.reduce( (accumulatedContext, contextFactory) => { return { ...accumulatedContext, ...contextFactory(req) }; @@ -92,7 +95,7 @@ export class TutorialsRegistry { ); return { registerTutorial: (specProvider: TutorialProvider) => { - const emptyContext = {}; + const emptyContext = this.baseTutorialContext; let tutorial: TutorialSchema; try { tutorial = tutorialSchema.validate(specProvider(emptyContext)); @@ -132,12 +135,16 @@ export class TutorialsRegistry { if (customIntegrations) { builtInTutorials.forEach((provider) => { - const tutorial = provider({}); + const tutorial = provider(this.baseTutorialContext); registerBeatsTutorialsWithCustomIntegrations(core, customIntegrations, tutorial); }); } return {}; } + + private get baseTutorialContext(): TutorialContext { + return { kibanaBranch: this.initContext.env.packageInfo.branch }; + } } /** @public */ diff --git a/src/plugins/home/server/tutorials/activemq_logs/index.ts b/src/plugins/home/server/tutorials/activemq_logs/index.ts index a277b37838562..cc84f9a536b22 100644 --- a/src/plugins/home/server/tutorials/activemq_logs/index.ts +++ b/src/plugins/home/server/tutorials/activemq_logs/index.ts @@ -56,8 +56,8 @@ export function activemqLogsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/activemq_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/activemq_metrics/index.ts b/src/plugins/home/server/tutorials/activemq_metrics/index.ts index 9a001c149cda0..9c98c9c2ffc7a 100644 --- a/src/plugins/home/server/tutorials/activemq_metrics/index.ts +++ b/src/plugins/home/server/tutorials/activemq_metrics/index.ts @@ -54,8 +54,8 @@ export function activemqMetricsSpecProvider(context: TutorialContext): TutorialS }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web'], }; diff --git a/src/plugins/home/server/tutorials/aerospike_metrics/index.ts b/src/plugins/home/server/tutorials/aerospike_metrics/index.ts index 3e574f2c75496..1cc350af579cb 100644 --- a/src/plugins/home/server/tutorials/aerospike_metrics/index.ts +++ b/src/plugins/home/server/tutorials/aerospike_metrics/index.ts @@ -54,8 +54,8 @@ export function aerospikeMetricsSpecProvider(context: TutorialContext): Tutorial }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/apache_logs/index.ts b/src/plugins/home/server/tutorials/apache_logs/index.ts index 6e588fd86588d..aea8e3c188d94 100644 --- a/src/plugins/home/server/tutorials/apache_logs/index.ts +++ b/src/plugins/home/server/tutorials/apache_logs/index.ts @@ -57,8 +57,8 @@ export function apacheLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/apache_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/apache_metrics/index.ts b/src/plugins/home/server/tutorials/apache_metrics/index.ts index 17b495d1460c5..0af719610c24d 100644 --- a/src/plugins/home/server/tutorials/apache_metrics/index.ts +++ b/src/plugins/home/server/tutorials/apache_metrics/index.ts @@ -56,8 +56,8 @@ export function apacheMetricsSpecProvider(context: TutorialContext): TutorialSch completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/apache_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/auditbeat/index.ts b/src/plugins/home/server/tutorials/auditbeat/index.ts index 96e5d4bcda393..666fcf15635c3 100644 --- a/src/plugins/home/server/tutorials/auditbeat/index.ts +++ b/src/plugins/home/server/tutorials/auditbeat/index.ts @@ -56,8 +56,8 @@ processes, users, logins, sockets information, file accesses, and more. \ completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/auditbeat/screenshot.png', onPrem: onPremInstructions(platforms, context), - elasticCloud: cloudInstructions(platforms), - onPremElasticCloud: onPremCloudInstructions(platforms), + elasticCloud: cloudInstructions(platforms, context), + onPremElasticCloud: onPremCloudInstructions(platforms, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/auditd_logs/index.ts b/src/plugins/home/server/tutorials/auditd_logs/index.ts index 6993196d93417..24857045ccc28 100644 --- a/src/plugins/home/server/tutorials/auditd_logs/index.ts +++ b/src/plugins/home/server/tutorials/auditd_logs/index.ts @@ -57,8 +57,8 @@ export function auditdLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/auditd_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['os_system'], }; } diff --git a/src/plugins/home/server/tutorials/aws_logs/index.ts b/src/plugins/home/server/tutorials/aws_logs/index.ts index 62fbcc4eebc18..60187490318ae 100644 --- a/src/plugins/home/server/tutorials/aws_logs/index.ts +++ b/src/plugins/home/server/tutorials/aws_logs/index.ts @@ -57,8 +57,8 @@ export function awsLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/aws_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['aws', 'cloud', 'datastore', 'security', 'network'], }; } diff --git a/src/plugins/home/server/tutorials/aws_metrics/index.ts b/src/plugins/home/server/tutorials/aws_metrics/index.ts index 6bf1bf64bff9f..6541b4f5f29c8 100644 --- a/src/plugins/home/server/tutorials/aws_metrics/index.ts +++ b/src/plugins/home/server/tutorials/aws_metrics/index.ts @@ -58,8 +58,8 @@ export function awsMetricsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/aws_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['aws', 'cloud', 'datastore', 'security', 'network'], }; } diff --git a/src/plugins/home/server/tutorials/azure_logs/index.ts b/src/plugins/home/server/tutorials/azure_logs/index.ts index 3c9438d9a6298..163496813567a 100644 --- a/src/plugins/home/server/tutorials/azure_logs/index.ts +++ b/src/plugins/home/server/tutorials/azure_logs/index.ts @@ -58,8 +58,8 @@ export function azureLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/azure_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['azure', 'cloud', 'network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/azure_metrics/index.ts b/src/plugins/home/server/tutorials/azure_metrics/index.ts index 310f954104634..edf4062812b42 100644 --- a/src/plugins/home/server/tutorials/azure_metrics/index.ts +++ b/src/plugins/home/server/tutorials/azure_metrics/index.ts @@ -57,8 +57,8 @@ export function azureMetricsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/azure_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['azure', 'cloud', 'network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/barracuda_logs/index.ts b/src/plugins/home/server/tutorials/barracuda_logs/index.ts index cdfd75b9728b9..7cf333ec6f7e5 100644 --- a/src/plugins/home/server/tutorials/barracuda_logs/index.ts +++ b/src/plugins/home/server/tutorials/barracuda_logs/index.ts @@ -55,8 +55,8 @@ export function barracudaLogsSpecProvider(context: TutorialContext): TutorialSch }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/bluecoat_logs/index.ts b/src/plugins/home/server/tutorials/bluecoat_logs/index.ts index a7db5b04ee40d..f35cd0ac4e450 100644 --- a/src/plugins/home/server/tutorials/bluecoat_logs/index.ts +++ b/src/plugins/home/server/tutorials/bluecoat_logs/index.ts @@ -54,8 +54,8 @@ export function bluecoatLogsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/cef_logs/index.ts b/src/plugins/home/server/tutorials/cef_logs/index.ts index 1366198d610d7..bf1f402a09a65 100644 --- a/src/plugins/home/server/tutorials/cef_logs/index.ts +++ b/src/plugins/home/server/tutorials/cef_logs/index.ts @@ -61,8 +61,8 @@ export function cefLogsSpecProvider(context: TutorialContext): TutorialSchema { }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/ceph_metrics/index.ts b/src/plugins/home/server/tutorials/ceph_metrics/index.ts index 6a53789d26f7c..e7d2c67ec2a99 100644 --- a/src/plugins/home/server/tutorials/ceph_metrics/index.ts +++ b/src/plugins/home/server/tutorials/ceph_metrics/index.ts @@ -54,8 +54,8 @@ export function cephMetricsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/checkpoint_logs/index.ts b/src/plugins/home/server/tutorials/checkpoint_logs/index.ts index b5ea6be42403b..83ce8d27ec861 100644 --- a/src/plugins/home/server/tutorials/checkpoint_logs/index.ts +++ b/src/plugins/home/server/tutorials/checkpoint_logs/index.ts @@ -54,8 +54,8 @@ export function checkpointLogsSpecProvider(context: TutorialContext): TutorialSc }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/cisco_logs/index.ts b/src/plugins/home/server/tutorials/cisco_logs/index.ts index 922cfbf1e23ee..3c855996873af 100644 --- a/src/plugins/home/server/tutorials/cisco_logs/index.ts +++ b/src/plugins/home/server/tutorials/cisco_logs/index.ts @@ -57,8 +57,8 @@ export function ciscoLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/cisco_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/cloudwatch_logs/index.ts b/src/plugins/home/server/tutorials/cloudwatch_logs/index.ts index 5564d11be4d19..a4172fae4ff4d 100644 --- a/src/plugins/home/server/tutorials/cloudwatch_logs/index.ts +++ b/src/plugins/home/server/tutorials/cloudwatch_logs/index.ts @@ -51,8 +51,8 @@ export function cloudwatchLogsSpecProvider(context: TutorialContext): TutorialSc }, completionTimeMinutes: 10, onPrem: onPremInstructions([], context), - elasticCloud: cloudInstructions(), - onPremElasticCloud: onPremCloudInstructions(), + elasticCloud: cloudInstructions(context), + onPremElasticCloud: onPremCloudInstructions(context), integrationBrowserCategories: ['aws', 'cloud', 'datastore', 'security', 'network'], }; } diff --git a/src/plugins/home/server/tutorials/cockroachdb_metrics/index.ts b/src/plugins/home/server/tutorials/cockroachdb_metrics/index.ts index 535c8aaa90768..d53fd7f1f73aa 100644 --- a/src/plugins/home/server/tutorials/cockroachdb_metrics/index.ts +++ b/src/plugins/home/server/tutorials/cockroachdb_metrics/index.ts @@ -59,8 +59,8 @@ export function cockroachdbMetricsSpecProvider(context: TutorialContext): Tutori completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/cockroachdb_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security', 'network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/consul_metrics/index.ts b/src/plugins/home/server/tutorials/consul_metrics/index.ts index ca7179d55fd89..26fff9e58f511 100644 --- a/src/plugins/home/server/tutorials/consul_metrics/index.ts +++ b/src/plugins/home/server/tutorials/consul_metrics/index.ts @@ -56,8 +56,8 @@ export function consulMetricsSpecProvider(context: TutorialContext): TutorialSch completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/consul_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security', 'network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/coredns_logs/index.ts b/src/plugins/home/server/tutorials/coredns_logs/index.ts index 1261c67135001..876e6e09d61d6 100644 --- a/src/plugins/home/server/tutorials/coredns_logs/index.ts +++ b/src/plugins/home/server/tutorials/coredns_logs/index.ts @@ -57,8 +57,8 @@ export function corednsLogsSpecProvider(context: TutorialContext): TutorialSchem completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/coredns_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security', 'network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/coredns_metrics/index.ts b/src/plugins/home/server/tutorials/coredns_metrics/index.ts index 3abc14314a6ba..b854f4d448361 100644 --- a/src/plugins/home/server/tutorials/coredns_metrics/index.ts +++ b/src/plugins/home/server/tutorials/coredns_metrics/index.ts @@ -54,8 +54,8 @@ export function corednsMetricsSpecProvider(context: TutorialContext): TutorialSc completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/coredns_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security', 'network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/couchbase_metrics/index.ts b/src/plugins/home/server/tutorials/couchbase_metrics/index.ts index 5c29aa2d9a524..2a71a6d0457f1 100644 --- a/src/plugins/home/server/tutorials/couchbase_metrics/index.ts +++ b/src/plugins/home/server/tutorials/couchbase_metrics/index.ts @@ -54,8 +54,8 @@ export function couchbaseMetricsSpecProvider(context: TutorialContext): Tutorial }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security', 'network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/couchdb_metrics/index.ts b/src/plugins/home/server/tutorials/couchdb_metrics/index.ts index 00bea11d13d99..a379b3b04f4c7 100644 --- a/src/plugins/home/server/tutorials/couchdb_metrics/index.ts +++ b/src/plugins/home/server/tutorials/couchdb_metrics/index.ts @@ -59,8 +59,8 @@ export function couchdbMetricsSpecProvider(context: TutorialContext): TutorialSc completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/couchdb_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security', 'network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/crowdstrike_logs/index.ts b/src/plugins/home/server/tutorials/crowdstrike_logs/index.ts index a48ed4288210b..2c5a32b63f75f 100644 --- a/src/plugins/home/server/tutorials/crowdstrike_logs/index.ts +++ b/src/plugins/home/server/tutorials/crowdstrike_logs/index.ts @@ -58,8 +58,8 @@ export function crowdstrikeLogsSpecProvider(context: TutorialContext): TutorialS }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/cylance_logs/index.ts b/src/plugins/home/server/tutorials/cylance_logs/index.ts index 64b79a41cd2e0..d8b72963678fa 100644 --- a/src/plugins/home/server/tutorials/cylance_logs/index.ts +++ b/src/plugins/home/server/tutorials/cylance_logs/index.ts @@ -54,8 +54,8 @@ export function cylanceLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/docker_metrics/index.ts b/src/plugins/home/server/tutorials/docker_metrics/index.ts index ab80e6d644dbc..e36d590650454 100644 --- a/src/plugins/home/server/tutorials/docker_metrics/index.ts +++ b/src/plugins/home/server/tutorials/docker_metrics/index.ts @@ -56,8 +56,8 @@ export function dockerMetricsSpecProvider(context: TutorialContext): TutorialSch completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/docker_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['containers', 'os_system'], }; } diff --git a/src/plugins/home/server/tutorials/dropwizard_metrics/index.ts b/src/plugins/home/server/tutorials/dropwizard_metrics/index.ts index 9864d376966bb..f01119e6ba1d2 100644 --- a/src/plugins/home/server/tutorials/dropwizard_metrics/index.ts +++ b/src/plugins/home/server/tutorials/dropwizard_metrics/index.ts @@ -54,8 +54,8 @@ export function dropwizardMetricsSpecProvider(context: TutorialContext): Tutoria }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['elastic_stack', 'datastore'], }; } diff --git a/src/plugins/home/server/tutorials/elasticsearch_logs/index.ts b/src/plugins/home/server/tutorials/elasticsearch_logs/index.ts index 6415781d02c06..a1df2d8a4085e 100644 --- a/src/plugins/home/server/tutorials/elasticsearch_logs/index.ts +++ b/src/plugins/home/server/tutorials/elasticsearch_logs/index.ts @@ -56,8 +56,8 @@ export function elasticsearchLogsSpecProvider(context: TutorialContext): Tutoria completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/elasticsearch_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['containers', 'os_system'], }; } diff --git a/src/plugins/home/server/tutorials/elasticsearch_metrics/index.ts b/src/plugins/home/server/tutorials/elasticsearch_metrics/index.ts index 3961d7f78c86c..009e441c725d9 100644 --- a/src/plugins/home/server/tutorials/elasticsearch_metrics/index.ts +++ b/src/plugins/home/server/tutorials/elasticsearch_metrics/index.ts @@ -54,8 +54,8 @@ export function elasticsearchMetricsSpecProvider(context: TutorialContext): Tuto }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['elastic_stack', 'datastore'], }; } diff --git a/src/plugins/home/server/tutorials/envoyproxy_logs/index.ts b/src/plugins/home/server/tutorials/envoyproxy_logs/index.ts index 55c85a5bdd2a4..d39b182b81eaf 100644 --- a/src/plugins/home/server/tutorials/envoyproxy_logs/index.ts +++ b/src/plugins/home/server/tutorials/envoyproxy_logs/index.ts @@ -60,8 +60,8 @@ export function envoyproxyLogsSpecProvider(context: TutorialContext): TutorialSc completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/envoyproxy_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['elastic_stack', 'datastore'], }; } diff --git a/src/plugins/home/server/tutorials/envoyproxy_metrics/index.ts b/src/plugins/home/server/tutorials/envoyproxy_metrics/index.ts index e2f3b84739685..84ea8099e3d93 100644 --- a/src/plugins/home/server/tutorials/envoyproxy_metrics/index.ts +++ b/src/plugins/home/server/tutorials/envoyproxy_metrics/index.ts @@ -47,8 +47,8 @@ export function envoyproxyMetricsSpecProvider(context: TutorialContext): Tutoria }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['elastic_stack', 'datastore'], }; } diff --git a/src/plugins/home/server/tutorials/etcd_metrics/index.ts b/src/plugins/home/server/tutorials/etcd_metrics/index.ts index 9ed153c21c257..c4c68e80d40eb 100644 --- a/src/plugins/home/server/tutorials/etcd_metrics/index.ts +++ b/src/plugins/home/server/tutorials/etcd_metrics/index.ts @@ -54,8 +54,8 @@ export function etcdMetricsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['elastic_stack', 'datastore'], }; } diff --git a/src/plugins/home/server/tutorials/f5_logs/index.ts b/src/plugins/home/server/tutorials/f5_logs/index.ts index a407d1d3d5142..381fdd487eb24 100644 --- a/src/plugins/home/server/tutorials/f5_logs/index.ts +++ b/src/plugins/home/server/tutorials/f5_logs/index.ts @@ -55,8 +55,8 @@ export function f5LogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/f5_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/fortinet_logs/index.ts b/src/plugins/home/server/tutorials/fortinet_logs/index.ts index 2f6af3ba47280..6a73c5f8e3f66 100644 --- a/src/plugins/home/server/tutorials/fortinet_logs/index.ts +++ b/src/plugins/home/server/tutorials/fortinet_logs/index.ts @@ -54,8 +54,8 @@ export function fortinetLogsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/gcp_logs/index.ts b/src/plugins/home/server/tutorials/gcp_logs/index.ts index 23d8e3364eb69..d02c08cd2be9a 100644 --- a/src/plugins/home/server/tutorials/gcp_logs/index.ts +++ b/src/plugins/home/server/tutorials/gcp_logs/index.ts @@ -59,8 +59,8 @@ export function gcpLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/gcp_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['google_cloud', 'cloud', 'network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/gcp_metrics/index.ts b/src/plugins/home/server/tutorials/gcp_metrics/index.ts index 7f397c1e1be7b..ea5351d010a42 100644 --- a/src/plugins/home/server/tutorials/gcp_metrics/index.ts +++ b/src/plugins/home/server/tutorials/gcp_metrics/index.ts @@ -57,8 +57,8 @@ export function gcpMetricsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/gcp_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['google_cloud', 'cloud', 'network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/golang_metrics/index.ts b/src/plugins/home/server/tutorials/golang_metrics/index.ts index 50d09e42e8791..e179e69734ad5 100644 --- a/src/plugins/home/server/tutorials/golang_metrics/index.ts +++ b/src/plugins/home/server/tutorials/golang_metrics/index.ts @@ -57,8 +57,8 @@ export function golangMetricsSpecProvider(context: TutorialContext): TutorialSch }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['google_cloud', 'cloud', 'network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/gsuite_logs/index.ts b/src/plugins/home/server/tutorials/gsuite_logs/index.ts index 718558321cf78..ba193bdb08c08 100644 --- a/src/plugins/home/server/tutorials/gsuite_logs/index.ts +++ b/src/plugins/home/server/tutorials/gsuite_logs/index.ts @@ -54,8 +54,8 @@ export function gsuiteLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/haproxy_logs/index.ts b/src/plugins/home/server/tutorials/haproxy_logs/index.ts index c3765317ecbe0..05fc23fa16bcd 100644 --- a/src/plugins/home/server/tutorials/haproxy_logs/index.ts +++ b/src/plugins/home/server/tutorials/haproxy_logs/index.ts @@ -57,8 +57,8 @@ export function haproxyLogsSpecProvider(context: TutorialContext): TutorialSchem completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/haproxy_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/haproxy_metrics/index.ts b/src/plugins/home/server/tutorials/haproxy_metrics/index.ts index 49f1d32dc4c82..fa7c451889ba3 100644 --- a/src/plugins/home/server/tutorials/haproxy_metrics/index.ts +++ b/src/plugins/home/server/tutorials/haproxy_metrics/index.ts @@ -54,8 +54,8 @@ export function haproxyMetricsSpecProvider(context: TutorialContext): TutorialSc }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['network', 'web'], }; } diff --git a/src/plugins/home/server/tutorials/ibmmq_logs/index.ts b/src/plugins/home/server/tutorials/ibmmq_logs/index.ts index 21b60a9ab5a5c..90b35d0e78842 100644 --- a/src/plugins/home/server/tutorials/ibmmq_logs/index.ts +++ b/src/plugins/home/server/tutorials/ibmmq_logs/index.ts @@ -56,8 +56,8 @@ export function ibmmqLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/ibmmq_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/ibmmq_metrics/index.ts b/src/plugins/home/server/tutorials/ibmmq_metrics/index.ts index 706003f0eab48..6329df6836b06 100644 --- a/src/plugins/home/server/tutorials/ibmmq_metrics/index.ts +++ b/src/plugins/home/server/tutorials/ibmmq_metrics/index.ts @@ -55,8 +55,8 @@ export function ibmmqMetricsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/ibmmq_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/icinga_logs/index.ts b/src/plugins/home/server/tutorials/icinga_logs/index.ts index dc730022262c2..c65e92d0fe856 100644 --- a/src/plugins/home/server/tutorials/icinga_logs/index.ts +++ b/src/plugins/home/server/tutorials/icinga_logs/index.ts @@ -57,8 +57,8 @@ export function icingaLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/icinga_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/iis_logs/index.ts b/src/plugins/home/server/tutorials/iis_logs/index.ts index 0dbc5bbdc75b8..423f2f917c84e 100644 --- a/src/plugins/home/server/tutorials/iis_logs/index.ts +++ b/src/plugins/home/server/tutorials/iis_logs/index.ts @@ -58,8 +58,8 @@ export function iisLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/iis_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/iis_metrics/index.ts b/src/plugins/home/server/tutorials/iis_metrics/index.ts index d57e4688ba753..3c3159c2838d1 100644 --- a/src/plugins/home/server/tutorials/iis_metrics/index.ts +++ b/src/plugins/home/server/tutorials/iis_metrics/index.ts @@ -57,8 +57,8 @@ export function iisMetricsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/iis_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web'], }; } diff --git a/src/plugins/home/server/tutorials/imperva_logs/index.ts b/src/plugins/home/server/tutorials/imperva_logs/index.ts index 1cbe707f813ee..35e0a668ec7f0 100644 --- a/src/plugins/home/server/tutorials/imperva_logs/index.ts +++ b/src/plugins/home/server/tutorials/imperva_logs/index.ts @@ -54,8 +54,8 @@ export function impervaLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/infoblox_logs/index.ts b/src/plugins/home/server/tutorials/infoblox_logs/index.ts index 8dce2bf00b2e2..21d1fcf9a156c 100644 --- a/src/plugins/home/server/tutorials/infoblox_logs/index.ts +++ b/src/plugins/home/server/tutorials/infoblox_logs/index.ts @@ -54,8 +54,8 @@ export function infobloxLogsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network'], }; } diff --git a/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts index d0a0f97e26037..3968aff312380 100644 --- a/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts @@ -13,271 +13,317 @@ import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; import { cloudPasswordAndResetLink } from './cloud_instructions'; -export const createAuditbeatInstructions = (context?: TutorialContext) => ({ - INSTALL: { - OSX: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.osxTitle', { - defaultMessage: 'Download and install Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.install.osxTextPre', { - defaultMessage: 'First time using Auditbeat? See the [Quick Start]({linkUrl}).', - values: { - linkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'tar xzvf auditbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'cd auditbeat-{config.kibana.version}-darwin-x86_64/', - ], - }, - DEB: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.debTitle', { - defaultMessage: 'Download and install Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.install.debTextPre', { - defaultMessage: 'First time using Auditbeat? See the [Quick Start]({linkUrl}).', - values: { - linkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-{config.kibana.version}-amd64.deb', - 'sudo dpkg -i auditbeat-{config.kibana.version}-amd64.deb', - ], - textPost: i18n.translate('home.tutorials.common.auditbeatInstructions.install.debTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', - values: { - linkUrl: 'https://www.elastic.co/downloads/beats/auditbeat', - }, - }), - }, - RPM: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.rpmTitle', { - defaultMessage: 'Download and install Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.install.rpmTextPre', { - defaultMessage: 'First time using Auditbeat? See the [Quick Start]({linkUrl}).', - values: { - linkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-{config.kibana.version}-x86_64.rpm', - 'sudo rpm -vi auditbeat-{config.kibana.version}-x86_64.rpm', - ], - textPost: i18n.translate('home.tutorials.common.auditbeatInstructions.install.rpmTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', - values: { - linkUrl: 'https://www.elastic.co/downloads/beats/auditbeat', - }, - }), - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.windowsTitle', { - defaultMessage: 'Download and install Auditbeat', - }), - textPre: i18n.translate( - 'home.tutorials.common.auditbeatInstructions.install.windowsTextPre', - { - defaultMessage: - 'First time using Auditbeat? See the [Quick Start]({guideLinkUrl}).\n\ +export const createAuditbeatInstructions = (context: TutorialContext) => { + const SSL_DOC_URL = `https://www.elastic.co/guide/en/beats/auditbeat/${context.kibanaBranch}/configuration-ssl.html#ca-sha256`; + + return { + INSTALL: { + OSX: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.osxTitle', { + defaultMessage: 'Download and install Auditbeat', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.install.osxTextPre', { + defaultMessage: 'First time using Auditbeat? See the [Quick Start]({linkUrl}).', + values: { + linkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'tar xzvf auditbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'cd auditbeat-{config.kibana.version}-darwin-x86_64/', + ], + }, + DEB: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.debTitle', { + defaultMessage: 'Download and install Auditbeat', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.install.debTextPre', { + defaultMessage: 'First time using Auditbeat? See the [Quick Start]({linkUrl}).', + values: { + linkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-{config.kibana.version}-amd64.deb', + 'sudo dpkg -i auditbeat-{config.kibana.version}-amd64.deb', + ], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.install.debTextPost', + { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', + values: { + linkUrl: 'https://www.elastic.co/downloads/beats/auditbeat', + }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.rpmTitle', { + defaultMessage: 'Download and install Auditbeat', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.install.rpmTextPre', { + defaultMessage: 'First time using Auditbeat? See the [Quick Start]({linkUrl}).', + values: { + linkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-{config.kibana.version}-x86_64.rpm', + 'sudo rpm -vi auditbeat-{config.kibana.version}-x86_64.rpm', + ], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.install.rpmTextPost', + { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', + values: { + linkUrl: 'https://www.elastic.co/downloads/beats/auditbeat', + }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.install.windowsTitle', { + defaultMessage: 'Download and install Auditbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.install.windowsTextPre', + { + defaultMessage: + 'First time using Auditbeat? See the [Quick Start]({guideLinkUrl}).\n\ 1. Download the Auditbeat Windows zip file from the [Download]({auditbeatLinkUrl}) page.\n\ 2. Extract the contents of the zip file into {folderPath}.\n\ 3. Rename the `{directoryName}` directory to `Auditbeat`.\n\ 4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select \ **Run As Administrator**). If you are running Windows XP, you might need to download and install PowerShell.\n\ 5. From the PowerShell prompt, run the following commands to install Auditbeat as a Windows service.', + values: { + folderPath: '`C:\\Program Files`', + guideLinkUrl: + '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', + auditbeatLinkUrl: 'https://www.elastic.co/downloads/beats/auditbeat', + directoryName: 'auditbeat-{config.kibana.version}-windows', + }, + } + ), + commands: ['cd "C:\\Program Files\\Auditbeat"', '.\\install-service-auditbeat.ps1'], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.install.windowsTextPost', + { + defaultMessage: + 'Modify the settings under {propertyName} in the {auditbeatPath} file to point to your Elasticsearch installation.', + values: { + propertyName: '`output.elasticsearch`', + auditbeatPath: '`C:\\Program Files\\Auditbeat\\auditbeat.yml`', + }, + } + ), + }, + }, + START: { + OSX: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.osxTitle', { + defaultMessage: 'Start Auditbeat', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.osxTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['./auditbeat setup', './auditbeat -e'], + }, + DEB: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.debTitle', { + defaultMessage: 'Start Auditbeat', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.debTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['sudo auditbeat setup', 'sudo service auditbeat start'], + }, + RPM: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.rpmTitle', { + defaultMessage: 'Start Auditbeat', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.rpmTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['sudo auditbeat setup', 'sudo service auditbeat start'], + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.windowsTitle', { + defaultMessage: 'Start Auditbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.start.windowsTextPre', + { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + } + ), + commands: ['.\\auditbeat.exe setup', 'Start-Service auditbeat'], + }, + }, + CONFIG: { + OSX: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.osxTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.osxTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - folderPath: '`C:\\Program Files`', - guideLinkUrl: '{config.docs.beats.auditbeat}/auditbeat-installation-configuration.html', - auditbeatLinkUrl: 'https://www.elastic.co/downloads/beats/auditbeat', - directoryName: 'auditbeat-{config.kibana.version}-windows', + path: '`auditbeat.yml`', }, - } - ), - commands: ['cd "C:\\Program Files\\Auditbeat"', '.\\install-service-auditbeat.ps1'], - textPost: i18n.translate( - 'home.tutorials.common.auditbeatInstructions.install.windowsTextPost', - { - defaultMessage: - 'Modify the settings under {propertyName} in the {auditbeatPath} file to point to your Elasticsearch installation.', + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.config.osxTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + DEB: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.debTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.debTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - propertyName: '`output.elasticsearch`', - auditbeatPath: '`C:\\Program Files\\Auditbeat\\auditbeat.yml`', + path: '`/etc/auditbeat/auditbeat.yml`', }, - } - ), - }, - }, - START: { - OSX: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.osxTitle', { - defaultMessage: 'Start Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.osxTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['./auditbeat setup', './auditbeat -e'], - }, - DEB: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.debTitle', { - defaultMessage: 'Start Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.debTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['sudo auditbeat setup', 'sudo service auditbeat start'], - }, - RPM: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.rpmTitle', { - defaultMessage: 'Start Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.rpmTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['sudo auditbeat setup', 'sudo service auditbeat start'], - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.start.windowsTitle', { - defaultMessage: 'Start Auditbeat', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.start.windowsTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['.\\auditbeat.exe setup', 'Start-Service auditbeat'], - }, - }, - CONFIG: { - OSX: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.osxTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.osxTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`auditbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.auditbeatInstructions.config.osxTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - DEB: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.debTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.debTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/auditbeat/auditbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.auditbeatInstructions.config.debTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - RPM: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.rpmTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.rpmTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/auditbeat/auditbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.auditbeatInstructions.config.rpmTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.windowsTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.windowsTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`C:\\Program Files\\Auditbeat\\auditbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.auditbeatInstructions.config.windowsTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.config.debTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.rpmTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.auditbeatInstructions.config.rpmTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', + path: '`/etc/auditbeat/auditbeat.yml`', }, - } - ), + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.config.rpmTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.auditbeatInstructions.config.windowsTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.config.windowsTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`C:\\Program Files\\Auditbeat\\auditbeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.auditbeatInstructions.config.windowsTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, }, - }, -}); + }; +}; export const createAuditbeatCloudInstructions = () => ({ CONFIG: { @@ -383,7 +429,7 @@ export function auditbeatStatusCheck() { }; } -export function onPremInstructions(platforms: readonly Platform[], context?: TutorialContext) { +export function onPremInstructions(platforms: readonly Platform[], context: TutorialContext) { const AUDITBEAT_INSTRUCTIONS = createAuditbeatInstructions(context); const variants = []; @@ -414,8 +460,8 @@ export function onPremInstructions(platforms: readonly Platform[], context?: Tut }; } -export function onPremCloudInstructions(platforms: readonly Platform[]) { - const AUDITBEAT_INSTRUCTIONS = createAuditbeatInstructions(); +export function onPremCloudInstructions(platforms: readonly Platform[], context: TutorialContext) { + const AUDITBEAT_INSTRUCTIONS = createAuditbeatInstructions(context); const TRYCLOUD_OPTION1 = createTrycloudOption1(); const TRYCLOUD_OPTION2 = createTrycloudOption2(); @@ -450,8 +496,8 @@ export function onPremCloudInstructions(platforms: readonly Platform[]) { }; } -export function cloudInstructions(platforms: readonly Platform[]) { - const AUDITBEAT_INSTRUCTIONS = createAuditbeatInstructions(); +export function cloudInstructions(platforms: readonly Platform[], context: TutorialContext) { + const AUDITBEAT_INSTRUCTIONS = createAuditbeatInstructions(context); const AUDITBEAT_CLOUD_INSTRUCTIONS = createAuditbeatCloudInstructions(); const variants = []; diff --git a/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts index c6aa44932ee45..89445510f2b3d 100644 --- a/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts @@ -13,268 +13,307 @@ import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; import { cloudPasswordAndResetLink } from './cloud_instructions'; -export const createFilebeatInstructions = (context?: TutorialContext) => ({ - INSTALL: { - OSX: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.install.osxTitle', { - defaultMessage: 'Download and install Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.osxTextPre', { - defaultMessage: 'First time using Filebeat? See the [Quick Start]({linkUrl}).', - values: { - linkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'tar xzvf filebeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'cd filebeat-{config.kibana.version}-darwin-x86_64/', - ], - }, - DEB: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.install.debTitle', { - defaultMessage: 'Download and install Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.debTextPre', { - defaultMessage: 'First time using Filebeat? See the [Quick Start]({linkUrl}).', - values: { - linkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{config.kibana.version}-amd64.deb', - 'sudo dpkg -i filebeat-{config.kibana.version}-amd64.deb', - ], - textPost: i18n.translate('home.tutorials.common.filebeatInstructions.install.debTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', - values: { - linkUrl: 'https://www.elastic.co/downloads/beats/filebeat', - }, - }), - }, - RPM: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.install.rpmTitle', { - defaultMessage: 'Download and install Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.rpmTextPre', { - defaultMessage: 'First time using Filebeat? See the [Quick Start]({linkUrl}).', - values: { - linkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{config.kibana.version}-x86_64.rpm', - 'sudo rpm -vi filebeat-{config.kibana.version}-x86_64.rpm', - ], - textPost: i18n.translate('home.tutorials.common.filebeatInstructions.install.rpmTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', - values: { - linkUrl: 'https://www.elastic.co/downloads/beats/filebeat', - }, - }), - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.install.windowsTitle', { - defaultMessage: 'Download and install Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.windowsTextPre', { - defaultMessage: - 'First time using Filebeat? See the [Quick Start]({guideLinkUrl}).\n\ +export const createFilebeatInstructions = (context: TutorialContext) => { + const SSL_DOC_URL = `https://www.elastic.co/guide/en/beats/filebeat/${context.kibanaBranch}/configuration-ssl.html#ca-sha256`; + + return { + INSTALL: { + OSX: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.install.osxTitle', { + defaultMessage: 'Download and install Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.osxTextPre', { + defaultMessage: 'First time using Filebeat? See the [Quick Start]({linkUrl}).', + values: { + linkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'tar xzvf filebeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'cd filebeat-{config.kibana.version}-darwin-x86_64/', + ], + }, + DEB: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.install.debTitle', { + defaultMessage: 'Download and install Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.debTextPre', { + defaultMessage: 'First time using Filebeat? See the [Quick Start]({linkUrl}).', + values: { + linkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{config.kibana.version}-amd64.deb', + 'sudo dpkg -i filebeat-{config.kibana.version}-amd64.deb', + ], + textPost: i18n.translate('home.tutorials.common.filebeatInstructions.install.debTextPost', { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', + values: { + linkUrl: 'https://www.elastic.co/downloads/beats/filebeat', + }, + }), + }, + RPM: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.install.rpmTitle', { + defaultMessage: 'Download and install Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.install.rpmTextPre', { + defaultMessage: 'First time using Filebeat? See the [Quick Start]({linkUrl}).', + values: { + linkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{config.kibana.version}-x86_64.rpm', + 'sudo rpm -vi filebeat-{config.kibana.version}-x86_64.rpm', + ], + textPost: i18n.translate('home.tutorials.common.filebeatInstructions.install.rpmTextPost', { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({linkUrl}).', + values: { + linkUrl: 'https://www.elastic.co/downloads/beats/filebeat', + }, + }), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.install.windowsTitle', { + defaultMessage: 'Download and install Filebeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.filebeatInstructions.install.windowsTextPre', + { + defaultMessage: + 'First time using Filebeat? See the [Quick Start]({guideLinkUrl}).\n\ 1. Download the Filebeat Windows zip file from the [Download]({filebeatLinkUrl}) page.\n\ 2. Extract the contents of the zip file into {folderPath}.\n\ 3. Rename the `{directoryName}` directory to `Filebeat`.\n\ 4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select \ **Run As Administrator**). If you are running Windows XP, you might need to download and install PowerShell.\n\ 5. From the PowerShell prompt, run the following commands to install Filebeat as a Windows service.', - values: { - folderPath: '`C:\\Program Files`', - guideLinkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', - filebeatLinkUrl: 'https://www.elastic.co/downloads/beats/filebeat', - directoryName: 'filebeat-{config.kibana.version}-windows', - }, - }), - commands: ['cd "C:\\Program Files\\Filebeat"', '.\\install-service-filebeat.ps1'], - textPost: i18n.translate( - 'home.tutorials.common.filebeatInstructions.install.windowsTextPost', - { + values: { + folderPath: '`C:\\Program Files`', + guideLinkUrl: '{config.docs.beats.filebeat}/filebeat-installation-configuration.html', + filebeatLinkUrl: 'https://www.elastic.co/downloads/beats/filebeat', + directoryName: 'filebeat-{config.kibana.version}-windows', + }, + } + ), + commands: ['cd "C:\\Program Files\\Filebeat"', '.\\install-service-filebeat.ps1'], + textPost: i18n.translate( + 'home.tutorials.common.filebeatInstructions.install.windowsTextPost', + { + defaultMessage: + 'Modify the settings under {propertyName} in the {filebeatPath} file to point to your Elasticsearch installation.', + values: { + propertyName: '`output.elasticsearch`', + filebeatPath: '`C:\\Program Files\\Filebeat\\filebeat.yml`', + }, + } + ), + }, + }, + START: { + OSX: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.start.osxTitle', { + defaultMessage: 'Start Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.osxTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['./filebeat setup', './filebeat -e'], + }, + DEB: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.start.debTitle', { + defaultMessage: 'Start Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.debTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['sudo filebeat setup', 'sudo service filebeat start'], + }, + RPM: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.start.rpmTitle', { + defaultMessage: 'Start Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.rpmTextPre', { defaultMessage: - 'Modify the settings under {propertyName} in the {filebeatPath} file to point to your Elasticsearch installation.', + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['sudo filebeat setup', 'sudo service filebeat start'], + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.start.windowsTitle', { + defaultMessage: 'Start Filebeat', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.windowsTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['.\\filebeat.exe setup', 'Start-Service filebeat'], + }, + }, + CONFIG: { + OSX: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.config.osxTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.osxTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - propertyName: '`output.elasticsearch`', - filebeatPath: '`C:\\Program Files\\Filebeat\\filebeat.yml`', + path: '`filebeat.yml`', }, - } - ), - }, - }, - START: { - OSX: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.start.osxTitle', { - defaultMessage: 'Start Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.osxTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['./filebeat setup', './filebeat -e'], - }, - DEB: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.start.debTitle', { - defaultMessage: 'Start Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.debTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['sudo filebeat setup', 'sudo service filebeat start'], - }, - RPM: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.start.rpmTitle', { - defaultMessage: 'Start Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.rpmTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['sudo filebeat setup', 'sudo service filebeat start'], - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.start.windowsTitle', { - defaultMessage: 'Start Filebeat', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.start.windowsTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['.\\filebeat.exe setup', 'Start-Service filebeat'], - }, - }, - CONFIG: { - OSX: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.config.osxTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.osxTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`filebeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.filebeatInstructions.config.osxTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - DEB: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.config.debTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.debTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/filebeat/filebeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.filebeatInstructions.config.debTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - RPM: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.config.rpmTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.rpmTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/filebeat/filebeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.filebeatInstructions.config.rpmTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.filebeatInstructions.config.windowsTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.windowsTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`C:\\Program Files\\Filebeat\\filebeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.filebeatInstructions.config.windowsTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.filebeatInstructions.config.osxTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + DEB: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.config.debTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.debTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', + path: '`/etc/filebeat/filebeat.yml`', }, - } - ), + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.filebeatInstructions.config.debTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.config.rpmTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.filebeatInstructions.config.rpmTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`/etc/filebeat/filebeat.yml`', + }, + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.filebeatInstructions.config.rpmTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.filebeatInstructions.config.windowsTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate( + 'home.tutorials.common.filebeatInstructions.config.windowsTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`C:\\Program Files\\Filebeat\\filebeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.filebeatInstructions.config.windowsTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, }, - }, -}); + }; +}; export const createFilebeatCloudInstructions = () => ({ CONFIG: { @@ -430,7 +469,7 @@ export function filebeatStatusCheck(moduleName: string) { export function onPremInstructions( moduleName: string, platforms: readonly Platform[] = [], - context?: TutorialContext + context: TutorialContext ) { const FILEBEAT_INSTRUCTIONS = createFilebeatInstructions(context); @@ -463,8 +502,12 @@ export function onPremInstructions( }; } -export function onPremCloudInstructions(moduleName: string, platforms: readonly Platform[] = []) { - const FILEBEAT_INSTRUCTIONS = createFilebeatInstructions(); +export function onPremCloudInstructions( + moduleName: string, + platforms: readonly Platform[] = [], + context: TutorialContext +) { + const FILEBEAT_INSTRUCTIONS = createFilebeatInstructions(context); const TRYCLOUD_OPTION1 = createTrycloudOption1(); const TRYCLOUD_OPTION2 = createTrycloudOption2(); @@ -500,8 +543,12 @@ export function onPremCloudInstructions(moduleName: string, platforms: readonly }; } -export function cloudInstructions(moduleName: string, platforms: readonly Platform[] = []) { - const FILEBEAT_INSTRUCTIONS = createFilebeatInstructions(); +export function cloudInstructions( + moduleName: string, + platforms: readonly Platform[] = [], + context: TutorialContext +) { + const FILEBEAT_INSTRUCTIONS = createFilebeatInstructions(context); const FILEBEAT_CLOUD_INSTRUCTIONS = createFilebeatCloudInstructions(); const variants = []; diff --git a/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts index 24a6fe3719f8f..60d6fa5cb813b 100644 --- a/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts @@ -13,171 +13,203 @@ import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; import { cloudPasswordAndResetLink } from './cloud_instructions'; -export const createFunctionbeatInstructions = (context?: TutorialContext) => ({ - INSTALL: { - OSX: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.install.osxTitle', { - defaultMessage: 'Download and install Functionbeat', - }), - textPre: i18n.translate('home.tutorials.common.functionbeatInstructions.install.osxTextPre', { - defaultMessage: 'First time using Functionbeat? See the [Quick Start]({link}).', - values: { - link: '{config.docs.beats.functionbeat}/functionbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/functionbeat/functionbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'tar xzvf functionbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'cd functionbeat-{config.kibana.version}-darwin-x86_64/', - ], - }, - LINUX: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.install.linuxTitle', { - defaultMessage: 'Download and install Functionbeat', - }), - textPre: i18n.translate( - 'home.tutorials.common.functionbeatInstructions.install.linuxTextPre', - { - defaultMessage: 'First time using Functionbeat? See the [Quick Start]({link}).', - values: { - link: '{config.docs.beats.functionbeat}/functionbeat-installation-configuration.html', - }, - } - ), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/functionbeat/functionbeat-{config.kibana.version}-linux-x86_64.tar.gz', - 'tar xzvf functionbeat-{config.kibana.version}-linux-x86_64.tar.gz', - 'cd functionbeat-{config.kibana.version}-linux-x86_64/', - ], - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.install.windowsTitle', { - defaultMessage: 'Download and install Functionbeat', - }), - textPre: i18n.translate( - 'home.tutorials.common.functionbeatInstructions.install.windowsTextPre', - { - defaultMessage: - 'First time using Functionbeat? See the [Quick Start]({functionbeatLink}).\n\ +export const createFunctionbeatInstructions = (context: TutorialContext) => { + const SSL_DOC_URL = `https://www.elastic.co/guide/en/beats/functionbeat/${context.kibanaBranch}/configuration-ssl.html#ca-sha256`; + + return { + INSTALL: { + OSX: { + title: i18n.translate('home.tutorials.common.functionbeatInstructions.install.osxTitle', { + defaultMessage: 'Download and install Functionbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.install.osxTextPre', + { + defaultMessage: 'First time using Functionbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.functionbeat}/functionbeat-installation-configuration.html', + }, + } + ), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/functionbeat/functionbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'tar xzvf functionbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'cd functionbeat-{config.kibana.version}-darwin-x86_64/', + ], + }, + LINUX: { + title: i18n.translate('home.tutorials.common.functionbeatInstructions.install.linuxTitle', { + defaultMessage: 'Download and install Functionbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.install.linuxTextPre', + { + defaultMessage: 'First time using Functionbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.functionbeat}/functionbeat-installation-configuration.html', + }, + } + ), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/functionbeat/functionbeat-{config.kibana.version}-linux-x86_64.tar.gz', + 'tar xzvf functionbeat-{config.kibana.version}-linux-x86_64.tar.gz', + 'cd functionbeat-{config.kibana.version}-linux-x86_64/', + ], + }, + WINDOWS: { + title: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.install.windowsTitle', + { + defaultMessage: 'Download and install Functionbeat', + } + ), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.install.windowsTextPre', + { + defaultMessage: + 'First time using Functionbeat? See the [Quick Start]({functionbeatLink}).\n\ 1. Download the Functionbeat Windows zip file from the [Download]({elasticLink}) page.\n\ 2. Extract the contents of the zip file into {folderPath}.\n\ 3. Rename the {directoryName} directory to `Functionbeat`.\n\ 4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select \ **Run As Administrator**). If you are running Windows XP, you might need to download and install PowerShell.\n\ 5. From the PowerShell prompt, go to the Functionbeat directory:', - values: { - directoryName: '`functionbeat-{config.kibana.version}-windows`', - folderPath: '`C:\\Program Files`', - functionbeatLink: - '{config.docs.beats.functionbeat}/functionbeat-installation-configuration.html', - elasticLink: 'https://www.elastic.co/downloads/beats/functionbeat', - }, - } - ), - commands: ['cd "C:\\Program Files\\Functionbeat"'], + values: { + directoryName: '`functionbeat-{config.kibana.version}-windows`', + folderPath: '`C:\\Program Files`', + functionbeatLink: + '{config.docs.beats.functionbeat}/functionbeat-installation-configuration.html', + elasticLink: 'https://www.elastic.co/downloads/beats/functionbeat', + }, + } + ), + commands: ['cd "C:\\Program Files\\Functionbeat"'], + }, }, - }, - DEPLOY: { - OSX_LINUX: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.deploy.osxTitle', { - defaultMessage: 'Deploy Functionbeat to AWS Lambda', - }), - textPre: i18n.translate('home.tutorials.common.functionbeatInstructions.deploy.osxTextPre', { - defaultMessage: - 'This installs Functionbeat as a Lambda function.\ + DEPLOY: { + OSX_LINUX: { + title: i18n.translate('home.tutorials.common.functionbeatInstructions.deploy.osxTitle', { + defaultMessage: 'Deploy Functionbeat to AWS Lambda', + }), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.deploy.osxTextPre', + { + defaultMessage: + 'This installs Functionbeat as a Lambda function.\ The `setup` command checks the Elasticsearch configuration and loads the \ Kibana index pattern. It is normally safe to omit this command.', - }), - commands: ['./functionbeat setup', './functionbeat deploy fn-cloudwatch-logs'], - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.deploy.windowsTitle', { - defaultMessage: 'Deploy Functionbeat to AWS Lambda', - }), - textPre: i18n.translate( - 'home.tutorials.common.functionbeatInstructions.deploy.windowsTextPre', - { - defaultMessage: - 'This installs Functionbeat as a Lambda function.\ + } + ), + commands: ['./functionbeat setup', './functionbeat deploy fn-cloudwatch-logs'], + }, + WINDOWS: { + title: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.deploy.windowsTitle', + { + defaultMessage: 'Deploy Functionbeat to AWS Lambda', + } + ), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.deploy.windowsTextPre', + { + defaultMessage: + 'This installs Functionbeat as a Lambda function.\ The `setup` command checks the Elasticsearch configuration and loads the \ Kibana index pattern. It is normally safe to omit this command.', - } - ), - commands: ['.\\functionbeat.exe setup', '.\\functionbeat.exe deploy fn-cloudwatch-logs'], - }, - }, - CONFIG: { - OSX_LINUX: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.config.osxTitle', { - defaultMessage: 'Configure the Elastic cluster', - }), - textPre: i18n.translate('home.tutorials.common.functionbeatInstructions.config.osxTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`functionbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.functionbeatInstructions.config.osxTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - } - ), + } + ), + commands: ['.\\functionbeat.exe setup', '.\\functionbeat.exe deploy fn-cloudwatch-logs'], + }, }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.functionbeatInstructions.config.windowsTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate( - 'home.tutorials.common.functionbeatInstructions.config.windowsTextPre', - { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`C:\\Program Files\\Functionbeat\\functionbeat.yml`', - }, - } - ), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.functionbeatInstructions.config.windowsTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - } - ), + CONFIG: { + OSX_LINUX: { + title: i18n.translate('home.tutorials.common.functionbeatInstructions.config.osxTitle', { + defaultMessage: 'Configure the Elastic cluster', + }), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.config.osxTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`functionbeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.config.osxTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + WINDOWS: { + title: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.config.windowsTitle', + { + defaultMessage: 'Edit the configuration', + } + ), + textPre: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.config.windowsTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`C:\\Program Files\\Functionbeat\\functionbeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.functionbeatInstructions.config.windowsTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, }, - }, -}); + }; +}; export const createFunctionbeatCloudInstructions = () => ({ CONFIG: { @@ -336,7 +368,7 @@ export function functionbeatStatusCheck() { }; } -export function onPremInstructions(platforms: Platform[], context?: TutorialContext) { +export function onPremInstructions(platforms: Platform[], context: TutorialContext) { const FUNCTIONBEAT_INSTRUCTIONS = createFunctionbeatInstructions(context); return { @@ -386,10 +418,10 @@ export function onPremInstructions(platforms: Platform[], context?: TutorialCont }; } -export function onPremCloudInstructions() { +export function onPremCloudInstructions(context: TutorialContext) { const TRYCLOUD_OPTION1 = createTrycloudOption1(); const TRYCLOUD_OPTION2 = createTrycloudOption2(); - const FUNCTIONBEAT_INSTRUCTIONS = createFunctionbeatInstructions(); + const FUNCTIONBEAT_INSTRUCTIONS = createFunctionbeatInstructions(context); return { instructionSets: [ @@ -444,8 +476,8 @@ export function onPremCloudInstructions() { }; } -export function cloudInstructions() { - const FUNCTIONBEAT_INSTRUCTIONS = createFunctionbeatInstructions(); +export function cloudInstructions(context: TutorialContext) { + const FUNCTIONBEAT_INSTRUCTIONS = createFunctionbeatInstructions(context); const FUNCTIONBEAT_CLOUD_INSTRUCTIONS = createFunctionbeatCloudInstructions(); return { diff --git a/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts index ce3e76a5f827e..5cbd1641bf09a 100644 --- a/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts @@ -13,247 +13,298 @@ import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; import { cloudPasswordAndResetLink } from './cloud_instructions'; -export const createHeartbeatInstructions = (context?: TutorialContext) => ({ - INSTALL: { - OSX: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.osxTitle', { - defaultMessage: 'Download and install Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.install.osxTextPre', { - defaultMessage: 'First time using Heartbeat? See the [Quick Start]({link}).', - values: { link: '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html' }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'tar xzvf heartbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'cd heartbeat-{config.kibana.version}-darwin-x86_64/', - ], - }, - DEB: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.debTitle', { - defaultMessage: 'Download and install Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.install.debTextPre', { - defaultMessage: 'First time using Heartbeat? See the [Quick Start]({link}).', - values: { link: '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html' }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-{config.kibana.version}-amd64.deb', - 'sudo dpkg -i heartbeat-{config.kibana.version}-amd64.deb', - ], - textPost: i18n.translate('home.tutorials.common.heartbeatInstructions.install.debTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', - values: { link: 'https://www.elastic.co/downloads/beats/heartbeat' }, - }), - }, - RPM: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.rpmTitle', { - defaultMessage: 'Download and install Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.install.rpmTextPre', { - defaultMessage: 'First time using Heartbeat? See the [Quick Start]({link}).', - values: { link: '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html' }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-{config.kibana.version}-x86_64.rpm', - 'sudo rpm -vi heartbeat-{config.kibana.version}-x86_64.rpm', - ], - textPost: i18n.translate('home.tutorials.common.heartbeatInstructions.install.debTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', - values: { link: 'https://www.elastic.co/downloads/beats/heartbeat' }, - }), - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.windowsTitle', { - defaultMessage: 'Download and install Heartbeat', - }), - textPre: i18n.translate( - 'home.tutorials.common.heartbeatInstructions.install.windowsTextPre', - { - defaultMessage: - 'First time using Heartbeat? See the [Quick Start]({heartbeatLink}).\n\ +export const createHeartbeatInstructions = (context: TutorialContext) => { + const SSL_DOC_URL = `https://www.elastic.co/guide/en/beats/heartbeat/${context.kibanaBranch}/configuration-ssl.html#ca-sha256`; + + return { + INSTALL: { + OSX: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.osxTitle', { + defaultMessage: 'Download and install Heartbeat', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.install.osxTextPre', { + defaultMessage: 'First time using Heartbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'tar xzvf heartbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'cd heartbeat-{config.kibana.version}-darwin-x86_64/', + ], + }, + DEB: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.debTitle', { + defaultMessage: 'Download and install Heartbeat', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.install.debTextPre', { + defaultMessage: 'First time using Heartbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-{config.kibana.version}-amd64.deb', + 'sudo dpkg -i heartbeat-{config.kibana.version}-amd64.deb', + ], + textPost: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.install.debTextPost', + { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', + values: { link: 'https://www.elastic.co/downloads/beats/heartbeat' }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.rpmTitle', { + defaultMessage: 'Download and install Heartbeat', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.install.rpmTextPre', { + defaultMessage: 'First time using Heartbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-{config.kibana.version}-x86_64.rpm', + 'sudo rpm -vi heartbeat-{config.kibana.version}-x86_64.rpm', + ], + textPost: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.install.debTextPost', + { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', + values: { link: 'https://www.elastic.co/downloads/beats/heartbeat' }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.install.windowsTitle', { + defaultMessage: 'Download and install Heartbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.install.windowsTextPre', + { + defaultMessage: + 'First time using Heartbeat? See the [Quick Start]({heartbeatLink}).\n\ 1. Download the Heartbeat Windows zip file from the [Download]({elasticLink}) page.\n\ 2. Extract the contents of the zip file into {folderPath}.\n\ 3. Rename the {directoryName} directory to `Heartbeat`.\n\ 4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select \ **Run As Administrator**). If you are running Windows XP, you might need to download and install PowerShell.\n\ 5. From the PowerShell prompt, run the following commands to install Heartbeat as a Windows service.', - values: { - directoryName: '`heartbeat-{config.kibana.version}-windows`', - folderPath: '`C:\\Program Files`', - heartbeatLink: - '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html', - elasticLink: 'https://www.elastic.co/downloads/beats/heartbeat', - }, - } - ), - commands: ['cd "C:\\Program Files\\Heartbeat"', '.\\install-service-heartbeat.ps1'], - }, - }, - START: { - OSX: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.osxTitle', { - defaultMessage: 'Start Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.osxTextPre', { - defaultMessage: 'The `setup` command loads the Kibana index pattern.', - }), - commands: ['./heartbeat setup', './heartbeat -e'], - }, - DEB: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.debTitle', { - defaultMessage: 'Start Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.debTextPre', { - defaultMessage: 'The `setup` command loads the Kibana index pattern.', - }), - commands: ['sudo heartbeat setup', 'sudo service heartbeat-elastic start'], - }, - RPM: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.rpmTitle', { - defaultMessage: 'Start Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.rpmTextPre', { - defaultMessage: 'The `setup` command loads the Kibana index pattern.', - }), - commands: ['sudo heartbeat setup', 'sudo service heartbeat-elastic start'], - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.windowsTitle', { - defaultMessage: 'Start Heartbeat', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.windowsTextPre', { - defaultMessage: 'The `setup` command loads the Kibana index pattern.', - }), - commands: ['.\\heartbeat.exe setup', 'Start-Service heartbeat'], - }, - }, - CONFIG: { - OSX: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.osxTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.osxTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`heartbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.heartbeatInstructions.config.osxTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - DEB: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.debTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.debTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/heartbeat/heartbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.heartbeatInstructions.config.debTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), + values: { + directoryName: '`heartbeat-{config.kibana.version}-windows`', + folderPath: '`C:\\Program Files`', + heartbeatLink: + '{config.docs.beats.heartbeat}/heartbeat-installation-configuration.html', + elasticLink: 'https://www.elastic.co/downloads/beats/heartbeat', + }, + } + ), + commands: ['cd "C:\\Program Files\\Heartbeat"', '.\\install-service-heartbeat.ps1'], + }, }, - RPM: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.rpmTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.rpmTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/heartbeat/heartbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.heartbeatInstructions.config.rpmTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), + START: { + OSX: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.osxTitle', { + defaultMessage: 'Start Heartbeat', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.osxTextPre', { + defaultMessage: 'The `setup` command loads the Kibana index pattern.', + }), + commands: ['./heartbeat setup', './heartbeat -e'], + }, + DEB: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.debTitle', { + defaultMessage: 'Start Heartbeat', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.debTextPre', { + defaultMessage: 'The `setup` command loads the Kibana index pattern.', + }), + commands: ['sudo heartbeat setup', 'sudo service heartbeat-elastic start'], + }, + RPM: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.rpmTitle', { + defaultMessage: 'Start Heartbeat', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.start.rpmTextPre', { + defaultMessage: 'The `setup` command loads the Kibana index pattern.', + }), + commands: ['sudo heartbeat setup', 'sudo service heartbeat-elastic start'], + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.start.windowsTitle', { + defaultMessage: 'Start Heartbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.start.windowsTextPre', + { + defaultMessage: 'The `setup` command loads the Kibana index pattern.', + } + ), + commands: ['.\\heartbeat.exe setup', 'Start-Service heartbeat'], + }, }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.windowsTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.windowsTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`C:\\Program Files\\Heartbeat\\heartbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.heartbeatInstructions.config.windowsTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', + CONFIG: { + OSX: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.osxTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.osxTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', + path: '`heartbeat.yml`', }, - } - ), + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.config.osxTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + DEB: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.debTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.debTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`/etc/heartbeat/heartbeat.yml`', + }, + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.config.debTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.rpmTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.heartbeatInstructions.config.rpmTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`/etc/heartbeat/heartbeat.yml`', + }, + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.config.rpmTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.heartbeatInstructions.config.windowsTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.config.windowsTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`C:\\Program Files\\Heartbeat\\heartbeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.heartbeatInstructions.config.windowsTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, }, - }, -}); + }; +}; export const createHeartbeatCloudInstructions = () => ({ CONFIG: { @@ -486,7 +537,7 @@ export function heartbeatStatusCheck() { }; } -export function onPremInstructions(platforms: Platform[], context?: TutorialContext) { +export function onPremInstructions(platforms: Platform[], context: TutorialContext) { const HEARTBEAT_INSTRUCTIONS = createHeartbeatInstructions(context); return { @@ -542,10 +593,10 @@ export function onPremInstructions(platforms: Platform[], context?: TutorialCont }; } -export function onPremCloudInstructions() { +export function onPremCloudInstructions(context: TutorialContext) { const TRYCLOUD_OPTION1 = createTrycloudOption1(); const TRYCLOUD_OPTION2 = createTrycloudOption2(); - const HEARTBEAT_INSTRUCTIONS = createHeartbeatInstructions(); + const HEARTBEAT_INSTRUCTIONS = createHeartbeatInstructions(context); return { instructionSets: [ @@ -608,8 +659,8 @@ export function onPremCloudInstructions() { }; } -export function cloudInstructions() { - const HEARTBEAT_INSTRUCTIONS = createHeartbeatInstructions(); +export function cloudInstructions(context: TutorialContext) { + const HEARTBEAT_INSTRUCTIONS = createHeartbeatInstructions(context); const HEARTBEAT_CLOUD_INSTRUCTIONS = createHeartbeatCloudInstructions(); return { diff --git a/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts index d6f2fcb232f12..02cd53dddbc1f 100644 --- a/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts @@ -13,268 +13,310 @@ import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; import { cloudPasswordAndResetLink } from './cloud_instructions'; -export const createMetricbeatInstructions = (context?: TutorialContext) => ({ - INSTALL: { - OSX: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.osxTitle', { - defaultMessage: 'Download and install Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.install.osxTextPre', { - defaultMessage: 'First time using Metricbeat? See the [Quick Start]({link}).', - values: { - link: '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'tar xzvf metricbeat-{config.kibana.version}-darwin-x86_64.tar.gz', - 'cd metricbeat-{config.kibana.version}-darwin-x86_64/', - ], - }, - DEB: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.debTitle', { - defaultMessage: 'Download and install Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.install.debTextPre', { - defaultMessage: 'First time using Metricbeat? See the [Quick Start]({link}).', - values: { - link: '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-{config.kibana.version}-amd64.deb', - 'sudo dpkg -i metricbeat-{config.kibana.version}-amd64.deb', - ], - textPost: i18n.translate('home.tutorials.common.metricbeatInstructions.install.debTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', - values: { link: 'https://www.elastic.co/downloads/beats/metricbeat' }, - }), - }, - RPM: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.rpmTitle', { - defaultMessage: 'Download and install Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.install.rpmTextPre', { - defaultMessage: 'First time using Metricbeat? See the [Quick Start]({link}).', - values: { - link: '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', - }, - }), - commands: [ - 'curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-{config.kibana.version}-x86_64.rpm', - 'sudo rpm -vi metricbeat-{config.kibana.version}-x86_64.rpm', - ], - textPost: i18n.translate('home.tutorials.common.metricbeatInstructions.install.debTextPost', { - defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', - values: { link: 'https://www.elastic.co/downloads/beats/metricbeat' }, - }), - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.windowsTitle', { - defaultMessage: 'Download and install Metricbeat', - }), - textPre: i18n.translate( - 'home.tutorials.common.metricbeatInstructions.install.windowsTextPre', - { - defaultMessage: - 'First time using Metricbeat? See the [Quick Start]({metricbeatLink}).\n\ +export const createMetricbeatInstructions = (context: TutorialContext) => { + const SSL_DOC_URL = `https://www.elastic.co/guide/en/beats/metricbeat/${context.kibanaBranch}/configuration-ssl.html#ca-sha256`; + + return { + INSTALL: { + OSX: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.osxTitle', { + defaultMessage: 'Download and install Metricbeat', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.install.osxTextPre', { + defaultMessage: 'First time using Metricbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'tar xzvf metricbeat-{config.kibana.version}-darwin-x86_64.tar.gz', + 'cd metricbeat-{config.kibana.version}-darwin-x86_64/', + ], + }, + DEB: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.debTitle', { + defaultMessage: 'Download and install Metricbeat', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.install.debTextPre', { + defaultMessage: 'First time using Metricbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-{config.kibana.version}-amd64.deb', + 'sudo dpkg -i metricbeat-{config.kibana.version}-amd64.deb', + ], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.install.debTextPost', + { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', + values: { link: 'https://www.elastic.co/downloads/beats/metricbeat' }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.rpmTitle', { + defaultMessage: 'Download and install Metricbeat', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.install.rpmTextPre', { + defaultMessage: 'First time using Metricbeat? See the [Quick Start]({link}).', + values: { + link: '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', + }, + }), + commands: [ + 'curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-{config.kibana.version}-x86_64.rpm', + 'sudo rpm -vi metricbeat-{config.kibana.version}-x86_64.rpm', + ], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.install.debTextPost', + { + defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).', + values: { link: 'https://www.elastic.co/downloads/beats/metricbeat' }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.install.windowsTitle', { + defaultMessage: 'Download and install Metricbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.install.windowsTextPre', + { + defaultMessage: + 'First time using Metricbeat? See the [Quick Start]({metricbeatLink}).\n\ 1. Download the Metricbeat Windows zip file from the [Download]({elasticLink}) page.\n\ 2. Extract the contents of the zip file into {folderPath}.\n\ 3. Rename the {directoryName} directory to `Metricbeat`.\n\ 4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select \ **Run As Administrator**). If you are running Windows XP, you might need to download and install PowerShell.\n\ 5. From the PowerShell prompt, run the following commands to install Metricbeat as a Windows service.', - values: { - directoryName: '`metricbeat-{config.kibana.version}-windows`', - folderPath: '`C:\\Program Files`', - metricbeatLink: - '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', - elasticLink: 'https://www.elastic.co/downloads/beats/metricbeat', - }, - } - ), - commands: ['cd "C:\\Program Files\\Metricbeat"', '.\\install-service-metricbeat.ps1'], - textPost: i18n.translate( - 'home.tutorials.common.metricbeatInstructions.install.windowsTextPost', - { - defaultMessage: - 'Modify the settings under `output.elasticsearch` in the {path} file to point to your Elasticsearch installation.', - values: { path: '`C:\\Program Files\\Metricbeat\\metricbeat.yml`' }, - } - ), - }, - }, - START: { - OSX: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.osxTitle', { - defaultMessage: 'Start Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.osxTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['./metricbeat setup', './metricbeat -e'], - }, - DEB: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.debTitle', { - defaultMessage: 'Start Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.debTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['sudo metricbeat setup', 'sudo service metricbeat start'], - }, - RPM: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.rpmTitle', { - defaultMessage: 'Start Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.rpmTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['sudo metricbeat setup', 'sudo service metricbeat start'], - }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.windowsTitle', { - defaultMessage: 'Start Metricbeat', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.windowsTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['.\\metricbeat.exe setup', 'Start-Service metricbeat'], - }, - }, - CONFIG: { - OSX: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.osxTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.config.osxTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`metricbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.metricbeatInstructions.config.osxTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), - }, - DEB: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.debTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.config.debTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/metricbeat/metricbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.metricbeatInstructions.config.debTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), + values: { + directoryName: '`metricbeat-{config.kibana.version}-windows`', + folderPath: '`C:\\Program Files`', + metricbeatLink: + '{config.docs.beats.metricbeat}/metricbeat-installation-configuration.html', + elasticLink: 'https://www.elastic.co/downloads/beats/metricbeat', + }, + } + ), + commands: ['cd "C:\\Program Files\\Metricbeat"', '.\\install-service-metricbeat.ps1'], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.install.windowsTextPost', + { + defaultMessage: + 'Modify the settings under `output.elasticsearch` in the {path} file to point to your Elasticsearch installation.', + values: { path: '`C:\\Program Files\\Metricbeat\\metricbeat.yml`' }, + } + ), + }, }, - RPM: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.rpmTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.config.rpmTextPre', { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`/etc/metricbeat/metricbeat.yml`', - }, - }), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate('home.tutorials.common.metricbeatInstructions.config.rpmTextPost', { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - }), + START: { + OSX: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.osxTitle', { + defaultMessage: 'Start Metricbeat', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.osxTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['./metricbeat setup', './metricbeat -e'], + }, + DEB: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.debTitle', { + defaultMessage: 'Start Metricbeat', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.debTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['sudo metricbeat setup', 'sudo service metricbeat start'], + }, + RPM: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.rpmTitle', { + defaultMessage: 'Start Metricbeat', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.start.rpmTextPre', { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + }), + commands: ['sudo metricbeat setup', 'sudo service metricbeat start'], + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.start.windowsTitle', { + defaultMessage: 'Start Metricbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.start.windowsTextPre', + { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + } + ), + commands: ['.\\metricbeat.exe setup', 'Start-Service metricbeat'], + }, }, - WINDOWS: { - title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.windowsTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate( - 'home.tutorials.common.metricbeatInstructions.config.windowsTextPre', - { + CONFIG: { + OSX: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.osxTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.config.osxTextPre', { defaultMessage: 'Modify {path} to set the connection information:', values: { - path: '`C:\\Program Files\\Metricbeat\\metricbeat.yml`', + path: '`metricbeat.yml`', }, - } - ), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.metricbeatInstructions.config.windowsTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.config.osxTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + DEB: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.debTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.config.debTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', + path: '`/etc/metricbeat/metricbeat.yml`', }, - } - ), + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.config.debTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + RPM: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.rpmTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate('home.tutorials.common.metricbeatInstructions.config.rpmTextPre', { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`/etc/metricbeat/metricbeat.yml`', + }, + }), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.config.rpmTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, + WINDOWS: { + title: i18n.translate('home.tutorials.common.metricbeatInstructions.config.windowsTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.config.windowsTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`C:\\Program Files\\Metricbeat\\metricbeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.metricbeatInstructions.config.windowsTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, }, - }, -}); + }; +}; export const createMetricbeatCloudInstructions = () => ({ CONFIG: { @@ -442,7 +484,7 @@ export function metricbeatStatusCheck(moduleName: string) { }; } -export function onPremInstructions(moduleName: string, context?: TutorialContext) { +export function onPremInstructions(moduleName: string, context: TutorialContext) { const METRICBEAT_INSTRUCTIONS = createMetricbeatInstructions(context); return { @@ -498,10 +540,10 @@ export function onPremInstructions(moduleName: string, context?: TutorialContext }; } -export function onPremCloudInstructions(moduleName: string) { +export function onPremCloudInstructions(moduleName: string, context: TutorialContext) { const TRYCLOUD_OPTION1 = createTrycloudOption1(); const TRYCLOUD_OPTION2 = createTrycloudOption2(); - const METRICBEAT_INSTRUCTIONS = createMetricbeatInstructions(); + const METRICBEAT_INSTRUCTIONS = createMetricbeatInstructions(context); return { instructionSets: [ @@ -564,8 +606,8 @@ export function onPremCloudInstructions(moduleName: string) { }; } -export function cloudInstructions(moduleName: string) { - const METRICBEAT_INSTRUCTIONS = createMetricbeatInstructions(); +export function cloudInstructions(moduleName: string, context: TutorialContext) { + const METRICBEAT_INSTRUCTIONS = createMetricbeatInstructions(context); const METRICBEAT_CLOUD_INSTRUCTIONS = createMetricbeatCloudInstructions(); return { diff --git a/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts index 7e90795448a6c..2c33285899f65 100644 --- a/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts @@ -13,94 +13,106 @@ import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; import { cloudPasswordAndResetLink } from './cloud_instructions'; -export const createWinlogbeatInstructions = (context?: TutorialContext) => ({ - INSTALL: { - WINDOWS: { - title: i18n.translate('home.tutorials.common.winlogbeatInstructions.install.windowsTitle', { - defaultMessage: 'Download and install Winlogbeat', - }), - textPre: i18n.translate( - 'home.tutorials.common.winlogbeatInstructions.install.windowsTextPre', - { - defaultMessage: - 'First time using Winlogbeat? See the [Quick Start]({winlogbeatLink}).\n\ +export const createWinlogbeatInstructions = (context: TutorialContext) => { + const SSL_DOC_URL = `https://www.elastic.co/guide/en/beats/winlogbeat/${context.kibanaBranch}/configuration-ssl.html#ca-sha256`; + + return { + INSTALL: { + WINDOWS: { + title: i18n.translate('home.tutorials.common.winlogbeatInstructions.install.windowsTitle', { + defaultMessage: 'Download and install Winlogbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.winlogbeatInstructions.install.windowsTextPre', + { + defaultMessage: + 'First time using Winlogbeat? See the [Quick Start]({winlogbeatLink}).\n\ 1. Download the Winlogbeat Windows zip file from the [Download]({elasticLink}) page.\n\ 2. Extract the contents of the zip file into {folderPath}.\n\ 3. Rename the {directoryName} directory to `Winlogbeat`.\n\ 4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select \ **Run As Administrator**). If you are running Windows XP, you might need to download and install PowerShell.\n\ 5. From the PowerShell prompt, run the following commands to install Winlogbeat as a Windows service.', - values: { - directoryName: '`winlogbeat-{config.kibana.version}-windows`', - folderPath: '`C:\\Program Files`', - winlogbeatLink: - '{config.docs.beats.winlogbeat}/winlogbeat-installation-configuration.html', - elasticLink: 'https://www.elastic.co/downloads/beats/winlogbeat', - }, - } - ), - commands: ['cd "C:\\Program Files\\Winlogbeat"', '.\\install-service-winlogbeat.ps1'], - textPost: i18n.translate( - 'home.tutorials.common.winlogbeatInstructions.install.windowsTextPost', - { - defaultMessage: - 'Modify the settings under `output.elasticsearch` in the {path} file to point to your Elasticsearch installation.', - values: { path: '`C:\\Program Files\\Winlogbeat\\winlogbeat.yml`' }, - } - ), + values: { + directoryName: '`winlogbeat-{config.kibana.version}-windows`', + folderPath: '`C:\\Program Files`', + winlogbeatLink: + '{config.docs.beats.winlogbeat}/winlogbeat-installation-configuration.html', + elasticLink: 'https://www.elastic.co/downloads/beats/winlogbeat', + }, + } + ), + commands: ['cd "C:\\Program Files\\Winlogbeat"', '.\\install-service-winlogbeat.ps1'], + textPost: i18n.translate( + 'home.tutorials.common.winlogbeatInstructions.install.windowsTextPost', + { + defaultMessage: + 'Modify the settings under `output.elasticsearch` in the {path} file to point to your Elasticsearch installation.', + values: { path: '`C:\\Program Files\\Winlogbeat\\winlogbeat.yml`' }, + } + ), + }, }, - }, - START: { - WINDOWS: { - title: i18n.translate('home.tutorials.common.winlogbeatInstructions.start.windowsTitle', { - defaultMessage: 'Start Winlogbeat', - }), - textPre: i18n.translate('home.tutorials.common.winlogbeatInstructions.start.windowsTextPre', { - defaultMessage: - 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', - }), - commands: ['.\\winlogbeat.exe setup', 'Start-Service winlogbeat'], + START: { + WINDOWS: { + title: i18n.translate('home.tutorials.common.winlogbeatInstructions.start.windowsTitle', { + defaultMessage: 'Start Winlogbeat', + }), + textPre: i18n.translate( + 'home.tutorials.common.winlogbeatInstructions.start.windowsTextPre', + { + defaultMessage: + 'The `setup` command loads the Kibana dashboards. If the dashboards are already set up, omit this command.', + } + ), + commands: ['.\\winlogbeat.exe setup', 'Start-Service winlogbeat'], + }, }, - }, - CONFIG: { - WINDOWS: { - title: i18n.translate('home.tutorials.common.winlogbeatInstructions.config.windowsTitle', { - defaultMessage: 'Edit the configuration', - }), - textPre: i18n.translate( - 'home.tutorials.common.winlogbeatInstructions.config.windowsTextPre', - { - defaultMessage: 'Modify {path} to set the connection information:', - values: { - path: '`C:\\Program Files\\Winlogbeat\\winlogbeat.yml`', - }, - } - ), - commands: [ - 'output.elasticsearch:', - ' hosts: [""]', - ' username: "elastic"', - ' password: ""', - 'setup.kibana:', - ' host: ""', - getSpaceIdForBeatsTutorial(context), - ], - textPost: i18n.translate( - 'home.tutorials.common.winlogbeatInstructions.config.windowsTextPost', - { - defaultMessage: - 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of Elasticsearch, \ -and {kibanaUrlTemplate} is the URL of Kibana.', - values: { - passwordTemplate: '``', - esUrlTemplate: '``', - kibanaUrlTemplate: '``', - }, - } - ), + CONFIG: { + WINDOWS: { + title: i18n.translate('home.tutorials.common.winlogbeatInstructions.config.windowsTitle', { + defaultMessage: 'Edit the configuration', + }), + textPre: i18n.translate( + 'home.tutorials.common.winlogbeatInstructions.config.windowsTextPre', + { + defaultMessage: 'Modify {path} to set the connection information:', + values: { + path: '`C:\\Program Files\\Winlogbeat\\winlogbeat.yml`', + }, + } + ), + commands: [ + 'output.elasticsearch:', + ' hosts: [""]', + ' username: "elastic"', + ' password: ""', + " # If using Elasticsearch's default certificate", + ' ssl.ca_trusted_fingerprint: ""', + 'setup.kibana:', + ' host: ""', + getSpaceIdForBeatsTutorial(context), + ], + textPost: i18n.translate( + 'home.tutorials.common.winlogbeatInstructions.config.windowsTextPostMarkdown', + { + defaultMessage: + 'Where {passwordTemplate} is the password of the `elastic` user, {esUrlTemplate} is the URL of \ + Elasticsearch, and {kibanaUrlTemplate} is the URL of Kibana. To [configure SSL]({configureSslUrl}) with the \ + default certificate generated by Elasticsearch, add its fingerprint in {esCertFingerprintTemplate}.', + values: { + passwordTemplate: '``', + esUrlTemplate: '``', + kibanaUrlTemplate: '``', + configureSslUrl: SSL_DOC_URL, + esCertFingerprintTemplate: '``', + }, + } + ), + }, }, - }, -}); + }; +}; export const createWinlogbeatCloudInstructions = () => ({ CONFIG: { @@ -158,7 +170,7 @@ export function winlogbeatStatusCheck() { }; } -export function onPremInstructions(context?: TutorialContext) { +export function onPremInstructions(context: TutorialContext) { const WINLOGBEAT_INSTRUCTIONS = createWinlogbeatInstructions(context); return { @@ -186,10 +198,10 @@ export function onPremInstructions(context?: TutorialContext) { }; } -export function onPremCloudInstructions() { +export function onPremCloudInstructions(context: TutorialContext) { const TRYCLOUD_OPTION1 = createTrycloudOption1(); const TRYCLOUD_OPTION2 = createTrycloudOption2(); - const WINLOGBEAT_INSTRUCTIONS = createWinlogbeatInstructions(); + const WINLOGBEAT_INSTRUCTIONS = createWinlogbeatInstructions(context); return { instructionSets: [ @@ -218,8 +230,8 @@ export function onPremCloudInstructions() { }; } -export function cloudInstructions() { - const WINLOGBEAT_INSTRUCTIONS = createWinlogbeatInstructions(); +export function cloudInstructions(context: TutorialContext) { + const WINLOGBEAT_INSTRUCTIONS = createWinlogbeatInstructions(context); const WINLOGBEAT_CLOUD_INSTRUCTIONS = createWinlogbeatCloudInstructions(); return { diff --git a/src/plugins/home/server/tutorials/iptables_logs/index.ts b/src/plugins/home/server/tutorials/iptables_logs/index.ts index 6d298e88a2dfb..f4469de3336cc 100644 --- a/src/plugins/home/server/tutorials/iptables_logs/index.ts +++ b/src/plugins/home/server/tutorials/iptables_logs/index.ts @@ -60,8 +60,8 @@ export function iptablesLogsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/iptables_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/juniper_logs/index.ts b/src/plugins/home/server/tutorials/juniper_logs/index.ts index 7430e4705a5f4..a6d34d1e8447f 100644 --- a/src/plugins/home/server/tutorials/juniper_logs/index.ts +++ b/src/plugins/home/server/tutorials/juniper_logs/index.ts @@ -54,8 +54,8 @@ export function juniperLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/kafka_logs/index.ts b/src/plugins/home/server/tutorials/kafka_logs/index.ts index 9ccc06eb222c7..6e377f3c1f295 100644 --- a/src/plugins/home/server/tutorials/kafka_logs/index.ts +++ b/src/plugins/home/server/tutorials/kafka_logs/index.ts @@ -57,8 +57,8 @@ export function kafkaLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/kafka_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/kafka_metrics/index.ts b/src/plugins/home/server/tutorials/kafka_metrics/index.ts index 973ec06b58fdf..5e6250989d0ab 100644 --- a/src/plugins/home/server/tutorials/kafka_metrics/index.ts +++ b/src/plugins/home/server/tutorials/kafka_metrics/index.ts @@ -54,8 +54,8 @@ export function kafkaMetricsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/kibana_logs/index.ts b/src/plugins/home/server/tutorials/kibana_logs/index.ts index 9863a53700a55..969e4972875f4 100644 --- a/src/plugins/home/server/tutorials/kibana_logs/index.ts +++ b/src/plugins/home/server/tutorials/kibana_logs/index.ts @@ -53,8 +53,8 @@ export function kibanaLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/kibana_metrics/index.ts b/src/plugins/home/server/tutorials/kibana_metrics/index.ts index 3d0eb691ede51..ff8ec0eb6e43c 100644 --- a/src/plugins/home/server/tutorials/kibana_metrics/index.ts +++ b/src/plugins/home/server/tutorials/kibana_metrics/index.ts @@ -54,8 +54,8 @@ export function kibanaMetricsSpecProvider(context: TutorialContext): TutorialSch }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/kubernetes_metrics/index.ts b/src/plugins/home/server/tutorials/kubernetes_metrics/index.ts index 9c66125ee0cfe..acd65e0bdc69d 100644 --- a/src/plugins/home/server/tutorials/kubernetes_metrics/index.ts +++ b/src/plugins/home/server/tutorials/kubernetes_metrics/index.ts @@ -59,8 +59,8 @@ export function kubernetesMetricsSpecProvider(context: TutorialContext): Tutoria completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/kubernetes_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['containers', 'kubernetes'], }; } diff --git a/src/plugins/home/server/tutorials/logstash_logs/index.ts b/src/plugins/home/server/tutorials/logstash_logs/index.ts index 688ad8245b78d..5978241d7e669 100644 --- a/src/plugins/home/server/tutorials/logstash_logs/index.ts +++ b/src/plugins/home/server/tutorials/logstash_logs/index.ts @@ -56,8 +56,8 @@ export function logstashLogsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['custom'], }; } diff --git a/src/plugins/home/server/tutorials/logstash_metrics/index.ts b/src/plugins/home/server/tutorials/logstash_metrics/index.ts index 9ae4bcdcecbf1..d8d7db1b464b1 100644 --- a/src/plugins/home/server/tutorials/logstash_metrics/index.ts +++ b/src/plugins/home/server/tutorials/logstash_metrics/index.ts @@ -55,8 +55,8 @@ export function logstashMetricsSpecProvider(context: TutorialContext): TutorialS }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['custom'], }; } diff --git a/src/plugins/home/server/tutorials/memcached_metrics/index.ts b/src/plugins/home/server/tutorials/memcached_metrics/index.ts index 891567f72ca7c..a48db78e89d88 100644 --- a/src/plugins/home/server/tutorials/memcached_metrics/index.ts +++ b/src/plugins/home/server/tutorials/memcached_metrics/index.ts @@ -54,8 +54,8 @@ export function memcachedMetricsSpecProvider(context: TutorialContext): Tutorial }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['custom'], }; } diff --git a/src/plugins/home/server/tutorials/microsoft_logs/index.ts b/src/plugins/home/server/tutorials/microsoft_logs/index.ts index 88893e22bc9ff..39400f4661071 100644 --- a/src/plugins/home/server/tutorials/microsoft_logs/index.ts +++ b/src/plugins/home/server/tutorials/microsoft_logs/index.ts @@ -57,8 +57,8 @@ export function microsoftLogsSpecProvider(context: TutorialContext): TutorialSch completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/microsoft_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security', 'azure'], }; } diff --git a/src/plugins/home/server/tutorials/misp_logs/index.ts b/src/plugins/home/server/tutorials/misp_logs/index.ts index ea2147a296534..4fb70aa1018f7 100644 --- a/src/plugins/home/server/tutorials/misp_logs/index.ts +++ b/src/plugins/home/server/tutorials/misp_logs/index.ts @@ -57,8 +57,8 @@ export function mispLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/misp_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security', 'azure'], }; } diff --git a/src/plugins/home/server/tutorials/mongodb_logs/index.ts b/src/plugins/home/server/tutorials/mongodb_logs/index.ts index a7f9869d440ed..28e323a2b15a9 100644 --- a/src/plugins/home/server/tutorials/mongodb_logs/index.ts +++ b/src/plugins/home/server/tutorials/mongodb_logs/index.ts @@ -57,8 +57,8 @@ export function mongodbLogsSpecProvider(context: TutorialContext): TutorialSchem completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/mongodb_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/mongodb_metrics/index.ts b/src/plugins/home/server/tutorials/mongodb_metrics/index.ts index cc0ecc0574fa9..db843d09abfd8 100644 --- a/src/plugins/home/server/tutorials/mongodb_metrics/index.ts +++ b/src/plugins/home/server/tutorials/mongodb_metrics/index.ts @@ -59,8 +59,8 @@ export function mongodbMetricsSpecProvider(context: TutorialContext): TutorialSc completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/mongodb_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/mssql_logs/index.ts b/src/plugins/home/server/tutorials/mssql_logs/index.ts index 06cafd95283c8..5e19a2204b22c 100644 --- a/src/plugins/home/server/tutorials/mssql_logs/index.ts +++ b/src/plugins/home/server/tutorials/mssql_logs/index.ts @@ -54,8 +54,8 @@ export function mssqlLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/mssql_metrics/index.ts b/src/plugins/home/server/tutorials/mssql_metrics/index.ts index e3c9e3c338209..3e73714784f0f 100644 --- a/src/plugins/home/server/tutorials/mssql_metrics/index.ts +++ b/src/plugins/home/server/tutorials/mssql_metrics/index.ts @@ -57,8 +57,8 @@ export function mssqlMetricsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/mssql_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/munin_metrics/index.ts b/src/plugins/home/server/tutorials/munin_metrics/index.ts index 12621d05d0766..963e9b63e9ba8 100644 --- a/src/plugins/home/server/tutorials/munin_metrics/index.ts +++ b/src/plugins/home/server/tutorials/munin_metrics/index.ts @@ -54,8 +54,8 @@ export function muninMetricsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/mysql_logs/index.ts b/src/plugins/home/server/tutorials/mysql_logs/index.ts index b0c6f0e69dcfb..9af0a3d078cab 100644 --- a/src/plugins/home/server/tutorials/mysql_logs/index.ts +++ b/src/plugins/home/server/tutorials/mysql_logs/index.ts @@ -57,8 +57,8 @@ export function mysqlLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/mysql_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/mysql_metrics/index.ts b/src/plugins/home/server/tutorials/mysql_metrics/index.ts index 09c55dc81ff84..8339561d060d6 100644 --- a/src/plugins/home/server/tutorials/mysql_metrics/index.ts +++ b/src/plugins/home/server/tutorials/mysql_metrics/index.ts @@ -56,8 +56,8 @@ export function mysqlMetricsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/mysql_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/nats_logs/index.ts b/src/plugins/home/server/tutorials/nats_logs/index.ts index b6ef0a192d92f..971f0c2849bda 100644 --- a/src/plugins/home/server/tutorials/nats_logs/index.ts +++ b/src/plugins/home/server/tutorials/nats_logs/index.ts @@ -58,8 +58,8 @@ export function natsLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/nats_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/nats_metrics/index.ts b/src/plugins/home/server/tutorials/nats_metrics/index.ts index 54f034ad44b19..cdd633d88140c 100644 --- a/src/plugins/home/server/tutorials/nats_metrics/index.ts +++ b/src/plugins/home/server/tutorials/nats_metrics/index.ts @@ -56,8 +56,8 @@ export function natsMetricsSpecProvider(context: TutorialContext): TutorialSchem completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/nats_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/netflow_logs/index.ts b/src/plugins/home/server/tutorials/netflow_logs/index.ts index c659d9c1d31b1..7a81159503468 100644 --- a/src/plugins/home/server/tutorials/netflow_logs/index.ts +++ b/src/plugins/home/server/tutorials/netflow_logs/index.ts @@ -56,8 +56,8 @@ export function netflowLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/netscout_logs/index.ts b/src/plugins/home/server/tutorials/netscout_logs/index.ts index e6c22947f8057..2b1a469a9bbb7 100644 --- a/src/plugins/home/server/tutorials/netscout_logs/index.ts +++ b/src/plugins/home/server/tutorials/netscout_logs/index.ts @@ -54,8 +54,8 @@ export function netscoutLogsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/nginx_logs/index.ts b/src/plugins/home/server/tutorials/nginx_logs/index.ts index e6f2fc4efb01c..3797f2496ee17 100644 --- a/src/plugins/home/server/tutorials/nginx_logs/index.ts +++ b/src/plugins/home/server/tutorials/nginx_logs/index.ts @@ -57,8 +57,8 @@ export function nginxLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/nginx_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/nginx_metrics/index.ts b/src/plugins/home/server/tutorials/nginx_metrics/index.ts index 680dd664912d3..f32e9388c1f5b 100644 --- a/src/plugins/home/server/tutorials/nginx_metrics/index.ts +++ b/src/plugins/home/server/tutorials/nginx_metrics/index.ts @@ -61,8 +61,8 @@ which must be enabled in your Nginx installation. \ completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/nginx_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/o365_logs/index.ts b/src/plugins/home/server/tutorials/o365_logs/index.ts index 3cd4d3a5c5e18..cbdabc7223b32 100644 --- a/src/plugins/home/server/tutorials/o365_logs/index.ts +++ b/src/plugins/home/server/tutorials/o365_logs/index.ts @@ -60,8 +60,8 @@ export function o365LogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/o365_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/okta_logs/index.ts b/src/plugins/home/server/tutorials/okta_logs/index.ts index aad18409de329..f45ffbfb800b5 100644 --- a/src/plugins/home/server/tutorials/okta_logs/index.ts +++ b/src/plugins/home/server/tutorials/okta_logs/index.ts @@ -58,8 +58,8 @@ export function oktaLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/okta_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/openmetrics_metrics/index.ts b/src/plugins/home/server/tutorials/openmetrics_metrics/index.ts index 02625b341549b..d2611fb77895e 100644 --- a/src/plugins/home/server/tutorials/openmetrics_metrics/index.ts +++ b/src/plugins/home/server/tutorials/openmetrics_metrics/index.ts @@ -48,8 +48,8 @@ export function openmetricsMetricsSpecProvider(context: TutorialContext): Tutori }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/oracle_metrics/index.ts b/src/plugins/home/server/tutorials/oracle_metrics/index.ts index 14cf5392c5231..263f2f5ab184b 100644 --- a/src/plugins/home/server/tutorials/oracle_metrics/index.ts +++ b/src/plugins/home/server/tutorials/oracle_metrics/index.ts @@ -55,8 +55,8 @@ export function oracleMetricsSpecProvider(context: TutorialContext): TutorialSch }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/osquery_logs/index.ts b/src/plugins/home/server/tutorials/osquery_logs/index.ts index 4f87fc4e256e1..1c77222ce43a0 100644 --- a/src/plugins/home/server/tutorials/osquery_logs/index.ts +++ b/src/plugins/home/server/tutorials/osquery_logs/index.ts @@ -60,8 +60,8 @@ export function osqueryLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security', 'os_system'], }; } diff --git a/src/plugins/home/server/tutorials/panw_logs/index.ts b/src/plugins/home/server/tutorials/panw_logs/index.ts index f5158c48f30d5..4b44038c07ade 100644 --- a/src/plugins/home/server/tutorials/panw_logs/index.ts +++ b/src/plugins/home/server/tutorials/panw_logs/index.ts @@ -60,8 +60,8 @@ export function panwLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/panw_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/php_fpm_metrics/index.ts b/src/plugins/home/server/tutorials/php_fpm_metrics/index.ts index 40b35984fb17a..0a033e6378729 100644 --- a/src/plugins/home/server/tutorials/php_fpm_metrics/index.ts +++ b/src/plugins/home/server/tutorials/php_fpm_metrics/index.ts @@ -54,8 +54,8 @@ export function phpfpmMetricsSpecProvider(context: TutorialContext): TutorialSch }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/postgresql_logs/index.ts b/src/plugins/home/server/tutorials/postgresql_logs/index.ts index 3a092e61b0bd9..a628f422dfb72 100644 --- a/src/plugins/home/server/tutorials/postgresql_logs/index.ts +++ b/src/plugins/home/server/tutorials/postgresql_logs/index.ts @@ -60,8 +60,8 @@ export function postgresqlLogsSpecProvider(context: TutorialContext): TutorialSc completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/postgresql_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/postgresql_metrics/index.ts b/src/plugins/home/server/tutorials/postgresql_metrics/index.ts index 501ea252cd16f..0ef48c33a7475 100644 --- a/src/plugins/home/server/tutorials/postgresql_metrics/index.ts +++ b/src/plugins/home/server/tutorials/postgresql_metrics/index.ts @@ -56,8 +56,8 @@ export function postgresqlMetricsSpecProvider(context: TutorialContext): Tutoria }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore'], }; } diff --git a/src/plugins/home/server/tutorials/prometheus_metrics/index.ts b/src/plugins/home/server/tutorials/prometheus_metrics/index.ts index 2f422e5e3be70..92a08bcce0ca4 100644 --- a/src/plugins/home/server/tutorials/prometheus_metrics/index.ts +++ b/src/plugins/home/server/tutorials/prometheus_metrics/index.ts @@ -55,8 +55,8 @@ export function prometheusMetricsSpecProvider(context: TutorialContext): Tutoria }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['monitoring', 'datastore'], }; } diff --git a/src/plugins/home/server/tutorials/rabbitmq_logs/index.ts b/src/plugins/home/server/tutorials/rabbitmq_logs/index.ts index 8a1634e7da038..be6576de45a98 100644 --- a/src/plugins/home/server/tutorials/rabbitmq_logs/index.ts +++ b/src/plugins/home/server/tutorials/rabbitmq_logs/index.ts @@ -54,8 +54,8 @@ export function rabbitmqLogsSpecProvider(context: TutorialContext): TutorialSche }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/rabbitmq_metrics/index.ts b/src/plugins/home/server/tutorials/rabbitmq_metrics/index.ts index abfc895088d91..4487a187fa373 100644 --- a/src/plugins/home/server/tutorials/rabbitmq_metrics/index.ts +++ b/src/plugins/home/server/tutorials/rabbitmq_metrics/index.ts @@ -60,8 +60,8 @@ export function rabbitmqMetricsSpecProvider(context: TutorialContext): TutorialS completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/rabbitmq_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/radware_logs/index.ts b/src/plugins/home/server/tutorials/radware_logs/index.ts index 3e918a0a4064c..4abd897c0aff3 100644 --- a/src/plugins/home/server/tutorials/radware_logs/index.ts +++ b/src/plugins/home/server/tutorials/radware_logs/index.ts @@ -54,8 +54,8 @@ export function radwareLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/redis_logs/index.ts b/src/plugins/home/server/tutorials/redis_logs/index.ts index f6aada27dec48..bb5d902d089e2 100644 --- a/src/plugins/home/server/tutorials/redis_logs/index.ts +++ b/src/plugins/home/server/tutorials/redis_logs/index.ts @@ -63,8 +63,8 @@ Note that the `slowlog` fileset is experimental. \ completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/redis_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['datastore', 'message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/redis_metrics/index.ts b/src/plugins/home/server/tutorials/redis_metrics/index.ts index 2bb300c48ff65..d2e8ed1efb779 100644 --- a/src/plugins/home/server/tutorials/redis_metrics/index.ts +++ b/src/plugins/home/server/tutorials/redis_metrics/index.ts @@ -56,8 +56,8 @@ export function redisMetricsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/redis_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore', 'message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/redisenterprise_metrics/index.ts b/src/plugins/home/server/tutorials/redisenterprise_metrics/index.ts index 62e1386f29dbb..85d6dce9adc52 100644 --- a/src/plugins/home/server/tutorials/redisenterprise_metrics/index.ts +++ b/src/plugins/home/server/tutorials/redisenterprise_metrics/index.ts @@ -55,8 +55,8 @@ export function redisenterpriseMetricsSpecProvider(context: TutorialContext): Tu completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/redisenterprise_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore', 'message_queue'], }; } diff --git a/src/plugins/home/server/tutorials/santa_logs/index.ts b/src/plugins/home/server/tutorials/santa_logs/index.ts index da9f2e940066e..65a7bb0bd26cb 100644 --- a/src/plugins/home/server/tutorials/santa_logs/index.ts +++ b/src/plugins/home/server/tutorials/santa_logs/index.ts @@ -58,8 +58,8 @@ export function santaLogsSpecProvider(context: TutorialContext): TutorialSchema completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/santa_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security', 'os_system'], }; } diff --git a/src/plugins/home/server/tutorials/sonicwall_logs/index.ts b/src/plugins/home/server/tutorials/sonicwall_logs/index.ts index 04bf7a3968320..40eb324014b15 100644 --- a/src/plugins/home/server/tutorials/sonicwall_logs/index.ts +++ b/src/plugins/home/server/tutorials/sonicwall_logs/index.ts @@ -54,8 +54,8 @@ export function sonicwallLogsSpecProvider(context: TutorialContext): TutorialSch }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/sophos_logs/index.ts b/src/plugins/home/server/tutorials/sophos_logs/index.ts index 4fadcecb6e1bd..c6d6f7318b6ed 100644 --- a/src/plugins/home/server/tutorials/sophos_logs/index.ts +++ b/src/plugins/home/server/tutorials/sophos_logs/index.ts @@ -54,8 +54,8 @@ export function sophosLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/squid_logs/index.ts b/src/plugins/home/server/tutorials/squid_logs/index.ts index 2d8f055d7fa6b..f325dbbd650ca 100644 --- a/src/plugins/home/server/tutorials/squid_logs/index.ts +++ b/src/plugins/home/server/tutorials/squid_logs/index.ts @@ -54,8 +54,8 @@ export function squidLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['security'], }; } diff --git a/src/plugins/home/server/tutorials/stan_metrics/index.ts b/src/plugins/home/server/tutorials/stan_metrics/index.ts index 0b3c0352b663d..50f2b9dbd2e87 100644 --- a/src/plugins/home/server/tutorials/stan_metrics/index.ts +++ b/src/plugins/home/server/tutorials/stan_metrics/index.ts @@ -56,8 +56,8 @@ export function stanMetricsSpecProvider(context: TutorialContext): TutorialSchem completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/stan_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['message_queue', 'kubernetes'], }; } diff --git a/src/plugins/home/server/tutorials/statsd_metrics/index.ts b/src/plugins/home/server/tutorials/statsd_metrics/index.ts index 1be010a01d5a6..c6ea0cf7ee879 100644 --- a/src/plugins/home/server/tutorials/statsd_metrics/index.ts +++ b/src/plugins/home/server/tutorials/statsd_metrics/index.ts @@ -45,8 +45,8 @@ export function statsdMetricsSpecProvider(context: TutorialContext): TutorialSch completionTimeMinutes: 10, // previewImagePath: '', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['message_queue', 'kubernetes'], }; } diff --git a/src/plugins/home/server/tutorials/suricata_logs/index.ts b/src/plugins/home/server/tutorials/suricata_logs/index.ts index 373522e333379..a511be4a7a968 100644 --- a/src/plugins/home/server/tutorials/suricata_logs/index.ts +++ b/src/plugins/home/server/tutorials/suricata_logs/index.ts @@ -58,8 +58,8 @@ export function suricataLogsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/suricata_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/system_logs/index.ts b/src/plugins/home/server/tutorials/system_logs/index.ts index fcc5745f48252..1de6d9df10ffb 100644 --- a/src/plugins/home/server/tutorials/system_logs/index.ts +++ b/src/plugins/home/server/tutorials/system_logs/index.ts @@ -56,8 +56,8 @@ export function systemLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['os_system', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/system_metrics/index.ts b/src/plugins/home/server/tutorials/system_metrics/index.ts index 1348535d9bb72..10a6c741721b8 100644 --- a/src/plugins/home/server/tutorials/system_metrics/index.ts +++ b/src/plugins/home/server/tutorials/system_metrics/index.ts @@ -58,8 +58,8 @@ It collects system wide statistics and statistics per process and filesystem. \ completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/system_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['os_system', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/tomcat_logs/index.ts b/src/plugins/home/server/tutorials/tomcat_logs/index.ts index 3258d3eff5a16..2f24354742771 100644 --- a/src/plugins/home/server/tutorials/tomcat_logs/index.ts +++ b/src/plugins/home/server/tutorials/tomcat_logs/index.ts @@ -54,8 +54,8 @@ export function tomcatLogsSpecProvider(context: TutorialContext): TutorialSchema }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/traefik_logs/index.ts b/src/plugins/home/server/tutorials/traefik_logs/index.ts index 30b9db4022137..7411e396a5655 100644 --- a/src/plugins/home/server/tutorials/traefik_logs/index.ts +++ b/src/plugins/home/server/tutorials/traefik_logs/index.ts @@ -56,8 +56,8 @@ export function traefikLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/traefik_metrics/index.ts b/src/plugins/home/server/tutorials/traefik_metrics/index.ts index 6f76be3056110..6e1d8d621e62e 100644 --- a/src/plugins/home/server/tutorials/traefik_metrics/index.ts +++ b/src/plugins/home/server/tutorials/traefik_metrics/index.ts @@ -44,8 +44,8 @@ export function traefikMetricsSpecProvider(context: TutorialContext): TutorialSc }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/uptime_monitors/index.ts b/src/plugins/home/server/tutorials/uptime_monitors/index.ts index 118174d0e5717..9015cb4783163 100644 --- a/src/plugins/home/server/tutorials/uptime_monitors/index.ts +++ b/src/plugins/home/server/tutorials/uptime_monitors/index.ts @@ -55,8 +55,8 @@ export function uptimeMonitorsSpecProvider(context: TutorialContext): TutorialSc completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/uptime_monitors/screenshot.png', onPrem: onPremInstructions([], context), - elasticCloud: cloudInstructions(), - onPremElasticCloud: onPremCloudInstructions(), + elasticCloud: cloudInstructions(context), + onPremElasticCloud: onPremCloudInstructions(context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/uwsgi_metrics/index.ts b/src/plugins/home/server/tutorials/uwsgi_metrics/index.ts index b1dbeb89bdb26..bb288ba72ab02 100644 --- a/src/plugins/home/server/tutorials/uwsgi_metrics/index.ts +++ b/src/plugins/home/server/tutorials/uwsgi_metrics/index.ts @@ -57,8 +57,8 @@ export function uwsgiMetricsSpecProvider(context: TutorialContext): TutorialSche completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/uwsgi_metrics/screenshot.png', onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/vsphere_metrics/index.ts b/src/plugins/home/server/tutorials/vsphere_metrics/index.ts index 14a574872221a..0070be6622294 100644 --- a/src/plugins/home/server/tutorials/vsphere_metrics/index.ts +++ b/src/plugins/home/server/tutorials/vsphere_metrics/index.ts @@ -54,8 +54,8 @@ export function vSphereMetricsSpecProvider(context: TutorialContext): TutorialSc }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['web', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/windows_event_logs/index.ts b/src/plugins/home/server/tutorials/windows_event_logs/index.ts index 008468487ea64..baab0f4c95080 100644 --- a/src/plugins/home/server/tutorials/windows_event_logs/index.ts +++ b/src/plugins/home/server/tutorials/windows_event_logs/index.ts @@ -54,8 +54,8 @@ export function windowsEventLogsSpecProvider(context: TutorialContext): Tutorial }, completionTimeMinutes: 10, onPrem: onPremInstructions(context), - elasticCloud: cloudInstructions(), - onPremElasticCloud: onPremCloudInstructions(), + elasticCloud: cloudInstructions(context), + onPremElasticCloud: onPremCloudInstructions(context), integrationBrowserCategories: ['os_system', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/windows_metrics/index.ts b/src/plugins/home/server/tutorials/windows_metrics/index.ts index 31d9b3f8962ce..ebd5e6864a229 100644 --- a/src/plugins/home/server/tutorials/windows_metrics/index.ts +++ b/src/plugins/home/server/tutorials/windows_metrics/index.ts @@ -54,8 +54,8 @@ export function windowsMetricsSpecProvider(context: TutorialContext): TutorialSc }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['os_system', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/zeek_logs/index.ts b/src/plugins/home/server/tutorials/zeek_logs/index.ts index df86518978c52..3eded8336df74 100644 --- a/src/plugins/home/server/tutorials/zeek_logs/index.ts +++ b/src/plugins/home/server/tutorials/zeek_logs/index.ts @@ -58,8 +58,8 @@ export function zeekLogsSpecProvider(context: TutorialContext): TutorialSchema { completionTimeMinutes: 10, previewImagePath: '/plugins/home/assets/zeek_logs/screenshot.png', onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'monitoring', 'security'], }; } diff --git a/src/plugins/home/server/tutorials/zookeeper_metrics/index.ts b/src/plugins/home/server/tutorials/zookeeper_metrics/index.ts index 8f732969a07f3..4e4206bc1ca29 100644 --- a/src/plugins/home/server/tutorials/zookeeper_metrics/index.ts +++ b/src/plugins/home/server/tutorials/zookeeper_metrics/index.ts @@ -55,8 +55,8 @@ export function zookeeperMetricsSpecProvider(context: TutorialContext): Tutorial }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, context), - elasticCloud: cloudInstructions(moduleName), - onPremElasticCloud: onPremCloudInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, context), integrationBrowserCategories: ['datastore', 'config_management'], }; } diff --git a/src/plugins/home/server/tutorials/zscaler_logs/index.ts b/src/plugins/home/server/tutorials/zscaler_logs/index.ts index 977bbb242c62a..316590c74fd76 100644 --- a/src/plugins/home/server/tutorials/zscaler_logs/index.ts +++ b/src/plugins/home/server/tutorials/zscaler_logs/index.ts @@ -54,8 +54,8 @@ export function zscalerLogsSpecProvider(context: TutorialContext): TutorialSchem }, completionTimeMinutes: 10, onPrem: onPremInstructions(moduleName, platforms, context), - elasticCloud: cloudInstructions(moduleName, platforms), - onPremElasticCloud: onPremCloudInstructions(moduleName, platforms), + elasticCloud: cloudInstructions(moduleName, platforms, context), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms, context), integrationBrowserCategories: ['network', 'security'], }; } diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 0df0153b7197a..ea1e870068dd8 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -2407,16 +2407,12 @@ "home.tutorials.common.auditbeatCloudInstructions.config.rpmTitle": "構成を編集する", "home.tutorials.common.auditbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.auditbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.auditbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.auditbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.auditbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.auditbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.auditbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.auditbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.auditbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.auditbeatInstructions.config.windowsTitle": "構成を編集する", "home.tutorials.common.auditbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", @@ -2465,16 +2461,12 @@ "home.tutorials.common.filebeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", "home.tutorials.common.filebeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", "home.tutorials.common.filebeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.filebeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.filebeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.filebeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.filebeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.filebeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.filebeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.filebeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.filebeatInstructions.config.windowsTitle": "構成を編集する", "home.tutorials.common.filebeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", @@ -2515,10 +2507,8 @@ "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTitle": "Cloudwatch ロググループの構成", "home.tutorials.common.functionbeatEnableOnPremInstructionsOSXLinux.textPre": "「functionbeat.yml」ファイルで設定を変更します。", "home.tutorials.common.functionbeatEnableOnPremInstructionsWindows.textPre": "{path} ファイルで設定を変更します。", - "home.tutorials.common.functionbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.functionbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.functionbeatInstructions.config.osxTitle": "Elastic クラスターの構成", - "home.tutorials.common.functionbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.functionbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.functionbeatInstructions.config.windowsTitle": "構成を編集する", "home.tutorials.common.functionbeatInstructions.deploy.osxTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", @@ -2559,16 +2549,12 @@ "home.tutorials.common.heartbeatEnableOnPremInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", "home.tutorials.common.heartbeatEnableOnPremInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", "home.tutorials.common.heartbeatEnableOnPremInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.heartbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.heartbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.heartbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.heartbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.heartbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.heartbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.heartbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.heartbeatInstructions.config.windowsTitle": "構成を編集する", "home.tutorials.common.heartbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", @@ -2622,16 +2608,12 @@ "home.tutorials.common.metricbeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", "home.tutorials.common.metricbeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", "home.tutorials.common.metricbeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.metricbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.metricbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.metricbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.metricbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.metricbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.metricbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.metricbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.metricbeatInstructions.config.windowsTitle": "構成を編集する", "home.tutorials.common.metricbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", @@ -2666,7 +2648,6 @@ "home.tutorials.common.winlogbeat.premInstructions.gettingStarted.title": "はじめに", "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.winlogbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", "home.tutorials.common.winlogbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", "home.tutorials.common.winlogbeatInstructions.config.windowsTitle": "構成を編集する", "home.tutorials.common.winlogbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 301c264b34736..3b9da9228d157 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -2424,16 +2424,12 @@ "home.tutorials.common.auditbeatCloudInstructions.config.rpmTitle": "编辑配置", "home.tutorials.common.auditbeatCloudInstructions.config.windowsTextPre": "修改 {path} 以设置 Elastic Cloud 的连接信息:", "home.tutorials.common.auditbeatCloudInstructions.config.windowsTitle": "编辑配置", - "home.tutorials.common.auditbeatInstructions.config.debTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.auditbeatInstructions.config.debTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.auditbeatInstructions.config.debTitle": "编辑配置", - "home.tutorials.common.auditbeatInstructions.config.osxTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.auditbeatInstructions.config.osxTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.auditbeatInstructions.config.osxTitle": "编辑配置", - "home.tutorials.common.auditbeatInstructions.config.rpmTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.auditbeatInstructions.config.rpmTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.auditbeatInstructions.config.rpmTitle": "编辑配置", - "home.tutorials.common.auditbeatInstructions.config.windowsTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.auditbeatInstructions.config.windowsTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.auditbeatInstructions.config.windowsTitle": "编辑配置", "home.tutorials.common.auditbeatInstructions.install.debTextPost": "寻找 32 位软件包?请参阅[下载页面]({linkUrl})。", @@ -2482,16 +2478,12 @@ "home.tutorials.common.filebeatEnableInstructions.windowsTextPost": "在 `modules.d/{moduleName}.yml` 文件中修改设置。", "home.tutorials.common.filebeatEnableInstructions.windowsTextPre": "从 {path} 文件夹中,运行:", "home.tutorials.common.filebeatEnableInstructions.windowsTitle": "启用和配置 {moduleName} 模块", - "home.tutorials.common.filebeatInstructions.config.debTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.filebeatInstructions.config.debTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.filebeatInstructions.config.debTitle": "编辑配置", - "home.tutorials.common.filebeatInstructions.config.osxTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.filebeatInstructions.config.osxTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.filebeatInstructions.config.osxTitle": "编辑配置", - "home.tutorials.common.filebeatInstructions.config.rpmTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.filebeatInstructions.config.rpmTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.filebeatInstructions.config.rpmTitle": "编辑配置", - "home.tutorials.common.filebeatInstructions.config.windowsTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.filebeatInstructions.config.windowsTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.filebeatInstructions.config.windowsTitle": "编辑配置", "home.tutorials.common.filebeatInstructions.install.debTextPost": "寻找 32 位软件包?请参阅[下载页面]({linkUrl})。", @@ -2532,10 +2524,8 @@ "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTitle": "配置 Cloudwatch 日志组", "home.tutorials.common.functionbeatEnableOnPremInstructionsOSXLinux.textPre": "在 `functionbeat.yml` 文件中修改设置。", "home.tutorials.common.functionbeatEnableOnPremInstructionsWindows.textPre": "在 {path} 文件中修改设置。", - "home.tutorials.common.functionbeatInstructions.config.osxTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.functionbeatInstructions.config.osxTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.functionbeatInstructions.config.osxTitle": "配置 Elastic 集群", - "home.tutorials.common.functionbeatInstructions.config.windowsTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.functionbeatInstructions.config.windowsTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.functionbeatInstructions.config.windowsTitle": "编辑配置", "home.tutorials.common.functionbeatInstructions.deploy.osxTextPre": "这会将 Functionbeat 安装为 Lambda 函数。`setup` 命令检查 Elasticsearch 配置并加载 Kibana 索引模式。通常可省略此命令。", @@ -2576,16 +2566,12 @@ "home.tutorials.common.heartbeatEnableOnPremInstructions.osxTextPre": "在 `heartbeat.yml` 文件中编辑 `heartbeat.monitors` 设置。", "home.tutorials.common.heartbeatEnableOnPremInstructions.rpmTextPre": "在 `heartbeat.yml` 文件中编辑 `heartbeat.monitors` 设置。", "home.tutorials.common.heartbeatEnableOnPremInstructions.windowsTextPre": "在 `heartbeat.yml` 文件中编辑 `heartbeat.monitors` 设置。", - "home.tutorials.common.heartbeatInstructions.config.debTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.heartbeatInstructions.config.debTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.heartbeatInstructions.config.debTitle": "编辑配置", - "home.tutorials.common.heartbeatInstructions.config.osxTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.heartbeatInstructions.config.osxTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.heartbeatInstructions.config.osxTitle": "编辑配置", - "home.tutorials.common.heartbeatInstructions.config.rpmTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.heartbeatInstructions.config.rpmTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.heartbeatInstructions.config.rpmTitle": "编辑配置", - "home.tutorials.common.heartbeatInstructions.config.windowsTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.heartbeatInstructions.config.windowsTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.heartbeatInstructions.config.windowsTitle": "编辑配置", "home.tutorials.common.heartbeatInstructions.install.debTextPost": "寻找 32 位软件包?请参阅[下载页面]({link})。", @@ -2639,16 +2625,12 @@ "home.tutorials.common.metricbeatEnableInstructions.windowsTextPost": "在 `modules.d/{moduleName}.yml` 文件中修改设置。", "home.tutorials.common.metricbeatEnableInstructions.windowsTextPre": "从 {path} 文件夹中,运行:", "home.tutorials.common.metricbeatEnableInstructions.windowsTitle": "启用和配置 {moduleName} 模块", - "home.tutorials.common.metricbeatInstructions.config.debTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.metricbeatInstructions.config.debTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.metricbeatInstructions.config.debTitle": "编辑配置", - "home.tutorials.common.metricbeatInstructions.config.osxTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.metricbeatInstructions.config.osxTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.metricbeatInstructions.config.osxTitle": "编辑配置", - "home.tutorials.common.metricbeatInstructions.config.rpmTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.metricbeatInstructions.config.rpmTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.metricbeatInstructions.config.rpmTitle": "编辑配置", - "home.tutorials.common.metricbeatInstructions.config.windowsTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.metricbeatInstructions.config.windowsTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.metricbeatInstructions.config.windowsTitle": "编辑配置", "home.tutorials.common.metricbeatInstructions.install.debTextPost": "寻找 32 位软件包?请参阅[下载页面]({link})。", @@ -2683,7 +2665,6 @@ "home.tutorials.common.winlogbeat.premInstructions.gettingStarted.title": "入门", "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTextPre": "修改 {path} 以设置 Elastic Cloud 的连接信息:", "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTitle": "编辑配置", - "home.tutorials.common.winlogbeatInstructions.config.windowsTextPost": "其中,{passwordTemplate} 是 `elastic` 用户的密码,{esUrlTemplate} 是 Elasticsearch 的 URL,{kibanaUrlTemplate} 是 Kibana 的 URL。", "home.tutorials.common.winlogbeatInstructions.config.windowsTextPre": "修改 {path} 以设置连接信息:", "home.tutorials.common.winlogbeatInstructions.config.windowsTitle": "编辑配置", "home.tutorials.common.winlogbeatInstructions.install.windowsTextPost": "在 {path} 文件中修改 `output.elasticsearch` 下的设置以指向您的 Elasticsearch 安装。",