[DOCS] Adding translated Kibana GS docs for jp & kr.

This commit is contained in:
Deb Adair 2017-08-17 16:53:53 -07:00
parent efd93784fb
commit 5a3f8a8a9b
273 changed files with 6423 additions and 0 deletions

80
docs/jp/console.asciidoc Normal file
View file

@ -0,0 +1,80 @@
[[console-kibana]]
= Console
[partintro]
--
The Console plugin provides a UI to interact with the REST API of Elasticsearch. Console has two main areas: the *editor*,
where you compose requests to Elasticsearch, and the *response* pane, which displays the responses to the request.
Enter the address of your Elasticsearch server in the text box on the top of screen. The default value of this address
is `localhost:9200`.
.The Console UI
image::images/introduction_screen.png[Screenshot]
Console understands commands in a cURL-like syntax. For example the following Console command
[source,js]
----------------------------------
GET /_search
{
"query": {
"match_all": {}
}
}
----------------------------------
is a simple `GET` request to Elasticsearch's `_search API`. Here is the equivalent command in cURL.
[source,bash]
----------------------------------
curl -XGET "http://localhost:9200/_search" -d'
{
"query": {
"match_all": {}
}
}'
----------------------------------
In fact, you can paste the above command into Console and it will automatically be converted into the Console syntax.
When typing a command, Console will make context sensitive <<suggestions,suggestions>>. These suggestions can help
you explore parameters for each API, or to just speed up typing. Console will suggest APIs, indexes and field
names.
[[suggestions]]
.API suggestions
image::images/introduction_suggestion.png["Suggestions",width=400,align="center"]
Once you have typed a command in to the left pane, you can submit it to Elasticsearch by clicking the little green
triangle that appears next to the URL line of the request. Notice that as you move the cursor around, the little
triangle and wrench icons follow you around. We call this the <<action_menu,Action Menu>>. You can also select
multiple requests and submit them all at once.
[[action_menu]]
.The Action Menu
image::images/introduction_action_menu.png["The Action Menu",width=400,align="center"]
When the response come back, you should see it in the left hand panel:
.The Output Pane
image::images/introduction_output.png[Screenshot]
[float]
[[console-ui]]
== The Console UI
In this section you will find a more detailed description of UI of Console. The basic aspects of the UI are explained
in the <<console-kibana>> section.
--
include::console/multi-requests.asciidoc[]
include::console/auto-formatting.asciidoc[]
include::console/keyboard-shortcuts.asciidoc[]
include::console/history.asciidoc[]
include::console/settings.asciidoc[]
include::console/configuring-console.asciidoc[]

View file

@ -0,0 +1,19 @@
[[auto-formatting]]
== Auto Formatting
Console allows you to auto format messy requests. To do so, position the cursor on the request you would like to format
and select Auto Indent from the action menu:
.Auto Indent a request
image::images/auto_format_before.png["Auto format before",width=500,align="center"]
Console will adjust the JSON body of the request and it will now look like this:
.A formatted request
image::images/auto_format_after.png["Auto format after",width=500,align="center"]
If you select Auto Indent on a request that is already perfectly formatted, Console will collapse the
request body to a single line per document. This is very handy when working with Elasticsearch's bulk APIs:
.One doc per line
image::images/auto_format_bulk.png["Auto format bulk",width=550,align="center"]

View file

@ -0,0 +1,6 @@
[[configuring-console]]
== Configuring Console
You can add the following options in the `config/kibana.yml` file:
`console.enabled`:: *Default: true* Set to false to disable Console. Toggling this will cause the server to regenerate assets on the next startup, which may cause a delay before pages start being served.

View file

@ -0,0 +1,10 @@
[[history]]
== History
Console maintains a list of the last 500 requests that were successfully executed by Elasticsearch. The history
is available by clicking the clock icon on the top right side of the window. The icons opens the history panel
where you can see the old requests. You can also select a request here and it will be added to the editor at
the current cursor position.
.History Panel
image::images/history.png["History Panel"]

View file

@ -0,0 +1,21 @@
[[keyboard-shortcuts]]
== Keyboard shortcuts
Console comes with a set of nifty keyboard shortcuts making working with it even more efficient. Here is an overview:
[float]
=== General editing
Ctrl/Cmd + I:: Auto indent current request.
Ctrl + Space:: Open Auto complete (even if not typing).
Ctrl/Cmd + Enter:: Submit request.
Ctrl/Cmd + Up/Down:: Jump to the previous/next request start or end.
Ctrl/Cmd + Alt + L:: Collapse/expand current scope.
Ctrl/Cmd + Option + 0:: Collapse all scopes but the current one. Expand by adding a shift.
[float]
=== When auto-complete is visible
Down arrow:: Switch focus to auto-complete menu. Use arrows to further select a term.
Enter/Tab:: Select the currently selected or the top most term in auto-complete menu.
Esc:: Close auto-complete menu.

View file

@ -0,0 +1,14 @@
[[multi-requests]]
== Multiple Requests Support
The Console editor allows writing multiple requests below each other. As shown in the <<console-kibana>> section, you
can submit a request to Elasticsearch by positioning the cursor and using the <<action_menu,Action Menu>>. Similarly
you can select multiple requests in one go:
.Selecting Multiple Requests
image::images/multiple_requests.png[Multiple Requests]
Console will send the request one by one to Elasticsearch and show the output on the right pane as Elasticsearch responds.
This is very handy when debugging an issue or trying query combinations in multiple scenarios.
Selecting multiple requests also allows you to auto format and copy them as cURL in one go.

View file

@ -0,0 +1,8 @@
[[console-settings]]
== Settings
Console has multiple settings you can set. All of them are available in the Settings panel. To open the panel
click on the cog icon on the top right.
.Settings Panel
image::images/settings.png["Setting Panel"]

165
docs/jp/dashboard.asciidoc Normal file
View file

@ -0,0 +1,165 @@
[[dashboard]]
= Dashboard
[partintro]
--
A Kibana _dashboard_ displays a collection of saved visualizations.
.Sample dashboard.
image:images/tutorial-dashboard.png[Example dashboard]
In edit mode you can arrange and resize the visualizations as needed and save dashboards so
they be reloaded and shared.
.Edit mode
image:images/Dashboard-Tutorial-Edit-Mode.png[Example dashboard in edit mode]
--
[[dashboard-getting-started]]
== Building a Dashboard
To build a dashboard:
. Click *Dashboard* in the side navigation. If you haven't previously viewed a
dashboard, Kibana displays a landing page where you can click *+*.
Otherwise, click the *Dashboard* breadcrumb to navigate back to the landing page.
+
image:images/Dashboard-Landing-Page.png[Dashboard Landing Page]
[[adding-visualizations-to-a-dashboard]]
. To add a visualization to the dashboard, click *Edit* mode.
Brand new dashboards will be in *Edit* mode automatically.
+
image:images/Dashboard-View-Mode.png[Dashboard View Mode]
. Once in Edit mode, click *Add* and select the
visualization. If you have a large number of visualizations, you can enter a
*Filter* string to filter the list.
+
image:images/Dashboard-Edit-Mode.png[Dashboard Edit Mode]
+
Kibana displays the selected visualization in a container on the dashboard.
If you see a message that the container is too small, you can
<<resizing-containers,resize the visualization>>.
+
NOTE: By default, Kibana dashboards use a light color theme. To use a dark color theme,
click *Options* and select *Use dark theme*. To change the default theme, go
to *Management/Kibana/Advanced Settings* and set `dashboard:defaultDarkTheme`
to `true`.
[[saving-dashboards]]
. When you're done adding and arranging visualizations, click *Save* to save the
dashboard:
.. Enter a name for the dashboard.
.. To store the time period specified in the time filter with the dashboard, select
*Store time with dashboard*.
.. Click the *Save* button to store it as a Kibana saved object.
[float]
[[customizing-your-dashboard]]
=== Arranging Dashboard Elements
In *Edit Mode*, visualizations in your dashboard are stored in resizable, moveable containers.
[float]
[[moving-containers]]
==== Moving Visualizations
To reposition a visualization:
. Hover over it to display the container controls.
. Click and hold the *Move* button in the upper right corner of the container.
. Drag the container to its new position.
. Release the *Move* button.
[float]
[[resizing-containers]]
==== Resizing Visualizations
To resize a visualization:
. Hover over it to display the container controls.
. Click and hold the *Resize* button in the bottom right corner of the container.
. Drag to change the dimensions of the container.
. Release the *Resize* button.
[float]
[[removing-containers]]
==== Removing Visualizations
To remove a visualization from the dashboard:
. Hover over it to display the container controls.
. Click the *Delete* button in the upper right corner of the container.
+
NOTE: Removing a visualization from a dashboard does _not_ delete the
saved visualization.
[float]
[[viewing-detailed-information]]
=== Viewing Visualization Data
To display the raw data behind a visualization:
. Hover over it to display the container controls.
. Click the *Expand* button in the lower left corner of the container.
This displays a table that contains the underlying data. You can also view
the raw Elasticsearch request and response in JSON and the request statistics.
The request statistics show the query duration, request duration, total number
of matching records, and the index (or index pattern) that was searched.
+
image:images/NYCTA-Table.jpg[]
To export the data behind the visualization as a comma-separated-values
(CSV) file, click the *Raw* or *Formatted* link at the bottom of the data
Table. *Raw* exports the data as it is stored in Elasticsearch. *Formatted*
exports the results of any applicable Kibana <<managing-fields,field
formatters>>.
To return to the visualization, click the *Collapse* button in the lower left
corner of the container.
[float]
[[changing-the-visualization]]
=== Modifying a Visualization
To open a visualization in the Visualization Editor:
. Enter Edit Mode.
. Hover over it to display the container controls.
. Click the *Edit* button in the upper right corner of the container.
[[loading-a-saved-dashboard]]
== Loading a Dashboard
To open a saved dashboard:
. Click *Dashboard* in the side navigation.
. Click *Open* and select a dashboard. If you have a large number of
dashboards, you can enter a *Filter* string to filter the list.
+
TIP: To import, export, and delete dashboards, click the *Manage Dashboards* link
to open *Management/Kibana/Saved Objects/Dashboards*.
[[sharing-dashboards]]
== Sharing a Dashboard
You can either share a direct link to a Kibana dashboard with another user,
or embed the dashboard in a web page. Users must have Kibana access
to view embedded dashboards.
[[embedding-dashboards]]
To share a dashboard:
. Click *Dashboard* in the side navigation.
. Open the dashboard you want to share.
. Click *Share*.
. Copy the link you want to share or the iframe you want to embed. You can
share the live dashboard or a static snapshot of the current point in time.
+
TIP: When sharing a link to a dashboard snapshot, use the *Short URL*. Snapshot
URLs are long and can be problematic for Internet Explorer users and other
tools.

View file

@ -0,0 +1,16 @@
[[development]]
= Contributing to Kibana
[partintro]
--
Contributing to Kibana can be daunting at first, but it doesn't have to be. If
you're planning a pull request to the Kibana repository, you may want to start
with <<core-development>>.
If you'd prefer to use Kibana's internal plugin API, then check out
<<plugin-development>>.
--
include::development/core-development.asciidoc[]
include::development/plugin-development.asciidoc[]

View file

@ -0,0 +1,15 @@
[[core-development]]
== Core Development
* <<development-basepath>>
* <<development-dependencies>>
* <<development-modules>>
* <<development-elasticsearch>>
include::core/development-basepath.asciidoc[]
include::core/development-dependencies.asciidoc[]
include::core/development-modules.asciidoc[]
include::plugin/development-elasticsearch.asciidoc[]

View file

@ -0,0 +1,87 @@
[[development-basepath]]
=== Considerations for basePath
All communication from the Kibana UI to the server needs to respect the
`server.basePath`. Here are the "blessed" strategies for dealing with this
based on the context:
[float]
==== `<img>` and `<a>` elements
Write the `src` or `href` urls as you would without the base path, but then
replace `src` or `href` with `kbn-src` or `kbn-href`.
["source","shell"]
-----------
<img kbn-src="plugins/kibana/images/logo.png">
-----------
[float]
==== Getting a static asset url
Use webpack to import the asset into the build. This will give you a URL in
JavaScript and gives webpack a chance to perform optimizations and
cache-busting.
["source","shell"]
-----------
// in plugin/public/main.js
import uiChrome from 'ui/chrome';
import logoUrl from 'plugins/facechimp/assets/banner.png';
uiChrome.setBrand({
logo: `url(${logoUrl}) center no-repeat`
});
-----------
[float]
==== API requests from the front-end
Use `chrome.addBasePath()` to append the basePath to the front of the url.
["source","shell"]
-----------
import chrome from 'ui/chrome';
$http.get(chrome.addBasePath('/api/plugin/things'));
-----------
[float]
==== Server side
Append `config.get('server.basePath')` to any absolute URL path.
["source","shell"]
-----------
const basePath = server.config().get('server.basePath');
server.route({
path: '/redirect',
handler(req, reply) {
reply.redirect(`${basePath}/otherLocation`);
}
});
-----------
[float]
==== BasePathProxy in dev mode
The Kibana dev server automatically runs behind a proxy with a random
`server.basePath`. This way developers will be constantly verifying that their
code works with basePath, while they write it.
To accomplish this the `serve` task does a few things:
1. change the port for the server to the `dev.basePathProxyTarget` setting (default `5603`)
2. start a `BasePathProxy` at `server.port`
- picks a random 3-letter value for `randomBasePath`
- redirects from `/` to `/{randomBasePath}`
- redirects from `/{any}/app/{appName}` to `/{randomBasePath}/app/{appName}` so that refreshes should work
- proxies all requests starting with `/{randomBasePath}/` to the Kibana server
This proxy can sometimes have unintended side effects in development, so when
needed you can opt out by passing the `--no-base-path` flag to the `serve` task
or `npm start`.
["source","shell"]
-----------
npm start -- --no-base-path
-----------

View file

@ -0,0 +1,103 @@
[[development-dependencies]]
=== Managing Dependencies
While developing plugins for use in the Kibana front-end environment you will
probably want to include a library or two (at least). While that should be
simple to do 90% of the time, there are always outliers, and some of those
outliers are very popular projects.
Before you can use an external library with Kibana you have to install it. You
do that using...
[float]
==== npm (preferred method)
Once you've http://npmsearch.com[found] a dependency you want to add, you can
install it like so:
["source","shell"]
-----------
npm install --save some-neat-library
-----------
At the top of a javascript file, just import the library using it's name:
["source","shell"]
-----------
import someNeatLibrary from 'some-neat-library';
-----------
Just like working in node.js, front-end code can require node modules installed
by npm without any additional configuration.
[float]
==== webpackShims
When a library you want to use does use es6 or common.js modules but is not
available on npm, you can copy the source of the library into a webpackShim.
["source","shell"]
-----------
# create a directory for our new library to live
mkdir -p webpackShims/some-neat-library
# download the library you want to use into that directory
curl https://cdnjs.com/some-neat-library/library.js > webpackShims/some-neat-library/index.js
-----------
Then include the library in your JavaScript code as you normally would:
["source","shell"]
-----------
import someNeatLibrary from 'some-neat-library';
-----------
[float]
==== Shimming third party code
Some JavaScript libraries do not declare their dependencies in a way that tools
like webpack can understand. It is also often the case that libraries do not
`export` their provided values, but simply write them to a global variable name
(or something to that effect).
When pulling code like this into Kibana we need to write "shims" that will
adapt the third party code to work with our application, other libraries, and
module system. To do this we can utilize the `webpackShims` directory.
The easiest way to explain how to write a shim is to show you some. Here is our
webpack shim for jQuery:
["source","shell"]
-----------
// webpackShims/jquery.js
module.exports = window.jQuery = window.$ = require('node_modules/jquery/dist/jquery');
require('ui/jquery/findTestSubject')(window.$);
-----------
This shim is loaded up anytime an `import 'jquery';` statement is found by
webpack, because of the way that `webpackShims` behaves like `node_modules`.
When that happens, the shim does two things:
. Assign the exported value of the actual jQuery module to the window at `$` and `jQuery`, allowing libraries like angular to detect that jQuery is available, and use it as the module's export value.
. Finally, a jQuery plugin that we wrote is included so that every time a file imports jQuery it will get both jQuery and the `$.findTestSubject` helper function.
Here is what our webpack shim for angular looks like:
["source","shell"]
-----------
// webpackShims/angular.js
require('jquery');
require('node_modules/angular/angular');
require('node_modules/angular-elastic/elastic');
require('ui/modules').get('kibana', ['monospaced.elastic']);
module.exports = window.angular;
-----------
What this shim does is fairly simple if you go line by line:
. makes sure that jQuery is loaded before angular (which actually runs the shim above)
. load the angular.js file from the npm installation
. load the angular-elastic plugin, a plugin we want to always be included whenever we import angular
. use the `ui/modules` module to add the module exported by angular-elastic as a dependency to the `kibana` angular module
. finally, export the window.angular variable. This means that writing `import angular from 'angular';` will properly set the angular variable to the angular library, rather than undefined which is the default behavior.

View file

@ -0,0 +1,80 @@
[[development-modules]]
=== Modules and Autoloading
[float]
==== Autoloading
Because of the disconnect between JS modules and angular directives, filters,
and services it is difficult to know what you need to import. It is even more
difficult to know if you broke something by removing an import that looked
unused.
To prevent this from being an issue the ui module provides "autoloading"
modules. The sole purpose of these modules is to extend the environment with
certain components. Here is a breakdown of those modules:
- *`import 'ui/autoload/styles'`*
Imports all styles at the root of `src/ui/public/styles`
- *`import 'ui/autoload/directives'`*
Imports all directives in `src/ui/public/directives`
- *`import 'ui/autoload/filters'`*
Imports all filters in `src/ui/public/filters`
- *`import 'ui/autoload/modules'`*
Imports angular and several ui services and "components" which Kibana
depends on without importing. The full list of imports is hard coded in the
module. Hopefully this list will shrink over time as we properly map out
the required modules and import them were they are actually necessary.
- *`import 'ui/autoload/all'`*
Imports all of the above modules
[float]
==== Resolving Require Paths
Kibana uses Webpack to bundle Kibana's dependencies.
Here is how import/require statements are resolved to a file:
NOTE: if you're familiar with the node.js algorithm, the changes are in *2.ii* and *3.i.f* to *3.i.g*
. Pick an algorithm
* if the path starts with a '.'
** append it the directory of the current file
** proceed to *3*
* if the path starts with a '/'
** search for this exact path
** proceed to *3*
* proceed to *2*
. Search for a named module
* `moduleName` = dirname(require path)`
* match if `moduleName` is or starts with one of these aliases
** replace the alias with the match and continue to ***3***
* match when any of these conditions are met:
** `./webpackShims/${moduleName}` is a directory
** `./node_modules/${moduleName}` is a directory
* if no match was found
** move to the parent directory
** start again at *2.iii* until reaching the root directory or a match is found
* if a match was found
** replace the `moduleName` prefix from the require statement with the full path of the match and proceed to *3*
. Search for a file
* the first of the following paths that resolves to a **file** is our match
** path + '.js'
** path + '.json'
** path + '.jsx'
** path + '.less'
** path
** path/${basename(path)} + '.js'
** path/${basename(path)} + '.json'
** path/${basename(path)} + '.jsx'
** path/${basename(path)} + '.less'
** path/${basename(path)}
** path/index + '.js'
** path/index + '.json'
** path/index + '.jsx'
** path/index + '.less'
** path/index
* if none of the above paths matches then an error is thrown

View file

@ -0,0 +1,15 @@
[[plugin-development]]
== Plugin Development
[IMPORTANT]
==============================================
The Kibana plugin interfaces are in a state of constant development. We cannot provide backwards compatibility for plugins due to the high rate of change. Kibana enforces that the installed plugins match the version of Kibana itself. Plugin developers will have to release a new version of their plugin for each new Kibana release as a result.
==============================================
* <<development-plugin-resources>>
* <<development-uiexports>>
include::plugin/development-plugin-resources.asciidoc[]
include::plugin/development-uiexports.asciidoc[]

View file

@ -0,0 +1,41 @@
[[development-elasticsearch]]
=== Communicating with Elasticsearch
Kibana exposes two clients on the server and browser for communicating with elasticsearch.
There is an 'admin' client which is used for managing Kibana's state, and a 'data' client for all
other requests. The clients use the https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/index.html[elasticsearch.js library].
[float]
[[client-server]]
=== Server clients
Server clients are exposed through the elasticsearch plugin.
[source,javascript]
----
const adminCluster = server.plugins.elasticsearch.getCluster('admin);
const dataCluster = server.plugins.elasticsearch.getCluster('data);
//ping as the configured elasticsearch.user in kibana.yml
adminCluster.callWithInternalUser('ping');
//ping as the user specified in the current requests header
adminCluster.callWithRequest(req, 'ping');
----
[float]
[[client-browser]]
=== Browser clients
Browser clients are exposed through AngularJS services.
[source,javascript]
----
uiModules.get('kibana')
.run(function (esAdmin, es) {
es.ping()
.then(() => esAdmin.ping())
.catch(err => {
console.log('error pinging servers');
});
});
----

View file

@ -0,0 +1,187 @@
[[translating-kibana]]
Translating Kibana
------------------
[[background]]
Background
~~~~~~~~~
Please see https://github.com/elastic/kibana/issues/6515[kibana#6515]
for background discussion on the Kibana translation work.
[[prerequisites]]
Prerequisites
~~~~~~~~~~~~
Kibana must be installed and operational, see README.md
[[audience]]
Audience
~~~~~~~
There are three audiences for this document:
* those that want to contribute language packs to Kibana
* those that want to enable translations in existing Kibana plugins
* those that want to create a new Kibana Plugin
[[contributing-language-packs]]
Contributing Language Packs
~~~~~~~~~~~~~~~~~~~~~~~~~~
For this example, we will demonstrate translation into Maltese (Language
code `mt`). Add-on functionality for Kibana is implemented with plug-in modules.
Refer to
https://www.elastic.co/guide/en/kibana/current/kibana-plugins.html[Kibana
Plugins] for more details.
* Fork the `kibana` source, and ensure you have an up to date copy of
the source.
* Ensure you have signed the agreement as in CONTRIBUTING.md
* Choose the right link:[bcp47] language code for your work. In this
example, we will use the `kibana` plugin for translating and `mt` for
Maltese. Other examples might be `zh-Hans` for Chinese using Simplified
characters, or `az-Cyrl` for Azerbaijani using Cyrillic characters. The
following links can help:
* https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes[List of ISO
639-1 codes]
*
http://cldr.unicode.org/index/cldr-spec/picking-the-right-language-code[“Picking
the right language code”]
* Create a new branch for your work:
+
git checkout -b translate-mt
* For each translation scope (see link:#Enabling%20Translations%20on%20Existing%20Plugins[Enabling Translations on Existing Plugins], below), generate a Kibana plugin with name _plugin_-_languagecode_ using the https://github.com/elastic/generator-kibana-plugin[Kibana Plugin Yeoman Generator]:
+
* Replace the the `es.json` translation file with _languagecode_`.json`:
`mv src/plugins/kibana-mt/translations/es.json src/plugins/kibana-mt/translations/mt.json`
* Translate the `mt.json` file in a JSON editor
* Edit index file (`kibana-mt/index.js`), updating the
'translations' item in 'uiExports' as per your plugin translation file(s)
* Copy translations plugin (`kibana-mt/`) to the Kibana plugins (`<kibana_root>/plugins`) directory
* Start up Kibana and verify the translation works as expected
* Ensure Kibana tests pass
* Commit the `kibana-mt` directory and files, and push them to your own
fork of `kibana`
* Open a pull request titled `Translation: Maltese (mt)`
[[enabling-ranslations-on-existing-plugins]]
Enabling Translations on Existing Plugins
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kibana translates according to plugin scope, so there is a `.json` file
in `translations` subdirectory for each plugin.
[[enabling-translation-of-an-angular-view]]
Enabling Translation of an Angular view
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Determine which views share a plugin scope. In this example, `create`
and `edit` will share scope.
* If it does not already exist, Create the appropriate `translation`
directory and the new translation file `en.json` inside it. In the above
example, it would be: `src/core_plugins/kibana/translations/en.json`
* If it does not exist add 'translations' item to the 'uiExports' in the plugin creation (`src/core_plugins/kibana/translations/en.json`) as follows:
-------------------------------------------------------------------------
uiExports {
translations: [
resolve(__dirname, './translations/en.json')
], ….
}
-------------------------------------------------------------------------
* In the view (HTML) file, such as
`src/core_plugins/kibana/public/management/sections/indices/_create.html`
Replace English text with translation keys, and copy the English text
into the `en.json` file appropriately. Note that loose text was put into
a `<p></p>` tag for translation purposes. Also note the prefix `KIBANA-`
matching the plugin being translated.
[[before]]
Before
++++++
`_create.html`
-----------------------------------------------------------------------------------------------------
<h1>Configure an index pattern</h1>
In order to use Kibana you must configure at least one index pattern…
<kbn-info info="This field will be used to filter events with the global time filter"></kbn-info>
-----------------------------------------------------------------------------------------------------
[[after]]
After
+++++
`_create.html`
-------------------------------------------------------------------------------------------
<h1 translate="KIBANA-CONFIGURE_INDEX_PATTERN"</h1>
<p translate="KIBANA-MUST_CONFIGURE_INDEX_PATTERN"</p>
<kbn-info info="{{ 'KIBANA-FIELD_FILTER_EVENTS_GLOBAL_TIME' | translate }}"></kbn-info>
-------------------------------------------------------------------------------------------
* In the view (JS) file, such as
`src/core_plugins/kibana/public/management/sections/indices/_create.js`
As above, replace English text with translation keys, and copy the English text
into the `en.json` file appropriately. Note that some strings may not be user facing
and do not need to be replaced then. Also note the prefix `KIBANA-` matching the plugin
being translated.
[[before]]
Before
++++++
`_create.js`
--------------------------------------------------------------------------------------------------------------
notify.error('Could not locate any indices matching that pattern. Please add the index to Elasticsearch');
--------------------------------------------------------------------------------------------------------------
[[after]]
After
+++++
`_create.js`
-------------------------------------------------------------------------------------------
notify.error($translate.instant('KIBANA-NO_INDICES_MATCHING_PATTERN'));
-------------------------------------------------------------------------------------------
`en.json`
-----------------------------------------------------------------------------------------------------------------------------------------
{
"KIBANA-CONFIGURE_INDEX_PATTERN": "Configure an index pattern",
"KIBANA-MUST_CONFIGURE_INDEX_PATTERN": "In order to use Kibana you must…",
"KIBANA-FIELD_FILTER_EVENTS_GLOBAL_TIME" : "This field will be used to filter events with the global time filter",
"KIBANA-NO_INDICES_MATCHING_PATTERN": "Could not locate any indices matching that pattern. Please add the index to Elasticsearch",
}
-----------------------------------------------------------------------------------------------------------------------------------------
* Refresh the Kibana page and verify the UI looks the same.
* Refer to Kibana core plugin (`src/core_plugins/kibana/`) for examples.
[[new-plugin-authors]]
New Plugin Authors
~~~~~~~~~~~~~~~~~
Add-on functionality for Kibana is implemented with plug-in modules.
Refer to
https://www.elastic.co/guide/en/kibana/current/kibana-plugins.html[Kibana
Plugins] for more details. It is recommended that when creating a plugin
you enable translations (see link:#Enabling%20Translations%20on%20Existing%20Plugins[Enabling Translations on Existing Plugins], above).
[[enabling-translation-in-a-plugin]]
Enabling Translation in a New Plugin
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Generate a Kibana plugin using the https://github.com/elastic/generator-kibana-plugin[Kibana Plugin Yeoman Generator]. In this
example, `plugin1`
* Add the translation IDs to the views
* Add the corresponding translation IDs and text to the default translation file (`translations/en.json`)
* Refer to link:#Enabling%20Translations%20on%20Existing%20Plugins[Enabling Translations on Existing Plugins] for more
details on enabling translation in your plugin views and refer to Kibana
core plugin (`src/core_plugins/kibana/`) for an example.

View file

@ -0,0 +1,28 @@
[[development-plugin-resources]]
=== Plugin Resources
Here are some resources that will be helpful for getting started with plugin development
[float]
==== Our IRC channel
Many Kibana developers hang out on `irc.freenode.net` in the `#kibana` channel. We *want* to help you with plugin development. Even more than that, we *want your help* in understanding your plugin goals so we can build a great plugin system for you! If you've never used IRC, welcome to the fun. You can get started with the http://webchat.freenode.net/?channels=kibana[Freenode Web Client].
[float]
==== Some light reading
- Our {repo}blob/master/CONTRIBUTING.md[contributing guide] can help you get a development environment going
- Tim Roes' excellent blog series https://www.timroes.de/2016/02/21/writing-kibana-plugins-custom-applications/[Writing Kibana Plugins]
[float]
==== Videos
- https://www.elastic.co/elasticon/2015/sf/contributors-guide-to-the-kibana-galaxy[Contributors Guide to the Kibana Galaxy]
- https://www.elastic.co/elasticon/conf/2016/sf/how-to-build-your-own-kibana-plugins[Kibana Plugin Dev - Elasticon 2016]
[float]
==== Plugin Generator
Check out the https://github.com/elastic/generator-kibana-plugin[plugin generator] to kick-start your plugin.
[float]
==== References in the code
- {repo}blob/{branch}/src/server/plugins/plugin.js[Plugin class]: What options does the `kibana.Plugin` class accept?
- <<development-uiexports>>: What type of exports are available?

View file

@ -0,0 +1,17 @@
[[development-uiexports]]
=== UI Exports
An aggregate list of available UiExport types:
[cols="<h,<",options="header",]
|=======================================================================
| Type | Purpose
| hacks | Any module that should be included in every application
| visTypes | Modules that register providers with the `ui/registry/vis_types` registry.
| fieldFormats | Modules that register providers with the `ui/registry/field_formats` registry.
| spyModes | Modules that register providers with the `ui/registry/spy_modes` registry.
| chromeNavControls | Modules that register providers with the `ui/registry/chrome_nav_controls` registry.
| navbarExtensions | Modules that register providers with the `ui/registry/navbar_extensions` registry.
| docViews | Modules that register providers with the `ui/registry/doc_views` registry.
| app | Adds an application to the system. This uiExport type is defined as an object of metadata rather than just a module id.
|=======================================================================

23
docs/jp/discover.asciidoc Normal file
View file

@ -0,0 +1,23 @@
[[discover]]
= Discover
[partintro]
--
You can interactively explore your data from the Discover page. You have access to every document in every index that
matches the selected index pattern. You can submit search queries, filter the search results, and view document data.
You can also see the number of documents that match the search query and get field value statistics. If a time field is
configured for the selected index pattern, the distribution of documents over time is displayed in a histogram at the
top of the page.
image::images/Discover-Start-Annotated.jpg[Discover]
--
include::discover/set-time-filter.asciidoc[]
include::discover/search.asciidoc[]
include::discover/field-filter.asciidoc[]
include::discover/document-data.asciidoc[]
include::discover/viewing-field-stats.asciidoc[]

View file

@ -0,0 +1,19 @@
=== Refreshing the Search Results
You can configure a refresh interval to automatically refresh the page with the latest index data. This periodically
resubmits the search query.
When a refresh interval is set, it is displayed to the left of the Time Filter in the menu bar.
To set the refresh interval:
. Click the *Time Filter* image:images/TimeFilter.jpg[Time Filter].
. Click the *Refresh Interval* tab.
. Choose a refresh interval from the list.
To automatically refresh the data, click the image:images/autorefresh.png[] *Auto-refresh* button when the time picker
is open and select an autorefresh interval:
image::images/autorefresh-intervals.png[]
When auto-refresh is enabled, Kibana's top bar displays a pause button and the auto-refresh interval:
image:images/autorefresh-pause.png[]. Click the *Pause* button to pause auto-refresh.

View file

@ -0,0 +1,68 @@
[[document-data]]
== Viewing Document Data
When you submit a search query, the 500 most recent documents that match the query
are listed in the Documents table. You can configure the number of documents shown
in the table by setting the `discover:sampleSize` property in <<advanced-options,
Advanced Settings>>. By default, the table shows the localized version of the time
field configured for the selected index pattern and the document `_source`. You can
<<adding-columns, add fields to the Documents table>> from the Fields list.
You can <<sorting, sort the listed documents>> by any indexed field that's included
in the table.
To view a document's field data, click the *Expand* button
image:images/ExpandButton.jpg[Expand Button] to the left of the document's table
entry.
image::images/Expanded-Document.png[]
To view the original JSON document (pretty-printed), click the *JSON* tab.
To view the document data as a separate page, click the document link. You can
bookmark and share this link to provide direct access to a particular document.
To display or hide a field's column in the Documents table, click the
image:images/add-column-button.png[Add Column] *Toggle column in table* button.
To collapse the document details, click the *Collapse* button
image:images/CollapseButton.jpg[Collapse Button].
[float]
[[sorting]]
=== Sorting the Document List
You can sort the documents in the Documents table by the values in any indexed
field. If a time field is configured for the current index pattern, the
documents are sorted in reverse chronological order by default.
To change the sort order, hover over the name of the field you want to sort by
and click the sort button. Click again to reverse the sort order.
[float]
[[adding-columns]]
=== Adding Field Columns to the Documents Table
By default, the Documents table shows the localized version of the time field
that's configured for the selected index pattern and the document `_source`.
You can add fields to the table from the Fields list or from a document's
field data.
To add a field column from the Fields list, hover over the field and click its
*add* button.
To add a field column from a document's field data, expand the document
and click the field's
image:images/add-column-button.png[Add Column] *Toggle column in table* button.
Added field columns replace the `_source` column in the Documents table. The added
fields are also added to the *Selected Fields* list.
To rearrange the field columns, hover over the header of the column you want to move
and click the *Move left* or *Move right* button.
image:images/Discover-MoveColumn.jpg[Move Column]
[float]
[[removing-columns]]
=== Removing Field Columns from the Documents Table
To remove a field column from the Documents table, hover over the header of the
column you want to remove and click the *Remove* button
image:images/RemoveFieldButton.jpg[Remove Field Button].

View file

@ -0,0 +1,111 @@
[[field-filter]]
== Filtering by Field
You can filter the search results to display only those documents that contain
a particular value in a field. You can also create negative filters that
exclude documents that contain the specified field value.
You add field filters from the Fields list or the Documents table. In addition
to creating positive and negative filters, the Documents table enables you to
filter on whether or not a field is present. The applied
filters are shown below the Query bar. Negative filters are shown in red.
To add a filter from the Fields list:
. Click the name of the field you want to filter on. This displays the top
five values for that field.
+
image::images/filter-field.jpg[]
. To add a positive filter, click the *Positive Filter* button
image:images/PositiveFilter.jpg[Positive Filter].
This includes only those documents that contain that value in the field.
. To add a negative filter, click the *Negative Filter* button
image:images/NegativeFilter.jpg[Negative Filter].
This excludes documents that contain that value in the field.
To add a filter from the Documents table:
. Expand a document in the Documents table by clicking the *Expand* button
image:images/ExpandButton.jpg[Expand Button] to the left of the document's
table entry.
+
image::images/Expanded-Document.png[]
. To add a positive filter, click the *Positive Filter* button
image:images/PositiveFilter.jpg[Positive Filter Button] to the right of the
field name. This includes only those documents that contain that value in the
field.
. To add a negative filter, click the *Negative Filter* button
image:images/NegativeFilter.jpg[Negative Filter Button] to the right of the
field name. This excludes documents that contain that value in the field.
. To filter on whether or not documents contain the field, click the
*Exists* button image:images/ExistsButton.jpg[Exists Button] to the right of the
field name. This includes only those documents that contain the field.
[float]
[[filter-pinning]]
=== Managing Filters
To modify a filter, hover over it and click one of the action buttons.
image::images/filter-allbuttons.png[]
&nbsp;
image:images/filter-enable.png[] Enable Filter :: Disable the filter without
removing it. Click again to reenable the filter. Diagonal stripes indicate
that a filter is disabled.
image:images/filter-pin.png[] Pin Filter :: Pin the filter. Pinned filters
persist when you switch contexts in Kibana. For example, you can pin a filter
in Discover and it remains in place when you switch to Visualize.
Note that a filter is based on a particular index field--if the indices being
searched don't contain the field in a pinned filter, it has no effect.
image:images/filter-toggle.png[] Toggle Filter :: Switch from a positive
filter to a negative filter and vice-versa.
image:images/filter-delete.png[] Remove Filter :: Remove the filter.
image:images/filter-custom.png[] Edit Filter :: <<filter-edit, Edit the
filter>> definition. Enables you to manually update the filter query and
specify a label for the filter.
To apply a filter action to all of the applied filters,
click *Actions* and select the action.
[float]
[[filter-edit]]
=== Editing a Filter
You can edit a filter to directly modify the filter query that is performed
to filter your search results. This enables you to create more complex
filters that are based on multiple fields.
image::images/filter-custom-json.png[]
&nbsp;
For example, you could use a {es-ref}/query-dsl-bool-query.html[bool query]
to create a filter for the sample log data that displays the hits that
originated from Canada or China that resulted in a 404 error:
==========
[source,json]
{
"bool": {
"should": [
{
"term": {
"geoip.country_name.raw": "Canada"
}
},
{
"term": {
"geoip.country_name.raw": "China"
}
}
],
"must": [
{
"term": {
"response": "404"
}
}
]
}
}
==========

View file

@ -0,0 +1,104 @@
[[search]]
== Searching Your Data
You can search the indices that match the current index pattern by entering
your search criteria in the Query bar. You can perform a simple text search,
use the Lucene https://lucene.apache.org/core/2_9_4/queryparsersyntax.html[
query syntax], or use the full JSON-based {es-ref}query-dsl.html[Elasticsearch
Query DSL].
When you submit a search request, the histogram, Documents table, and Fields
list are updated to reflect the search results. The total number of hits
(matching documents) is shown in the toolbar. The Documents table shows the
first five hundred hits. By default, the hits are listed in reverse
chronological order, with the newest documents shown first. You can reverse
the sort order by clicking the Time column header. You can also sort the table
by the values in any indexed field. For more information, see <<sorting,
Sorting the Documents Table>>.
To search your data, enter your search criteria in the Query bar and
press *Enter* or click *Search* image:images/search-button.jpg[] to submit
the request to Elasticsearch.
* To perform a free text search, simply enter a text string. For example, if
you're searching web server logs, you could enter `safari` to search all
fields for the term `safari`.
* To search for a value in a specific field, prefix the value with the name
of the field. For example, you could enter `status:200` to find all of
the entries that contain the value `200` in the `status` field.
* To search for a range of values, you can use the bracketed range syntax,
`[START_VALUE TO END_VALUE]`. For example, to find entries that have 4xx
status codes, you could enter `status:[400 TO 499]`.
* To specify more complex search criteria, you can use the Boolean operators
`AND`, `OR`, and `NOT`. For example, to find entries that have 4xx status
codes and have an extension of `php` or `html`, you could enter `status:[400 TO
499] AND (extension:php OR extension:html)`.
NOTE: These examples use the Lucene query syntax. You can also submit queries
using the Elasticsearch Query DSL. For examples, see
{es-ref}query-dsl-query-string-query.html#query-string-syntax[query string syntax]
in the Elasticsearch Reference.
[float]
[[save-search]]
=== Saving a Search
Saving searches enables you to reload them into Discover and use them as the basis
for <<visualize, visualizations>>. Saving a search saves both the search query string
and the currently selected index pattern.
To save the current search:
. Click *Save* in the Kibana toolbar.
. Enter a name for the search and click *Save*.
You can import, export and delete saved searches from *Management/Kibana/Saved Objects*.
[float]
[[load-search]]
=== Opening a Saved Search
To load a saved search into Discover:
. Click *Open* in the Kibana toolbar.
. Select the search you want to open.
If the saved search is associated with a different index pattern than is currently
selected, opening the saved search also changes the selected index pattern.
[float]
[[select-pattern]]
=== Changing Which Indices You're Searching
When you submit a search request, the indices that match the currently-selected
index pattern are searched. The current index pattern is shown below the toolbar.
To change which indices you are searching, click the index pattern and select a
different index pattern.
For more information about index patterns, see <<settings-create-pattern,
Creating an Index Pattern>>.
[float]
[[autorefresh]]
=== Refreshing the Search Results
As more documents are added to the indices you're searching, the search results
shown in Discover and used to display visualizations get stale. You can
configure a refresh interval to periodically resubmit your searches to
retrieve the latest results.
To enable auto refresh:
. Click the *Time Picker* image:images/time-picker.jpg[Time Picker] in the
Kibana toolbar.
. Click *Auto refresh*.
. Choose a refresh interval from the list.
+
image::images/autorefresh-intervals.png[]
When auto refresh is enabled, the refresh interval is displayed next to the
Time Picker, along with a Pause button. To temporarily disable auto refresh,
click *Pause*.
NOTE: If auto refresh is not enabled, you can manually refresh visualizations
by clicking *Refresh*.

View file

@ -0,0 +1,40 @@
[[set-time-filter]]
== Setting the Time Filter
The time filter restricts the search results to a specific time period. You can
set a time filter if your index contains time-based events and a time-field is
configured for the selected index pattern.
By default the time filter is set to the last 15 minutes. You can use the Time
Picker to change the time filter or select a specific time interval or time
range in the histogram at the top of the page.
To set a time filter with the Time Picker:
. Click Time Picker image:images/time-picker.jpg[] in the Kibana toolbar.
. To set a quick filter, click one of the shortcut links.
+
image::images/time-filter.jpg[Time filter shortcuts]
. To specify a time filter relative to the current time, click *Relative* and
specify the start time as a number of seconds, minutes, hours, days,
months, or years ago.
+
image::images/time-filter-relative.jpg[Relative time filter]
. To specify both the start and end times for the time filter, click
*Absolute* and select a start and end date. You can adjust the time
by editing the *To* and *From* fields.
+
image::images/time-filter-absolute.jpg[Absolute time filter]
. Click the caret in the bottom right corner to close the Time Picker.
To set a time filter from the histogram, do one of the following:
* Click the bar that represents the time interval you want to zoom in on.
* Click and drag to view a specific timespan. You must start the selection with
the cursor over the background of the chart--the cursor changes to a plus sign
when you hover over a valid start point.
You can use the browser Back button to undo your changes.
The displayed time range and interval are shown on the histogram. By default,
the interval is set automatically based on the time range. To use a different
interval, click the link and select an interval.

View file

@ -0,0 +1,10 @@
[[viewing-field-stats]]
== Viewing Field Data Statistics
From the Fields list, you can see how many of the documents in the Documents
table contain a particular field, what the top 5 values are, and what
percentage of documents contain each value.
To view field data statistics, click the name of a field in the Fields list.
image:images/filter-field.jpg[Field Statistics]

View file

@ -0,0 +1,29 @@
[[getting-started]]
= 始めてみよう
[partintro]
--
Kibanaの実地体験を始める準備はできていますか?
このチュートリアルは、以下の方法について説明します。
* Elasticsearchへのサンプルデータセットの読み込み * Index Patternの定義 * {kibana-ref}/discover.html[検出]を使ったサンプルデータの調査 * サンプルデータの{kibana-ref}/visualize.html[_ビジュアライゼーション_]のセットアップ * {kibana-ref}/dashboard.html[ダッシュボード]へのビジュアライゼーションの統合 開始する前に、<<install, Kibanaをインストール済み>>で、{kibana-ref}/connect-to-elasticsearch.html[Elasticsearchに接続済み]であることを確認してください。
以下のビデオチュートリアルもご覧いただけます。
* https://www.elastic.co/blog/kibana-4-video-tutorials-part-1[High-level Kibana introduction, pie charts]
* https://www.elastic.co/blog/kibana-4-video-tutorials-part-2[Data discovery, bar charts, and line charts]
* https://www.elastic.co/blog/kibana-4-video-tutorials-part-3[Tile maps]
* https://www.elastic.co/blog/kibana-4-video-tutorials-part-4[Embedding Kibana visualizations]
--
include::getting-started/tutorial-load-dataset.asciidoc[]
include::getting-started/tutorial-define-index.asciidoc[]
include::getting-started/tutorial-discovering.asciidoc[]
include::getting-started/tutorial-visualizing.asciidoc[]
include::getting-started/tutorial-dashboard.asciidoc[]
include::getting-started/wrapping-up.asciidoc[]

View file

@ -0,0 +1,17 @@
[[tutorial-dashboard]]
== ダッシュボードにすべてまとめる
ダッシュボードは、整理したり共有したりできるビジュアライゼーションのコレクションです。
このチュートリアルで保存したビジュアライゼーションを含むダッシュボードを作成するには、次の手順を実行します。
. サイドナビゲーションの*Dashboard*をクリックします。
. *Add*をクリックして、保存したビジュアライゼーションのリストを表示します。
. _Markdown Example_、_Pie Example_、_Bar Example_、および_Map Example_をクリックしてから、リストの下部にある小さな上矢印をクリックしてビジュアライゼーションのリストを閉じます。
ビジュアライゼーションの上にマウスカーソルを移動すると、コンテナコントロールが表示されます。これを使用して、ビジュアライゼーションの編集、移動、削除、およびサイズ変更を実行できます。
サンプルのダッシュボードは、次のように表示されるはずです。
image::images/tutorial-dashboard.png[]
共有するためのリンクまたはWebページにダッシュボードを埋め込むためのHTMLコードを取得するには、ダッシュボードを保存して*Share*をクリックします。

View file

@ -0,0 +1,12 @@
[[tutorial-define-index]]
== Index Patternの定義
Elasticsearchに読み込まれたデータの各セットには、Index Patternがあります。前のセクションで、シェイクスピアデータセットには`shakespeare`という名前のインデックスがあり、口座データセットには`bank`という名前のインデックスがありました。_index pattern_は、複数のインデックスに一致するオプションのワイルドカードを持つ文字列です。たとえば、一般的なロギング事例では、典型的なインデックス名はYYYY.MM.DD形式の日付が含まれ、5月のIndex Patternは`logstash-2015.05*`のようになります。
このチュートリアルの場合、読み込んだインデックスの名前に一致するパターンが機能します。ブラウザを開き、`localhost:5601`に移動します。*Settings* タブをクリックしてから、*Indices* タブをクリックします。*Add New* をクリックして、新しいIndex Patternを定義します。2つのサンプルデータセット、シェイクスピアの戯曲と金融口座には、時系列データは含まれません。
これらのデータセットのIndex Patternを作成するときは、*Index contains time-based events* ボックスがオフになっていることを確認してください。
シェイクスピアデータセットのIndex Patternとして`shakes*`を指定し、*Create* をクリックしてIndex Patternを定義してから、`ba*`という名前の2つ目のIndex Patternを定義します。
Logstashデータセットには時系列データが含まれるため、*Add New* をクリックしてこのデータセットのインデックスを定義した後、*Index contains time-based events* ボックスがオンになっていることを確認して、*Time-field name* ドロップダウンから`@timestamp`フィールドを選択してください。
NOTE: Index Patternを定義するときは、そのパターンに一致するインデックスがElasticsearchに存在しなければなりません。そのインデックスには、データが含まれている必要があります。

View file

@ -0,0 +1,27 @@
[[tutorial-discovering]]
== データの検出
サイドナビゲーションで*Discover*をクリックして、Kibanaのデータ検出機能を表示します。
image::images/tutorial-discover.png[]
クエリバーで、 {es-ref}query-dsl-query-string-query.html#query-string-syntax[Elasticsearchクエリ]を入力して、データを検索できます。Discoverで結果を調べて、Visualizeで保存した結果のビジュアライゼーションを作成できます。
現在のIndex Patternは、クエリバーの下に表示されます。Index Patternは、クエリを送信したときに検索されるインデックスを決定します。別のインデックスのセットを検索するには、ドロップダウンメニューから別のパターンを選択します。
Index Patternを追加するには、*Management/Kibana/Index Patterns*に移動して、*Add New*をクリックします。
対象のフィールド名と値を使用して検索を構築できます。数値フィールドでは、より大きい(>)、より小さい(<)、または等しい(=などの比較演算子を使用できます。論理演算子AND、OR、およびNOTすべて大文字で要素をつなぐことができます。
試してみましょう。Index Pattern `ba*`を選択して、クエリバーに次のクエリ文字列を入力します。
[source,text]
account_number:<100 AND balance:>47500
このクエリは、残高が47,500より多い099の口座番号をすべて返します。サンブルの銀行データを検索した場合、5つの結果が返ります。
Account numbers 8, 32, 78, 85, and 97.
image::images/tutorial-discover-2.png[]
デフォルトでは、すべてのフィールドが一致するドキュメントごとに表示されます。表示するドキュメントフィールドを選択するには、Available Fieldsリストの上にマウスカーソルを移動し、含める各フィールドの横にある*add*ボタンをクリックします。 たとえば、`account_number`のみを追加すると、5つの口座番号を示すシンプルなリストに表示が変わります。
image::images/tutorial-discover-3.png[]

View file

@ -0,0 +1,167 @@
[[tutorial-load-dataset]]
== サンプルデータの読み込み
このセクションのチュートリアルは、次のデータセットを基にしています。
* 適切に解析されフィールドに入れられたウィリアムシェイクスピア全集。次をクリックして、このデータをダウンロードしてください。
https://download.elastic.co/demos/kibana/gettingstarted/shakespeare.json[shakespeare.json].
* データがランダムに生成された架空口座のセット。次をクリックして、このデータをダウンロードしてください。
https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip[accounts.zip]
* ランダムに生成されたログファイルのセット。次をクリックして、このデータをダウンロードしてください。
https://download.elastic.co/demos/kibana/gettingstarted/logs.jsonl.gz[logs.jsonl.gz]
2つのデータセットは圧縮されています。次のコマンドを使用して、ファイルを解凍します。
[source,shell]
unzip accounts.zip
gunzip logs.jsonl.gz
シェイクスピアデータセットは、次のスキーマに構成されています。
[source,json]
{
"line_id": INT,
"play_name": "String",
"speech_number": INT,
"line_number": "String",
"speaker": "String",
"text_entry": "String",
}
口座データセットは、次のスキーマに構成されています。
[source,json]
{
"account_number": INT,
"balance": INT,
"firstname": "String",
"lastname": "String",
"age": INT,
"gender": "M or F",
"address": "String",
"employer": "String",
"email": "String",
"city": "String",
"state": "String"
}
ログデータセットのスキーマには数多くの異なるフィールドが含まれていますが、このチュートリアルで使用される重要なフィールドは次のとおりです。
[source,json]
{
"memory": INT,
"geo.coordinates": "geo_point"
"@timestamp": "date"
}
シェイクスピアデータセットとログデータセットを読み込む前に、フィールドの {es-ref}mapping.html[_マッピング_]をセットアップする必要があります。
マッピングは、インデックス内のドキュメントを論理グループに分け、フィールドの検索性、トークン化されているかどうか、または別々の単語に分割されているかどうかなど、フィールドの特性を指定します。
ターミナル(`bash`など)で次のコマンドを使用して、シェークスピアデータセットのマッピングをセットアップします。
[source,shell]
curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/shakespeare -d '
{
"mappings" : {
"_default_" : {
"properties" : {
"speaker" : {"type": "string", "index" : "not_analyzed" },
"play_name" : {"type": "string", "index" : "not_analyzed" },
"line_id" : { "type" : "integer" },
"speech_number" : { "type" : "integer" }
}
}
}
}
';
このマッピングは、データセットの次の属性を指定します。
* _speaker_フィールドは、分析されない文字列です。このフィールド内の文字列は、フィールド内に複数の単語がある場合でも、単一ユニットとして扱われます。
* これは_play_name_フィールドについても同様です。
* _line_id_フィールドと_speech_number_フィールドは整数です。
ログデータセットには、`geo_point`タイプをログのフィールドに適用して、ログ内の緯度/経度ペアを地理的位置としてラベル付けするマッピングが必要です。
次のコマンドを使用して、ログの`geo_point`マッピングを定めます。
[source,shell]
curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/logstash-2015.05.18 -d '
{
"mappings": {
"log": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
}
';
[source,shell]
curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/logstash-2015.05.19 -d '
{
"mappings": {
"log": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
}
';
[source,shell]
curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/logstash-2015.05.20 -d '
{
"mappings": {
"log": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
}
';
口座データセットにマッピングは必要ありません。そのため、現段階で、Elasticsearch {es-ref}docs-bulk.html[`bulk`]APIを使用して、次のコマンドでデータセットを読み込む準備ができています。
[source,shell]
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl
これらのコマンドは、利用可能なコンピューティングリソースによって、実行に時間がかかる場合があります。
次のコマンドを使用して、正常に読み込まれたことを検証します。
[source,shell]
curl 'localhost:9200/_cat/indices?v'
次のようなoutputが表示されるはずです。
[source,shell]
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open bank 5 1 1000 0 418.2kb 418.2kb
yellow open shakespeare 5 1 111396 0 17.6mb 17.6mb
yellow open logstash-2015.05.18 5 1 4631 0 15.6mb 15.6mb
yellow open logstash-2015.05.19 5 1 4624 0 15.7mb 15.7mb
yellow open logstash-2015.05.20 5 1 4750 0 16.4mb 16.4mb

View file

@ -0,0 +1,139 @@
[[tutorial-visualizing]]
== データの可視化
データの可視化を始めるには、サイドナビゲーションで*Visualize*をクリックします。
image::images/tutorial-visualize.png[]
*Visualize*ツールを使用すると、複数の方法でデータを表示できます。 例として、長く利用されているビジュアライゼーション手法である円グラフを使用して、サンプル銀行口座データの口座残高を調べてみましょう。
開始するには、ビジュアライゼーションのリストで*Pie chart*をクリックします。 保存した検索からビジュアライゼーションを作成するか、新規の検索基準を入力できます。新規の検索基準を入力するには、最初にIndex Patternを選択して、検索対象のインデックスを指定する必要があります。口座データを検索するので、Index Pattern `ba*`を選択します。
デフォルトの検索は、すべてのドキュメントに一致します。最初は、1つの「スライス」が円全体を含んでいます。
image::images/tutorial-visualize-pie-1.png[]
グラフに表示するスライスを指定するには、Elasticsearch {es-ref}search-aggregations.html[バケット集約]を使用します。バケット集約は、検索基準に一致したドキュメントを別のカテゴリ別名_buckets_にシンプルにソートします。たとえば、口座データには各口座の残高が含まれます。バケット集約を使用して、複数の口座残高の範囲を定め、各範囲内にある口座の数を調べることができます。
各範囲のバケットを定義するには、次の手順を実行します。
. *Split Slices*バケットタイプをクリックします。
. *Aggregation*リストから*Range*を選択します。
. *Field*リストから*balance*フィールドを選択します。
. *Add Range*を4回クリックして、範囲の総数を6にします。
. 次の範囲を定義します。
+
[source,text]
0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000
. *Apply changes* image:images/apply-changes-button.png[] をクリックして、グラフを更新します。
これで、各残高範囲にある1000個のアカウントの割合が表示されます。
image::images/tutorial-visualize-pie-2.png[]
では、口座名義人の年齢というデータの別の側面を調べてみましょう。 次のように別のバケット集約を追加して、各残高範囲内の口座名義人の年齢を表示します。
. バケットリストの下にある*Add sub-buckets*をクリックします。
. バケットタイプリストの*Split Slices*をクリックします。
. 集約リストから*Terms*を選択します。
. フィールドリストから*age*を選択します。
. *Apply changes* image:images/apply-changes-button.png[] をクリックします。
これで、残高範囲を囲むリングに表示される口座名義人の年齢の内訳が表示されます。
image::images/tutorial-visualize-pie-3.png[]
後で使用できるようにこのグラフを保存するには、*Save*をクリックして、_Pie Example_と名前を入力します。
次に、シェークスピアデータセットのデータを調べます。戯曲をせりふのある場面数に関して比較する方法について調べ、情報を棒グラフに表示しましょう。
. *New*をクリックして、*Vertical bar chart*を選択します。
. Index Pattern `shakes*`を選択します。バケットを定義していないため、デフォルトのワイルドカードクエリに一致するドキュメントの総数を示す大きな棒が1つ表示されます。
+
image::images/tutorial-visualize-bar-1.png[]
. Y軸に各戯曲につきせりふのある場面数を表示するには、Y軸 {es-ref}search-aggregations.html[メトリクス集約]を設定する必要があります。メトリクス集約は、検索結果から抽出された値に基づいてメトリクスを計算します。
戯曲ごとのせりふのある場面数を得るには、*Unique Count*集約を選択して、フィールドリストから*speaker*を選択します。 軸に_Speaking Parts_というカスタムラベルを付けることもできます。
. X軸に別の戯曲を表示するには、X軸バケットタイプを選択し、集約リストから*Terms*を選択して、フィールドリストから*play_name*を選択します。 アルファベット順に表示するには、*Ascending*を選択します。 軸に_Play Name_というカスタムラベルを付けることもできます。
. *Apply changes* image:images/apply-changes-button.png[] をクリックして、結果を表示します。
image::images/tutorial-visualize-bar-2.png[]
別々の単語に分割されるのではなく、語句全体として個別の戯曲名が表示されます。これは、チュートリアルの始めに行ったマッピングによるものです。*play_name*フィールドを「分析対象外」としてマークしました。
各棒の上にマウスカーソルを移動すると、ツールチップに各戯曲のせりふのある場面数が表示されます。ツールチップをオフにして、ビジュアライゼーションに別のオプションを設定するには、Visualizationビルダーの*Options*タブを選択します。
これで、シェークスピア戯曲の最小の配役リストができました。指定した配役のせりふの最大数を表示して、1人の俳優にかかる負荷が最も高い戯曲はどれかを知ることもできます。
. *Add metrics*をクリックして、Y軸集約を追加します。
. *Max*集約を選択して、*speech_number*フィールドを選択します。
. *Options*をクリックして、*Bar Mode*から*grouped*に変更します。
. *Apply changes* image:images/apply-changes-button.png[] をクリックします。グラフは次のようになります。
image::images/tutorial-visualize-bar-3.png[]
表示されているように、他の戯曲に比べて、_Love's Labours Lost_のせりふの最大数が極端に多く、より優れた記憶力が俳優に求められるかもしれません。
*Number of speaking parts* Y軸は0から始まっていますが、18までは同じです。Y軸の始点を最小値近くの値にして違いを目立たせるには、Optionで*Scale Y-Axis to data bounds*を選択します。
このグラフを_Bar Example_という名前で保存します。
次に、タイルマップグラフを使用して、ログファイルサンプルデータの地理情報を可視化します。
. *New*をクリックします。
. *Tile map*を選択します。
. Index Pattern `logstash-*`を選択します。
. 調査するイベントの時間枠を設定します。
. Kibanaツールバーで、日時指定コントロールをクリックします。
. *Absolute*をクリックします。
. 開始時間を2015年5月18日、終了時間を2015年5月20日に設定します。
+
image::images/tutorial-timepicker.png[]
. 時間範囲をセットアップしたら、*Go*ボタンをクリックし、右下隅にある小さな上矢印をクリックして日時指定コントロールを閉じます。
バケットを定義していないため、世界地図が表示されます。
image::images/tutorial-visualize-map-1.png[]
ログファイルの位置座標をマップするには、*Geo Coordinates*をバケットとして選択して、 *Apply changes* image:images/apply-changes-button.png[] をクリックします。
グラフは次のようになります。
image::images/tutorial-visualize-map-2.png[]
クリックやドラッグでマップを移動したり、image:images/viz-zoom.png[]ボタンでズームしたりすることができます。また、*Fit Data Bounds* image:images/viz-fit-bounds.png[] ボタンを押すと、すべてのポイントを含む最下層にズームすることもできます。さらに、*Latitude/Longitude Filter* image:images/viz-lat-long-filter.png[]ボタンをクリックし、マップ上で境界ボックスをドラッグして、四角い領域を含めたり除外したりできます。利用可能なフィルタはクエリバーの下に表示されます。フィルタの上にマウスカーソルを移動すると、フィルタの切り替え、ピン留め、反転、または削除を実行するコントロールが表示されます。
image::images/tutorial-visualize-map-3.png[]
このグラフを_Map Example_という名前で保存します。
最後に、Markdownウィジェットを作成して、追加情報を表示します。
. *New*をクリックします。
. *Markdown widget*を選択します。
. フィールドに次のテキストを入力します。
+
[source,markdown]
# This is a tutorial dashboard!
The Markdown widget uses **markdown** syntax.
> Blockquotes in Markdown use the > character.
. *Apply changes* image:images/apply-changes-button.png[]をクリックして、プレビューペインにMarkdownを描画します。
+
image::images/tutorial-visualize-md-1.png[]
image::images/tutorial-visualize-md-2.png[]
このビジュアライゼーションを_Markdown Example_という名前で保存します。

View file

@ -0,0 +1,9 @@
[[wrapping-up]]
== まとめ
これで、基本を把握しました。Kibanaを使用して、独自のデータの調査を開始できます。
* データの検索とフィルタリングの詳細については、{kibana-ref}/discover.html[検出]を参照してください。
* Kibanaが提供するすべてのビジュアライゼーションタイプについては、{kibana-ref}/visualize.html[ 可視化]を参照してください。
* Kibanaの設定と保存したオブジェクトの管理については、{kibana-ref}/management.html[管理]を参照してください。
* ElasticsearchへのRESTリクエストの送信に使用するインタラクティブなコンソールUIについては、{kibana-ref}/console-kibana.html[ コンソール]を参照してください。

27
docs/jp/gs-index.asciidoc Normal file
View file

@ -0,0 +1,27 @@
[[kibana-guide]]
= Kibanaユーザーガイド
//////////
release-state can be: released | prerelease | unreleased
//////////
:release-state: released
:version: 5.4.0
:major-version: 5.4
:branch: 5.4
:docker-image: docker.elastic.co/kibana/kibana:{version}
:es-ref: https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/
:kibana-ref: https://www.elastic.co/guide/en/kibana/reference/{branch}
:xpack-ref: https://www.elastic.co/guide/en/x-pack/current/
:repo: https://github.com/elastic/kibana/
:issue: {repo}issues/
:pull: {repo}pull/
:commit: {repo}commit/
:security: https://www.elastic.co/community/security/
include::introduction.asciidoc[]
include::setup/install.asciidoc[]
include::getting-started.asciidoc[]

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
docs/jp/images/EditVis.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
docs/jp/images/history.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
docs/jp/images/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Some files were not shown because too many files have changed in this diff Show more