[SIEM] Update Add Data References of "Security analytics" to "SIEM" (#40899) (#41043)

* change add data security references to siem

* update links to siem add data page

* update snapshot

* fix translations
This commit is contained in:
Michael Marcialis 2019-07-12 16:45:10 -04:00 committed by GitHub
parent 458de86dd8
commit d453b7858f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 311 additions and 233 deletions

View file

@ -19,7 +19,7 @@
export const TUTORIAL_CATEGORY = {
LOGGING: 'logging',
SECURITY: 'security',
SIEM: 'siem',
METRICS: 'metrics',
OTHER: 'other',
};

View file

@ -171,25 +171,25 @@ exports[`apmUiEnabled 1`] = `
className="homAddData__card"
description={
<span
id="aria-describedby.addSecurityButtonLabel"
id="aria-describedby.addSiemButtonLabel"
>
Centralize security events for interactive investigation in ready-to-go visualizations.
</span>
}
footer={
<EuiButton
aria-describedby="aria-describedby.addSecurityButtonLabel"
aria-describedby="aria-describedby.addSiemButtonLabel"
className="homAddData__button"
color="primary"
fill={false}
href="#/home/tutorial_directory/security"
href="#/home/tutorial_directory/siem"
iconSide="left"
size="m"
type="button"
>
<FormattedMessage
defaultMessage="Add security events"
id="kbn.home.addData.security.addSecurityEventsButtonLabel"
id="kbn.home.addData.siem.addSiemEventsButtonLabel"
values={Object {}}
/>
</EuiButton>
@ -197,12 +197,12 @@ exports[`apmUiEnabled 1`] = `
icon={
<EuiIcon
className="homAddData__icon"
type="securityApp"
type="securityAnalyticsApp"
/>
}
layout="vertical"
textAlign="center"
title="Security analytics"
title="SIEM"
titleElement="span"
/>
</EuiFlexItem>
@ -420,25 +420,25 @@ exports[`isNewKibanaInstance 1`] = `
className="homAddData__card"
description={
<span
id="aria-describedby.addSecurityButtonLabel"
id="aria-describedby.addSiemButtonLabel"
>
Centralize security events for interactive investigation in ready-to-go visualizations.
</span>
}
footer={
<EuiButton
aria-describedby="aria-describedby.addSecurityButtonLabel"
aria-describedby="aria-describedby.addSiemButtonLabel"
className="homAddData__button"
color="primary"
fill={false}
href="#/home/tutorial_directory/security"
href="#/home/tutorial_directory/siem"
iconSide="left"
size="m"
type="button"
>
<FormattedMessage
defaultMessage="Add security events"
id="kbn.home.addData.security.addSecurityEventsButtonLabel"
id="kbn.home.addData.siem.addSiemEventsButtonLabel"
values={Object {}}
/>
</EuiButton>
@ -446,12 +446,12 @@ exports[`isNewKibanaInstance 1`] = `
icon={
<EuiIcon
className="homAddData__icon"
type="securityApp"
type="securityAnalyticsApp"
/>
}
layout="vertical"
textAlign="center"
title="Security analytics"
title="SIEM"
titleElement="span"
/>
</EuiFlexItem>
@ -711,25 +711,25 @@ exports[`mlEnabled 1`] = `
className="homAddData__card"
description={
<span
id="aria-describedby.addSecurityButtonLabel"
id="aria-describedby.addSiemButtonLabel"
>
Centralize security events for interactive investigation in ready-to-go visualizations.
</span>
}
footer={
<EuiButton
aria-describedby="aria-describedby.addSecurityButtonLabel"
aria-describedby="aria-describedby.addSiemButtonLabel"
className="homAddData__button"
color="primary"
fill={false}
href="#/home/tutorial_directory/security"
href="#/home/tutorial_directory/siem"
iconSide="left"
size="m"
type="button"
>
<FormattedMessage
defaultMessage="Add security events"
id="kbn.home.addData.security.addSecurityEventsButtonLabel"
id="kbn.home.addData.siem.addSiemEventsButtonLabel"
values={Object {}}
/>
</EuiButton>
@ -737,12 +737,12 @@ exports[`mlEnabled 1`] = `
icon={
<EuiIcon
className="homAddData__icon"
type="securityApp"
type="securityAnalyticsApp"
/>
}
layout="vertical"
textAlign="center"
title="Security analytics"
title="SIEM"
titleElement="span"
/>
</EuiFlexItem>
@ -998,25 +998,25 @@ exports[`render 1`] = `
className="homAddData__card"
description={
<span
id="aria-describedby.addSecurityButtonLabel"
id="aria-describedby.addSiemButtonLabel"
>
Centralize security events for interactive investigation in ready-to-go visualizations.
</span>
}
footer={
<EuiButton
aria-describedby="aria-describedby.addSecurityButtonLabel"
aria-describedby="aria-describedby.addSiemButtonLabel"
className="homAddData__button"
color="primary"
fill={false}
href="#/home/tutorial_directory/security"
href="#/home/tutorial_directory/siem"
iconSide="left"
size="m"
type="button"
>
<FormattedMessage
defaultMessage="Add security events"
id="kbn.home.addData.security.addSecurityEventsButtonLabel"
id="kbn.home.addData.siem.addSiemEventsButtonLabel"
values={Object {}}
/>
</EuiButton>
@ -1024,12 +1024,12 @@ exports[`render 1`] = `
icon={
<EuiIcon
className="homAddData__icon"
type="securityApp"
type="securityAnalyticsApp"
/>
}
layout="vertical"
textAlign="center"
title="Security analytics"
title="SIEM"
titleElement="span"
/>
</EuiFlexItem>

View file

@ -42,61 +42,68 @@ import {
const basePath = chrome.getBasePath();
const AddDataUi = ({ apmUiEnabled, isNewKibanaInstance, intl, mlEnabled }) => {
const renderCards = () => {
const ampData = {
const apmData = {
title: intl.formatMessage({
id: 'kbn.home.addData.apm.nameTitle', defaultMessage: 'APM'
id: 'kbn.home.addData.apm.nameTitle',
defaultMessage: 'APM',
}),
description: intl.formatMessage({
id: 'kbn.home.addData.apm.nameDescription',
defaultMessage: 'APM automatically collects in-depth performance metrics and errors from inside your applications.'
defaultMessage:
'APM automatically collects in-depth performance metrics and errors from inside your applications.',
}),
ariaDescribedby: 'aria-describedby.addAmpButtonLabel'
ariaDescribedby: 'aria-describedby.addAmpButtonLabel',
};
const loggingData = {
title: intl.formatMessage({
id: 'kbn.home.addData.logging.nameTitle', defaultMessage: 'Logging'
id: 'kbn.home.addData.logging.nameTitle',
defaultMessage: 'Logging',
}),
description: intl.formatMessage({
id: 'kbn.home.addData.logging.nameDescription',
defaultMessage: 'Ingest logs from popular data sources and easily visualize in preconfigured dashboards.'
defaultMessage:
'Ingest logs from popular data sources and easily visualize in preconfigured dashboards.',
}),
ariaDescribedby: 'aria-describedby.addLogDataButtonLabel'
ariaDescribedby: 'aria-describedby.addLogDataButtonLabel',
};
const metricsData = {
title: intl.formatMessage({
id: 'kbn.home.addData.metrics.nameTitle', defaultMessage: 'Metrics'
id: 'kbn.home.addData.metrics.nameTitle',
defaultMessage: 'Metrics',
}),
description: intl.formatMessage({
id: 'kbn.home.addData.metrics.nameDescription',
defaultMessage: 'Collect metrics from the operating system and services running on your servers.'
defaultMessage:
'Collect metrics from the operating system and services running on your servers.',
}),
ariaDescribedby: 'aria-describedby.addMetricsButtonLabel'
ariaDescribedby: 'aria-describedby.addMetricsButtonLabel',
};
const securityData = {
const siemData = {
title: intl.formatMessage({
id: 'kbn.home.addData.security.nameTitle', defaultMessage: 'Security analytics'
id: 'kbn.home.addData.siem.nameTitle',
defaultMessage: 'SIEM',
}),
description: intl.formatMessage({
id: 'kbn.home.addData.security.nameDescription',
defaultMessage: 'Centralize security events for interactive investigation in ready-to-go visualizations.'
id: 'kbn.home.addData.siem.nameDescription',
defaultMessage:
'Centralize security events for interactive investigation in ready-to-go visualizations.',
}),
ariaDescribedby: 'aria-describedby.addSecurityButtonLabel'
ariaDescribedby: 'aria-describedby.addSiemButtonLabel',
};
const getApmCard = () => (
const getApmCard = () => (
<EuiFlexItem grow={false}>
<EuiCard
className="homAddData__card"
icon={<EuiIcon className="homAddData__icon" type="apmApp" />}
title={ampData.title}
description={<span id={ampData.ariaDescribedby}>{ampData.description}</span>}
title={apmData.title}
description={<span id={apmData.ariaDescribedby}>{apmData.description}</span>}
footer={
<EuiButton
className="homAddData__button"
href="#/home/tutorial/apm"
aria-describedby={ampData.ariaDescribedby}
aria-describedby={apmData.ariaDescribedby}
>
<FormattedMessage
id="kbn.home.addData.apm.addApmButtonLabel"
@ -109,14 +116,19 @@ const AddDataUi = ({ apmUiEnabled, isNewKibanaInstance, intl, mlEnabled }) => {
);
return (
<EuiFlexGroup className="homeAddData__flexGroup" wrap={apmUiEnabled} gutterSize="l" justifyContent="spaceAround" responsive={false}>
<EuiFlexGroup
className="homeAddData__flexGroup"
wrap={apmUiEnabled}
gutterSize="l"
justifyContent="spaceAround"
responsive={false}
>
{apmUiEnabled !== false && getApmCard()}
<EuiFlexItem grow={false}>
<EuiCard
className="homAddData__card"
icon={<EuiIcon className="homAddData__icon" type="loggingApp" />}
icon={<EuiIcon className="homAddData__icon" type="loggingApp" />}
title={loggingData.title}
description={<span id={loggingData.ariaDescribedby}>{loggingData.description}</span>}
footer={
@ -158,17 +170,17 @@ const AddDataUi = ({ apmUiEnabled, isNewKibanaInstance, intl, mlEnabled }) => {
<EuiFlexItem grow={false}>
<EuiCard
className="homAddData__card"
icon={<EuiIcon className="homAddData__icon" type="securityApp" />}
title={securityData.title}
description={<span id={securityData.ariaDescribedby}>{securityData.description}</span>}
icon={<EuiIcon className="homAddData__icon" type="securityAnalyticsApp" />}
title={siemData.title}
description={<span id={siemData.ariaDescribedby}>{siemData.description}</span>}
footer={
<EuiButton
className="homAddData__button"
href="#/home/tutorial_directory/security"
aria-describedby={securityData.ariaDescribedby}
href="#/home/tutorial_directory/siem"
aria-describedby={siemData.ariaDescribedby}
>
<FormattedMessage
id="kbn.home.addData.security.addSecurityEventsButtonLabel"
id="kbn.home.addData.siem.addSiemEventsButtonLabel"
defaultMessage="Add security events"
/>
</EuiButton>
@ -179,7 +191,9 @@ const AddDataUi = ({ apmUiEnabled, isNewKibanaInstance, intl, mlEnabled }) => {
);
};
const footerItemClasses = classNames('homAddData__footerItem', { 'homAddData__footerItem--highlight': isNewKibanaInstance });
const footerItemClasses = classNames('homAddData__footerItem', {
'homAddData__footerItem--highlight': isNewKibanaInstance,
});
return (
<EuiPanel paddingSize="l">
@ -230,7 +244,7 @@ const AddDataUi = ({ apmUiEnabled, isNewKibanaInstance, intl, mlEnabled }) => {
</EuiLink>
</EuiText>
</EuiFlexItem>
{mlEnabled !== false ?
{mlEnabled !== false ? (
<EuiFlexItem className={footerItemClasses}>
<EuiText size="s">
<strong style={{ height: 38 }}>
@ -250,8 +264,7 @@ const AddDataUi = ({ apmUiEnabled, isNewKibanaInstance, intl, mlEnabled }) => {
</EuiLink>
</EuiText>
</EuiFlexItem>
: null
}
) : null}
<EuiFlexItem className={footerItemClasses}>
<EuiText size="s">
<strong style={{ height: 38 }}>

View file

@ -35,7 +35,6 @@ import {
EuiPageBody,
} from '@elastic/eui';
import { getTutorials } from '../load_tutorials';
import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
@ -45,32 +44,59 @@ const ALL_TAB_ID = 'all';
const SAMPLE_DATA_TAB_ID = 'sampleData';
const homeTitle = i18n.translate('kbn.home.breadcrumbs.homeTitle', { defaultMessage: 'Home' });
const addDataTitle = i18n.translate('kbn.home.breadcrumbs.addDataTitle', { defaultMessage: 'Add data' });
const addDataTitle = i18n.translate('kbn.home.breadcrumbs.addDataTitle', {
defaultMessage: 'Add data',
});
class TutorialDirectoryUi extends React.Component {
constructor(props) {
super(props);
this.tabs = [{
id: ALL_TAB_ID,
name: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.tabs.allTitle', defaultMessage: 'All' }),
}, {
id: 'logging',
name: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.tabs.loggingTitle', defaultMessage: 'Logging' }),
}, {
id: 'metrics',
name: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.tabs.metricsTitle', defaultMessage: 'Metrics' }),
}, {
id: 'security',
name: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.tabs.securityAnalyticsTitle', defaultMessage: 'Security analytics' }),
}, {
id: SAMPLE_DATA_TAB_ID,
name: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.tabs.sampleDataTitle', defaultMessage: 'Sample data' }),
}];
this.tabs = [
{
id: ALL_TAB_ID,
name: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.tabs.allTitle',
defaultMessage: 'All',
}),
},
{
id: 'logging',
name: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.tabs.loggingTitle',
defaultMessage: 'Logging',
}),
},
{
id: 'metrics',
name: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.tabs.metricsTitle',
defaultMessage: 'Metrics',
}),
},
{
id: 'siem',
name: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.tabs.siemTitle',
defaultMessage: 'SIEM',
}),
},
{
id: SAMPLE_DATA_TAB_ID,
name: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.tabs.sampleDataTitle',
defaultMessage: 'Sample data',
}),
},
];
let openTab = ALL_TAB_ID;
if (props.openTab && this.tabs.some(tab => { return tab.id === props.openTab; })) {
if (
props.openTab &&
this.tabs.some(tab => {
return tab.id === props.openTab;
})
) {
openTab = props.openTab;
}
this.state = {
@ -89,9 +115,9 @@ class TutorialDirectoryUi extends React.Component {
chrome.breadcrumbs.set([
{
text: homeTitle,
href: '#/home'
href: '#/home',
},
{ text: addDataTitle }
{ text: addDataTitle },
]);
const tutorialConfigs = await getTutorials();
@ -115,9 +141,13 @@ class TutorialDirectoryUi extends React.Component {
// Add card for sample data that only gets show in "all" tab
tutorialCards.push({
name: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.card.sampleDataTitle', defaultMessage: 'Sample Data' }),
description: this.props.intl.formatMessage({ id: 'kbn.home.tutorial.card.sampleDataDescription',
defaultMessage: 'Get started exploring Kibana with these "one click" data sets.'
name: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.card.sampleDataTitle',
defaultMessage: 'Sample Data',
}),
description: this.props.intl.formatMessage({
id: 'kbn.home.tutorial.card.sampleDataDescription',
defaultMessage: 'Get started exploring Kibana with these "one click" data sets.',
}),
url: this.props.addBasePath('#/home/tutorial_directory/sampleData'),
elasticCloud: true,
@ -134,7 +164,8 @@ class TutorialDirectoryUi extends React.Component {
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
});
this.setState({ // eslint-disable-line react/no-did-mount-set-state
this.setState({
// eslint-disable-line react/no-did-mount-set-state
tutorialCards: tutorialCards,
});
}
@ -155,43 +186,40 @@ class TutorialDirectoryUi extends React.Component {
{tab.name}
</EuiTab>
));
}
};
renderTabContent = () => {
if (this.state.selectedTabId === SAMPLE_DATA_TAB_ID) {
return (
<SampleDataSetCards
addBasePath={this.props.addBasePath}
/>
);
return <SampleDataSetCards addBasePath={this.props.addBasePath} />;
}
return (
<EuiFlexGrid columns={4}>
{
this.state.tutorialCards
.filter((tutorial) => {
return this.state.selectedTabId === ALL_TAB_ID || this.state.selectedTabId === tutorial.category;
})
.map((tutorial) => {
return (
<EuiFlexItem key={tutorial.name}>
<Synopsis
iconType={tutorial.icon}
description={tutorial.description}
title={tutorial.name}
wrapInPanel
url={tutorial.url}
onClick={tutorial.onClick}
isBeta={tutorial.isBeta}
/>
</EuiFlexItem>
);
})
}
{this.state.tutorialCards
.filter(tutorial => {
return (
this.state.selectedTabId === ALL_TAB_ID ||
this.state.selectedTabId === tutorial.category
);
})
.map(tutorial => {
return (
<EuiFlexItem key={tutorial.name}>
<Synopsis
iconType={tutorial.icon}
description={tutorial.description}
title={tutorial.name}
wrapInPanel
url={tutorial.url}
onClick={tutorial.onClick}
isBeta={tutorial.isBeta}
/>
</EuiFlexItem>
);
})}
</EuiFlexGrid>
);
}
};
render() {
return (
@ -208,12 +236,9 @@ class TutorialDirectoryUi extends React.Component {
<EuiSpacer size="m" />
<EuiTabs>
{this.renderTabs()}
</EuiTabs>
<EuiTabs>{this.renderTabs()}</EuiTabs>
<EuiSpacer />
{this.renderTabContent()}
</EuiPageBody>
</EuiPage>
);

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/auditbeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/auditbeat_instructions';
export function auditbeatSpecProvider(server, context) {
const platforms = ['OSX', 'DEB', 'RPM', 'WINDOWS'];
@ -28,12 +32,13 @@ export function auditbeatSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.auditbeat.nameTitle', {
defaultMessage: 'Auditbeat',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.auditbeat.shortDescription', {
defaultMessage: 'Collect audit data from your hosts.',
}),
longDescription: i18n.translate('kbn.server.tutorials.auditbeat.longDescription', {
defaultMessage: 'Use Auditbeat to collect auditing data from your hosts. These include \
defaultMessage:
'Use Auditbeat to collect auditing data from your hosts. These include \
processes, users, logins, sockets information, file accesses, and more. \
[Learn more]({learnMoreLink}).',
values: {
@ -45,21 +50,18 @@ processes, users, logins, sockets information, file accesses, and more. \
dashboards: [],
application: {
path: '/app/siem',
label: i18n.translate(
'kbn.server.tutorials.auditbeat.artifacts.dashboards.linkLabel',
{
defaultMessage: 'SIEM App',
}
),
label: i18n.translate('kbn.server.tutorials.auditbeat.artifacts.dashboards.linkLabel', {
defaultMessage: 'SIEM App',
}),
},
exportedFields: {
documentationUrl: '{config.docs.beats.auditbeat}/exported-fields.html'
}
documentationUrl: '{config.docs.beats.auditbeat}/exported-fields.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/auditbeat/screenshot.png',
onPrem: onPremInstructions(platforms, context),
elasticCloud: cloudInstructions(platforms),
onPremElasticCloud: onPremCloudInstructions(platforms)
onPremElasticCloud: onPremCloudInstructions(platforms),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function ciscoLogsSpecProvider(server, context) {
const moduleName = 'cisco';
@ -29,12 +33,13 @@ export function ciscoLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.ciscoLogs.nameTitle', {
defaultMessage: 'Cisco',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.ciscoLogs.shortDescription', {
defaultMessage: 'Collect and parse logs received from Cisco ASA firewalls.',
}),
longDescription: i18n.translate('kbn.server.tutorials.ciscoLogs.longDescription', {
defaultMessage: 'This is a module for Cisco network devices logs. Currently \
defaultMessage:
'This is a module for Cisco network devices logs. Currently \
supports the "asa" fileset for Cisco ASA firewall logs received over syslog or read from a file. \
[Learn more]({learnMoreLink}).',
values: {
@ -46,21 +51,18 @@ supports the "asa" fileset for Cisco ASA firewall logs received over syslog or r
dashboards: [],
application: {
path: '/app/siem',
label: i18n.translate(
'kbn.server.tutorials.ciscoLogs.artifacts.dashboards.linkLabel',
{
defaultMessage: 'SIEM App',
}
),
label: i18n.translate('kbn.server.tutorials.ciscoLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'SIEM App',
}),
},
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-cisco.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-cisco.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/cisco_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function corednsLogsSpecProvider(server, context) {
const moduleName = 'coredns';
@ -29,12 +33,13 @@ export function corednsLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.corednsLogs.nameTitle', {
defaultMessage: 'CoreDNS logs',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.corednsLogs.shortDescription', {
defaultMessage: 'Collect the logs created by Coredns.',
}),
longDescription: i18n.translate('kbn.server.tutorials.corednsLogs.longDescription', {
defaultMessage: 'The `coredns` Filebeat module collects the logs from \
defaultMessage:
'The `coredns` Filebeat module collects the logs from \
[CoreDNS](https://coredns.io/manual/toc/). \
[Learn more]({learnMoreLink}).',
values: {
@ -46,20 +51,23 @@ export function corednsLogsSpecProvider(server, context) {
dashboards: [
{
id: '53aa1f70-443e-11e9-8548-ab7fbe04f038',
linkLabel: i18n.translate('kbn.server.tutorials.corednsLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'CoreDNS logs dashboard',
}),
isOverview: true
}
linkLabel: i18n.translate(
'kbn.server.tutorials.corednsLogs.artifacts.dashboards.linkLabel',
{
defaultMessage: 'CoreDNS logs dashboard',
}
),
isOverview: true,
},
],
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-coredns.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-coredns.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/coredns_logs/screenshot.jpg',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function envoyproxyLogsSpecProvider(server, context) {
const moduleName = 'envoyproxy';
@ -29,12 +33,13 @@ export function envoyproxyLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.envoyproxyLogs.nameTitle', {
defaultMessage: 'Envoyproxy',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.envoyproxyLogs.shortDescription', {
defaultMessage: 'Collect and parse logs received from the Envoy proxy.',
}),
longDescription: i18n.translate('kbn.server.tutorials.envoyproxyLogs.longDescription', {
defaultMessage: 'This is a filebeat module for [Envoy proxy access log](https://www.envoyproxy.io/docs/envoy/v1.10.0/configuration/access_log). \
defaultMessage:
'This is a filebeat module for [Envoy proxy access log](https://www.envoyproxy.io/docs/envoy/v1.10.0/configuration/access_log). \
It supports both standalone deployment and Envoy proxy deployment in Kubernetes. \
[Learn more]({learnMoreLink}).',
values: {
@ -54,13 +59,13 @@ It supports both standalone deployment and Envoy proxy deployment in Kubernetes.
),
},
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-envoyproxy.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-envoyproxy.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/envoyproxy_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function iptablesLogsSpecProvider(server, context) {
const moduleName = 'iptables';
@ -29,12 +33,13 @@ export function iptablesLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.iptablesLogs.nameTitle', {
defaultMessage: 'Iptables / Ubiquiti',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.iptablesLogs.shortDescription', {
defaultMessage: 'Collect and parse iptables and ip6tables logs or from Ubiqiti firewalls.',
}),
longDescription: i18n.translate('kbn.server.tutorials.iptablesLogs.longDescription', {
defaultMessage: 'This is a module for iptables and ip6tables logs. It parses logs \
defaultMessage:
'This is a module for iptables and ip6tables logs. It parses logs \
received over the network via syslog or from a file. Also, it understands the \
prefix added by some Ubiquiti firewalls, which includes the rule set name, rule \
number and the action performed on the traffic (allow/deny).. \
@ -48,21 +53,18 @@ number and the action performed on the traffic (allow/deny).. \
dashboards: [],
application: {
path: '/app/siem',
label: i18n.translate(
'kbn.server.tutorials.iptablesLogs.artifacts.dashboards.linkLabel',
{
defaultMessage: 'SIEM App',
}
),
label: i18n.translate('kbn.server.tutorials.iptablesLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'SIEM App',
}),
},
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-iptables.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-iptables.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/iptables_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -28,7 +28,7 @@ export function netflowSpecProvider() {
return {
id: 'netflow',
name: 'Netflow',
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.netflow.tutorialShortDescription', {
defaultMessage: 'Collect Netflow records sent by a Netflow exporter.',
}),

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function osqueryLogsSpecProvider(server, context) {
const moduleName = 'osquery';
@ -29,12 +33,13 @@ export function osqueryLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.osqueryLogs.nameTitle', {
defaultMessage: 'Osquery logs',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.osqueryLogs.shortDescription', {
defaultMessage: 'Collect the result logs created by osqueryd.',
}),
longDescription: i18n.translate('kbn.server.tutorials.osqueryLogs.longDescription', {
defaultMessage: 'The `osquery` Filebeat module collects the JSON result logs collected by `osqueryd`. \
defaultMessage:
'The `osquery` Filebeat module collects the JSON result logs collected by `osqueryd`. \
[Learn more]({learnMoreLink}).',
values: {
learnMoreLink: '{config.docs.beats.filebeat}/filebeat-module-osquery.html',
@ -45,20 +50,23 @@ export function osqueryLogsSpecProvider(server, context) {
dashboards: [
{
id: '69f5ae20-eb02-11e7-8f04-51231daa5b05-ecs',
linkLabel: i18n.translate('kbn.server.tutorials.osqueryLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'Osquery logs dashboard',
}),
isOverview: true
}
linkLabel: i18n.translate(
'kbn.server.tutorials.osqueryLogs.artifacts.dashboards.linkLabel',
{
defaultMessage: 'Osquery logs dashboard',
}
),
isOverview: true,
},
],
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-osquery.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-osquery.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/osquery_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function suricataLogsSpecProvider(server, context) {
const moduleName = 'suricata';
@ -29,12 +33,13 @@ export function suricataLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.suricataLogs.nameTitle', {
defaultMessage: 'Suricata logs',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.suricataLogs.shortDescription', {
defaultMessage: 'Collect the result logs created by Suricata IDS/IPS/NSM.',
}),
longDescription: i18n.translate('kbn.server.tutorials.suricataLogs.longDescription', {
defaultMessage: 'The `suricata` Filebeat module collects the logs from the \
defaultMessage:
'The `suricata` Filebeat module collects the logs from the \
[Suricata Eve JSON output](https://suricata.readthedocs.io/en/latest/output/eve/eve-json-format.html). \
[Learn more]({learnMoreLink}).',
values: {
@ -46,20 +51,23 @@ export function suricataLogsSpecProvider(server, context) {
dashboards: [
{
id: '69f5ae20-eb02-11e7-8f04-51231daa5b05',
linkLabel: i18n.translate('kbn.server.tutorials.suricataLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'Suricata logs dashboard',
}),
isOverview: true
}
linkLabel: i18n.translate(
'kbn.server.tutorials.suricataLogs.artifacts.dashboards.linkLabel',
{
defaultMessage: 'Suricata logs dashboard',
}
),
isOverview: true,
},
],
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-suricata.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-suricata.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/suricata_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/winlogbeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/winlogbeat_instructions';
export function windowsEventLogsSpecProvider(server, context) {
return {
@ -28,12 +32,13 @@ export function windowsEventLogsSpecProvider(server, context) {
defaultMessage: 'Windows Event Log',
}),
isBeta: false,
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.windowsEventLogs.shortDescription', {
defaultMessage: 'Fetch logs from the Windows Event Log.',
}),
longDescription: i18n.translate('kbn.server.tutorials.windowsEventLogs.longDescription', {
defaultMessage: 'Use Winlogbeat to collect the logs from the Windows Event Log. \
defaultMessage:
'Use Winlogbeat to collect the logs from the Windows Event Log. \
[Learn more]({learnMoreLink}).',
values: {
learnMoreLink: '{config.docs.beats.winlogbeat}/index.html',
@ -45,16 +50,16 @@ export function windowsEventLogsSpecProvider(server, context) {
label: i18n.translate('kbn.server.tutorials.windowsEventLogs.artifacts.application.label', {
defaultMessage: 'SIEM App',
}),
path: '/app/siem'
path: '/app/siem',
},
dashboards: [],
exportedFields: {
documentationUrl: '{config.docs.beats.winlogbeat}/exported-fields.html'
}
documentationUrl: '{config.docs.beats.winlogbeat}/exported-fields.html',
},
},
completionTimeMinutes: 10,
onPrem: onPremInstructions(null, null, null, context),
elasticCloud: cloudInstructions(),
onPremElasticCloud: onPremCloudInstructions()
onPremElasticCloud: onPremCloudInstructions(),
};
}

View file

@ -17,9 +17,13 @@
* under the License.
*/
import { i18n } from '@kbn/i18n';
import { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
import {
onPremInstructions,
cloudInstructions,
onPremCloudInstructions,
} from '../../../common/tutorials/filebeat_instructions';
export function zeekLogsSpecProvider(server, context) {
const moduleName = 'zeek';
@ -29,12 +33,13 @@ export function zeekLogsSpecProvider(server, context) {
name: i18n.translate('kbn.server.tutorials.zeekLogs.nameTitle', {
defaultMessage: 'Zeek logs',
}),
category: TUTORIAL_CATEGORY.SECURITY,
category: TUTORIAL_CATEGORY.SIEM,
shortDescription: i18n.translate('kbn.server.tutorials.zeekLogs.shortDescription', {
defaultMessage: 'Collect the logs created by Zeek/Bro.',
}),
longDescription: i18n.translate('kbn.server.tutorials.zeekLogs.longDescription', {
defaultMessage: 'The `zeek` Filebeat module collects the logs from \
defaultMessage:
'The `zeek` Filebeat module collects the logs from \
[Zeek](https://www.zeek.org//documentation/index.html). \
[Learn more]({learnMoreLink}).',
values: {
@ -46,20 +51,23 @@ export function zeekLogsSpecProvider(server, context) {
dashboards: [
{
id: '7cbb5410-3700-11e9-aa6d-ff445a78330c',
linkLabel: i18n.translate('kbn.server.tutorials.zeekLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'Zeek logs dashboard',
}),
isOverview: true
}
linkLabel: i18n.translate(
'kbn.server.tutorials.zeekLogs.artifacts.dashboards.linkLabel',
{
defaultMessage: 'Zeek logs dashboard',
}
),
isOverview: true,
},
],
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-zeek.html'
}
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-zeek.html',
},
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/zeek_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms),
};
}

View file

@ -111,7 +111,7 @@ export const HomePage = pure(() => (
<EuiFlexItem grow={false}>
<EuiButton
data-test-subj="add-data"
href="kibana#home/tutorial_directory/security"
href="kibana#home/tutorial_directory/siem"
iconType="plusInCircle"
>
<FormattedMessage

View file

@ -19,7 +19,7 @@ export const HostsEmptyPage = pure(() => (
<EmptyPage
actionPrimaryIcon="gear"
actionPrimaryLabel={i18n.EMPTY_ACTION_PRIMARY}
actionPrimaryUrl={`${basePath}/app/kibana#/home/tutorial_directory/security`}
actionPrimaryUrl={`${basePath}/app/kibana#/home/tutorial_directory/siem`}
actionSecondaryIcon="popout"
actionSecondaryLabel={i18n.EMPTY_ACTION_SECONDARY}
actionSecondaryTarget="_blank"

View file

@ -19,7 +19,7 @@ export const NetworkEmptyPage = pure(() => (
<EmptyPage
actionPrimaryIcon="gear"
actionPrimaryLabel={i18n.EMPTY_ACTION_PRIMARY}
actionPrimaryUrl={`${basePath}/app/kibana#/home/tutorial_directory/security`}
actionPrimaryUrl={`${basePath}/app/kibana#/home/tutorial_directory/siem`}
actionSecondaryIcon="popout"
actionSecondaryLabel={i18n.EMPTY_ACTION_SECONDARY}
actionSecondaryTarget="_blank"

View file

@ -54,7 +54,7 @@ export const OverviewComponent = pure(() => {
<EmptyPage
actionPrimaryIcon="gear"
actionPrimaryLabel={i18n.EMPTY_ACTION_PRIMARY}
actionPrimaryUrl={`${basePath}/app/kibana#/home/tutorial_directory/security`}
actionPrimaryUrl={`${basePath}/app/kibana#/home/tutorial_directory/siem`}
actionSecondaryIcon="popout"
actionSecondaryLabel={i18n.EMPTY_ACTION_SECONDARY}
actionSecondaryTarget="_blank"

View file

@ -31,7 +31,7 @@ export const Summary = pure(() => (
</EuiLink>
),
data: (
<EuiLink href="kibana#home/tutorial_directory/security">
<EuiLink href="kibana#home/tutorial_directory/siem">
<FormattedMessage
id="xpack.siem.overview.startedText.dataLinkText"
defaultMessage="ingesting data"

View file

@ -1639,9 +1639,6 @@
"kbn.home.addData.metrics.nameTitle": "メトリック",
"kbn.home.addData.sampleDataLink": "データセットと Kibana ダッシュボードを読み込む",
"kbn.home.addData.sampleDataTitle": "サンプルデータの追加",
"kbn.home.addData.security.addSecurityEventsButtonLabel": "セキュリティイベントを追加",
"kbn.home.addData.security.nameDescription": "即利用可能なビジュアライゼーションで、セキュリティイベントをまとめてインタラクティブな調査を可能にします。",
"kbn.home.addData.security.nameTitle": "セキュリティ分析",
"kbn.home.addData.uploadFileLink": "CSV、NDJSON、またはログファイルをインポート",
"kbn.home.addData.uploadFileTitle": "ログファイルからデータをアップロード",
"kbn.home.addData.yourDataLink": "Elasticsearch インデックスに接続",
@ -1712,7 +1709,6 @@
"kbn.home.tutorial.tabs.loggingTitle": "ログ",
"kbn.home.tutorial.tabs.metricsTitle": "メトリック",
"kbn.home.tutorial.tabs.sampleDataTitle": "サンプルデータ",
"kbn.home.tutorial.tabs.securityAnalyticsTitle": "セキュリティ分析",
"kbn.home.tutorial.unexpectedStatusCheckStateErrorDescription": "予期せぬステータス確認ステータス {statusCheckState}",
"kbn.home.tutorial.unhandledInstructionTypeErrorDescription": "予期せぬ指示タイプ {visibleInstructions}",
"kbn.home.welcomeDescription": "Elastic Stack への開かれた窓",

View file

@ -1640,9 +1640,6 @@
"kbn.home.addData.metrics.nameTitle": "指标",
"kbn.home.addData.sampleDataLink": "加载数据集和 Kibana 仪表板",
"kbn.home.addData.sampleDataTitle": "添加样例数据",
"kbn.home.addData.security.addSecurityEventsButtonLabel": "添加安全事件",
"kbn.home.addData.security.nameDescription": "集中安全事件,以通过即用型可视化实现交互式调查。",
"kbn.home.addData.security.nameTitle": "安全分析",
"kbn.home.addData.uploadFileLink": "导入 CSV、NDJSON 或日志文件",
"kbn.home.addData.uploadFileTitle": "从日志文件上传数据",
"kbn.home.addData.yourDataLink": "连接到您的 Elasticsearch 索引",
@ -1713,7 +1710,6 @@
"kbn.home.tutorial.tabs.loggingTitle": "日志",
"kbn.home.tutorial.tabs.metricsTitle": "指标",
"kbn.home.tutorial.tabs.sampleDataTitle": "样例数据",
"kbn.home.tutorial.tabs.securityAnalyticsTitle": "安全分析",
"kbn.home.tutorial.unexpectedStatusCheckStateErrorDescription": "意外的状态检查状态 {statusCheckState}",
"kbn.home.tutorial.unhandledInstructionTypeErrorDescription": "未处理的指令类型 {visibleInstructions}",
"kbn.home.welcomeDescription": "您了解 Elastic Stack 的窗口",
@ -10761,4 +10757,4 @@
"xpack.watcher.watchActions.logging.logTextIsRequiredValidationMessage": "“日志文本”必填。",
"xpack.watcher.watcherDescription": "通过创建、管理和监测警报来检测数据中的更改。"
}
}
}