diff --git a/src/core_plugins/kibana/public/home/tutorial_resources/iis_logs/screenshot.png b/src/core_plugins/kibana/public/home/tutorial_resources/iis_logs/screenshot.png new file mode 100644 index 0000000000000..1e30a2d5c90fa Binary files /dev/null and b/src/core_plugins/kibana/public/home/tutorial_resources/iis_logs/screenshot.png differ diff --git a/src/core_plugins/kibana/public/home/tutorial_resources/logstash_logs/screenshot.png b/src/core_plugins/kibana/public/home/tutorial_resources/logstash_logs/screenshot.png new file mode 100644 index 0000000000000..392a2fb9c89eb Binary files /dev/null and b/src/core_plugins/kibana/public/home/tutorial_resources/logstash_logs/screenshot.png differ diff --git a/src/core_plugins/kibana/public/home/tutorial_resources/postgresql_logs/screenshot.png b/src/core_plugins/kibana/public/home/tutorial_resources/postgresql_logs/screenshot.png new file mode 100644 index 0000000000000..8185dcd54c510 Binary files /dev/null and b/src/core_plugins/kibana/public/home/tutorial_resources/postgresql_logs/screenshot.png differ diff --git a/src/core_plugins/kibana/public/home/tutorial_resources/traefik_logs/screenshot.png b/src/core_plugins/kibana/public/home/tutorial_resources/traefik_logs/screenshot.png new file mode 100644 index 0000000000000..c4149b9cd545e Binary files /dev/null and b/src/core_plugins/kibana/public/home/tutorial_resources/traefik_logs/screenshot.png differ diff --git a/src/core_plugins/kibana/server/tutorials/elasticsearch_logs/index.js b/src/core_plugins/kibana/server/tutorials/elasticsearch_logs/index.js new file mode 100644 index 0000000000000..ea9f7bd8dee03 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/elasticsearch_logs/index.js @@ -0,0 +1,52 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions'; + +export function elasticsearchLogsSpecProvider() { + const moduleName = 'elasticsearch'; + const geoipRequired = false; + const uaRequired = false; + const platforms = ['OSX', 'DEB', 'RPM', 'WINDOWS']; + return { + id: 'elasticsearchLogs', + name: 'Elasticsearch logs', + category: TUTORIAL_CATEGORY.LOGGING, + isBeta: true, + shortDescription: 'Collect and parse logs created by Elasticsearch.', + longDescription: 'The `elasticsearch` Filebeat module parses logs created by Elasticsearch.' + + ' [Learn more]({config.docs.beats.filebeat}/filebeat-module-elasticsearch.html).', + euiIconType: 'logoElasticsearch', + artifacts: { + application: { + label: 'Discover', + path: '/app/kibana#/discover' + }, + dashboards: [], + exportedFields: { + documentationUrl: '{config.docs.beats.filebeat}/exported-fields-elasticsearch.html' + } + }, + completionTimeMinutes: 10, + onPrem: onPremInstructions(moduleName, platforms, geoipRequired, uaRequired), + elasticCloud: cloudInstructions(moduleName, platforms), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/iis_logs/index.js b/src/core_plugins/kibana/server/tutorials/iis_logs/index.js new file mode 100644 index 0000000000000..9cb12280566a9 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/iis_logs/index.js @@ -0,0 +1,54 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions'; + +export function iisLogsSpecProvider() { + const moduleName = 'iis'; + const geoipRequired = false; + const uaRequired = false; + const platforms = ['WINDOWS']; + return { + id: 'iisLogs', + name: 'IIS logs', + category: TUTORIAL_CATEGORY.LOGGING, + shortDescription: 'Collect and parse access and error logs created by the IIS HTTP server.', + longDescription: 'The `iis` Filebeat module parses access and error logs created by the IIS HTTP server.' + + ' [Learn more]({config.docs.beats.filebeat}/filebeat-module-iis.html).', + //euiIconType: 'logoIIS', + artifacts: { + dashboards: [ + { + id: '4278ad30-fe16-11e7-a3b0-d13028918f9f', + linkLabel: 'IIS logs dashboard', + isOverview: true + } + ], + exportedFields: { + documentationUrl: '{config.docs.beats.filebeat}/exported-fields-iis.html' + } + }, + completionTimeMinutes: 10, + previewImagePath: '/plugins/kibana/home/tutorial_resources/iis_logs/screenshot.png', + onPrem: onPremInstructions(moduleName, platforms, geoipRequired, uaRequired), + elasticCloud: cloudInstructions(moduleName, platforms), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/logstash_logs/index.js b/src/core_plugins/kibana/server/tutorials/logstash_logs/index.js new file mode 100644 index 0000000000000..8d3458d575f8d --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/logstash_logs/index.js @@ -0,0 +1,54 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions'; + +export function logstashLogsSpecProvider() { + const moduleName = 'logstash'; + const geoipRequired = false; + const uaRequired = false; + const platforms = ['OSX', 'DEB', 'RPM', 'WINDOWS']; + return { + id: 'logstashLogs', + name: 'Logstash logs', + category: TUTORIAL_CATEGORY.LOGGING, + shortDescription: 'Collect and parse debug and slow logs created by Logstash itself.', + longDescription: 'The `logstash` Filebeat module parses debug and slow logs created by Logstash itself.' + + ' [Learn more]({config.docs.beats.filebeat}/filebeat-module-logstash.html).', + euiIconType: 'logoLogstash', + artifacts: { + dashboards: [ + { + id: 'Filebeat-Logstash-Log-Dashboard', + linkLabel: 'Logstash logs dashboard', + isOverview: true + } + ], + exportedFields: { + documentationUrl: '{config.docs.beats.filebeat}/exported-fields-logstash.html' + } + }, + completionTimeMinutes: 10, + previewImagePath: '/plugins/kibana/home/tutorial_resources/logstash_logs/screenshot.png', + onPrem: onPremInstructions(moduleName, platforms, geoipRequired, uaRequired), + elasticCloud: cloudInstructions(moduleName, platforms), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/postgresql_logs/index.js b/src/core_plugins/kibana/server/tutorials/postgresql_logs/index.js new file mode 100644 index 0000000000000..fa17700fc9b34 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/postgresql_logs/index.js @@ -0,0 +1,54 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions'; + +export function postgresqlLogsSpecProvider() { + const moduleName = 'postgresql'; + const geoipRequired = false; + const uaRequired = false; + const platforms = ['OSX', 'DEB', 'RPM', 'WINDOWS']; + return { + id: 'postgresqlLogs', + name: 'PostgreSQL logs', + category: TUTORIAL_CATEGORY.LOGGING, + shortDescription: 'Collect and parse error and slow logs created by PostgreSQL.', + longDescription: 'The `postgresql` Filebeat module parses error and slow logs created by PostgreSQL.' + + ' [Learn more]({config.docs.beats.filebeat}/filebeat-module-postgresql.html).', + //euiIconType: 'logoPostgreSQL', + artifacts: { + dashboards: [ + { + id: '158be870-87f4-11e7-ad9c-db80de0bf8d3', + linkLabel: 'PostgreSQL logs dashboard', + isOverview: true + } + ], + exportedFields: { + documentationUrl: '{config.docs.beats.filebeat}/exported-fields-postgresql.html' + } + }, + completionTimeMinutes: 10, + previewImagePath: '/plugins/kibana/home/tutorial_resources/postgresql_logs/screenshot.png', + onPrem: onPremInstructions(moduleName, platforms, geoipRequired, uaRequired), + elasticCloud: cloudInstructions(moduleName, platforms), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/register.js b/src/core_plugins/kibana/server/tutorials/register.js index 647fbd9290a06..cf23318f4f2e4 100644 --- a/src/core_plugins/kibana/server/tutorials/register.js +++ b/src/core_plugins/kibana/server/tutorials/register.js @@ -21,7 +21,10 @@ import { systemLogsSpecProvider } from './system_logs'; import { systemMetricsSpecProvider } from './system_metrics'; import { apacheLogsSpecProvider } from './apache_logs'; import { apacheMetricsSpecProvider } from './apache_metrics'; +import { elasticsearchLogsSpecProvider } from './elasticsearch_logs'; +import { iisLogsSpecProvider } from './iis_logs'; import { kafkaLogsSpecProvider } from './kafka_logs'; +import { logstashLogsSpecProvider } from './logstash_logs'; import { nginxLogsSpecProvider } from './nginx_logs'; import { nginxMetricsSpecProvider } from './nginx_metrics'; import { mysqlLogsSpecProvider } from './mysql_logs'; @@ -30,6 +33,7 @@ import { mongodbMetricsSpecProvider } from './mongodb_metrics'; import { osqueryLogsSpecProvider } from './osquery_logs'; import { phpfpmMetricsSpecProvider } from './php_fpm_metrics'; import { postgresqlMetricsSpecProvider } from './postgresql_metrics'; +import { postgresqlLogsSpecProvider } from './postgresql_logs'; import { rabbitmqMetricsSpecProvider } from './rabbitmq_metrics'; import { redisLogsSpecProvider } from './redis_logs'; import { redisMetricsSpecProvider } from './redis_metrics'; @@ -37,6 +41,7 @@ import { dockerMetricsSpecProvider } from './docker_metrics'; import { kubernetesMetricsSpecProvider } from './kubernetes_metrics'; import { uwsgiMetricsSpecProvider } from './uwsgi_metrics'; import { netflowSpecProvider } from './netflow'; +import { traefikLogsSpecProvider } from './traefik_logs'; import { apmSpecProvider } from './apm'; import { cephMetricsSpecProvider } from './ceph_metrics'; import { aerospikeMetricsSpecProvider } from './aerospike_metrics'; @@ -61,7 +66,10 @@ export function registerTutorials(server) { server.registerTutorial(systemMetricsSpecProvider); server.registerTutorial(apacheLogsSpecProvider); server.registerTutorial(apacheMetricsSpecProvider); + server.registerTutorial(elasticsearchLogsSpecProvider); + server.registerTutorial(iisLogsSpecProvider); server.registerTutorial(kafkaLogsSpecProvider); + server.registerTutorial(logstashLogsSpecProvider); server.registerTutorial(nginxLogsSpecProvider); server.registerTutorial(nginxMetricsSpecProvider); server.registerTutorial(mysqlLogsSpecProvider); @@ -70,6 +78,7 @@ export function registerTutorials(server) { server.registerTutorial(osqueryLogsSpecProvider); server.registerTutorial(phpfpmMetricsSpecProvider); server.registerTutorial(postgresqlMetricsSpecProvider); + server.registerTutorial(postgresqlLogsSpecProvider); server.registerTutorial(rabbitmqMetricsSpecProvider); server.registerTutorial(redisLogsSpecProvider); server.registerTutorial(redisMetricsSpecProvider); @@ -77,6 +86,7 @@ export function registerTutorials(server) { server.registerTutorial(kubernetesMetricsSpecProvider); server.registerTutorial(uwsgiMetricsSpecProvider); server.registerTutorial(netflowSpecProvider); + server.registerTutorial(traefikLogsSpecProvider); server.registerTutorial(apmSpecProvider); server.registerTutorial(cephMetricsSpecProvider); server.registerTutorial(aerospikeMetricsSpecProvider); diff --git a/src/core_plugins/kibana/server/tutorials/traefik_logs/index.js b/src/core_plugins/kibana/server/tutorials/traefik_logs/index.js new file mode 100644 index 0000000000000..f3786d964b0f7 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/traefik_logs/index.js @@ -0,0 +1,54 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions'; + +export function traefikLogsSpecProvider() { + const moduleName = 'traefik'; + const geoipRequired = false; + const uaRequired = false; + const platforms = ['OSX', 'DEB', 'RPM', 'WINDOWS']; + return { + id: 'traefikLogs', + name: 'Traefik logs', + category: TUTORIAL_CATEGORY.LOGGING, + shortDescription: 'Collect and parse access logs created by the Traefik Proxy.', + longDescription: 'The `traefik` Filebeat module parses access logs created by Traefik.' + + ' [Learn more]({config.docs.beats.filebeat}/filebeat-module-traefik.html).', + //euiIconType: 'logoTraefik', + artifacts: { + dashboards: [ + { + id: 'Filebeat-Traefik-Dashboard', + linkLabel: 'Traefik logs dashboard', + isOverview: true + } + ], + exportedFields: { + documentationUrl: '{config.docs.beats.filebeat}/exported-fields-traefik.html' + } + }, + completionTimeMinutes: 10, + previewImagePath: '/plugins/kibana/home/tutorial_resources/traefik_logs/screenshot.png', + onPrem: onPremInstructions(moduleName, platforms, geoipRequired, uaRequired), + elasticCloud: cloudInstructions(moduleName, platforms), + onPremElasticCloud: onPremCloudInstructions(moduleName, platforms) + }; +}