mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
* change add data security references to siem * update links to siem add data page * update snapshot * fix translations
This commit is contained in:
parent
458de86dd8
commit
d453b7858f
21 changed files with 311 additions and 233 deletions
|
@ -19,7 +19,7 @@
|
|||
|
||||
export const TUTORIAL_CATEGORY = {
|
||||
LOGGING: 'logging',
|
||||
SECURITY: 'security',
|
||||
SIEM: 'siem',
|
||||
METRICS: 'metrics',
|
||||
OTHER: 'other',
|
||||
};
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 }}>
|
||||
|
|
|
@ -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>
|
||||
);
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 device’s logs. Currently \
|
||||
defaultMessage:
|
||||
'This is a module for Cisco network device’s 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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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.',
|
||||
}),
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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(),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 への開かれた窓",
|
||||
|
|
|
@ -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": "通过创建、管理和监测警报来检测数据中的更改。"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue