# setting功能

要使用 Kibana，你就得告诉它你想要探索的 Elasticsearch 索引是那些，这就要配置一个或者更多的索引模式。此外，你还可以：

* 创建脚本化字段，这个字段可以实时从你的数据中计算出来。你可以浏览这种字段，并且在它基础上做可视化，但是不能搜索这种字段。
* 设置高级选项，比如表格里显示多少行，常用字段显示多少个。修改高级选项的时候要千万小心，因为一个设置很可能跟另一个设置是不兼容的。
* 为生产环境配置 Kibana。

### 创建一个连接到 Elasticsearch 的索引模式

一个索引模式定义了一个或者多个你打算探索的 Elasticsearch 索引。Kibana 会查找匹配指定模式的索引名。模式中的通配符(\*)匹配零到多个字符。比如，模式 `myindex-*` 匹配所有名字以 `myindex-` 开头的索引，比如 `myindex-1` 和 `myindex-2`。

如果你用了事件时间来创建索引名(比如说，如果你是用 Logstash 往 Elasticsearch 里写数据)，索引模式里也可以匹配一个日期格式。在这种情况下，模式的静态文本部分必须用中括号包含起来，日期格式能用的字符，参见表 1 "日期格式码"。

比如，`[logstash-]YYYY.MM.DD` 匹配所有名字以 `logstash-` 为前缀，后面跟上 `YYYY.MM.DD` 格式时间戳的索引，比如 `logstash-2015.01.31` 和 `logstash-2015-02-01`。

索引模式也可以简单的设置为一个单独的索引名字。

要创建一个连接到 Elasticsearch 的索引模式：

1. 切换到 `Settings > Indices` 标签页。
2. 指定一个能匹配你的 Elasticsearch 索引名的索引模式。默认的，Kibana 会假设你是要处理 Logstash 导入的数据。

> 当你在顶层标签页之间切换的时候，Kibana 会记住你之前停留的位置。比如，如果你在 Settings 标签页查看了一个索引模式，然后切换到 Discover 标签，再切换回 Settings 标签，Kibana 还会显示上次你查看的索引模式。要看到创建模式的表单，需要从索引模式列表里点击 `Add` 按钮。

1. 如果你索引有时间戳字段打算用来做基于事件的对比，勾选 `Index contains time-based events` 然后选择包含了时间戳的索引字段。Kibana 会读取索引映射，列出所有包含了时间戳的字段供选择。
2. 如果新索引是周期性生成，名字里有时间戳的，勾选 `Use event times to create index names` 和 `Index pattern interval` 选项。这会让 Kibana 只搜索哪些包含了你指定的时间范围内的数据的索引。当你使用 Logstash 往 Elasticsearch 写数据的时候非常有用。
3. 点击 `Create` 添加索引模式。
4. 要设置新模式作为你查看 Discover 页是的默认模式，点击 `favorite` 按钮。

表 1. 日期格式码

| 格式   | 描述                                                                        |
| ---- | ------------------------------------------------------------------------- |
| M    | Month - cardinal: 1 2 3 … 12                                              |
| Mo   | Month - ordinal: 1st 2nd 3rd … 12th                                       |
| MM   | Month - two digit: 01 02 03 … 12                                          |
| MMM  | Month - abbreviation: Jan Feb Mar … Dec                                   |
| MMMM | Month - full: January February March … December                           |
| Q    | Quarter: 1 2 3 4                                                          |
| D    | Day of Month - cardinal: 1 2 3 … 31                                       |
| Do   | Day of Month - ordinal: 1st 2nd 3rd … 31st                                |
| DD   | Day of Month - two digit: 01 02 03 … 31                                   |
| DDD  | Day of Year - cardinal: 1 2 3 … 365                                       |
| DDDo | Day of Year - ordinal: 1st 2nd 3rd … 365th                                |
| DDDD | Day of Year - three digit: 001 002 … 364 365                              |
| d    | Day of Week - cardinal: 0 1 3 … 6                                         |
| do   | Day of Week - ordinal: 0th 1st 2nd … 6th                                  |
| dd   | Day of Week - 2-letter abbreviation: Su Mo Tu … Sa                        |
| ddd  | Day of Week - 3-letter abbreviation: Sun Mon Tue … Sat                    |
| dddd | Day of Week - full: Sunday Monday Tuesday … Saturday                      |
| e    | Day of Week (locale): 0 1 2 … 6                                           |
| E    | Day of Week (ISO): 1 2 3 … 7                                              |
| w    | Week of Year - cardinal (locale): 1 2 3 … 53                              |
| wo   | Week of Year - ordinal (locale): 1st 2nd 3rd … 53rd                       |
| ww   | Week of Year - 2-digit (locale): 01 02 03 … 53                            |
| W    | Week of Year - cardinal (ISO): 1 2 3 … 53                                 |
| Wo   | Week of Year - ordinal (ISO): 1st 2nd 3rd … 53rd                          |
| WW   | Week of Year - two-digit (ISO): 01 02 03 … 53                             |
| YY   | Year - two digit: 70 71 72 … 30                                           |
| YYYY | Year - four digit: 1970 1971 1972 … 2030                                  |
| gg   | Week Year - two digit (locale): 70 71 72 … 30                             |
| gggg | Week Year - four digit (locale): 1970 1971 1972 … 2030                    |
| GG   | Week Year - two digit (ISO): 70 71 72 … 30                                |
| GGGG | Week Year - four digit (ISO): 1970 1971 1972 … 2030                       |
| A    | AM/PM: AM PM                                                              |
| a    | am/pm: am pm                                                              |
| H    | Hour: 0 1 2 … 23                                                          |
| HH   | Hour - two digit: 00 01 02 … 23                                           |
| h    | Hour - 12-hour clock: 1 2 3 … 12                                          |
| hh   | Hour - 12-hour clock, 2 digit: 01 02 03 … 12                              |
| m    | Minute: 0 1 2 … 59                                                        |
| mm   | Minute - two-digit: 00 01 02 … 59                                         |
| s    | Second: 0 1 2 … 59                                                        |
| ss   | Second - two-digit: 00 01 02 … 59                                         |
| S    | Fractional Second - 10ths: 0 1 2 … 9                                      |
| SS   | Fractional Second - 100ths: 0 1 … 98 99                                   |
| SSS  | Fractional Seconds - 1000ths: 0 1 … 998 999                               |
| Z    | Timezone - zero UTC offset (hh:mm format): -07:00 -06:00 -05:00 .. +07:00 |
| ZZ   | Timezone - zero UTC offset (hhmm format): -0700 -0600 -0500 … +0700       |
| X    | Unix Timestamp: 1360013296                                                |
| x    | Unix Millisecond Timestamp: 1360013296123                                 |

### 设置默认索引模式

默认索引模式会在你查看 **Discover** 标签的时候自动加载。Kibana 会在 **Settings > Indices** 标签页的索引模式列表里，给默认模式左边显示一个星号。你创建的第一个模式会自动被设置为默认模式。

要设置一个另外的模式为默认索引模式：

1. 进入 `Settings > Indices` 标签页。
2. 在索引模式列表里选择你打算设置为默认值的模式。
3. 点击模式的 `Favorite` 标签。

> 你也可以在 **Advanced > Settings** 里设置默认索引模式。

### 重加载索引的字段列表

当你添加了一个索引映射，Kibana 自动扫描匹配模式的索引以显示索引字段。你可以重加载索引字段列表，以显示新添加的字段。

重加载索引字段列表，也会重设 Kibana 的常用字段计数器。这个计数器是跟踪你在 Kibana 里常用字段，然后来排序字段列表的。

要重加载索引的字段列表：

1. 进入 `Settings > Indices` 标签页。
2. 在索引模式列表里选择一个索引模式。
3. 点击模式的 `Reload` 按钮。

### 删除一个索引模式

要删除一个索引模式：

1. 进入 `Settings > Indices` 标签页。
2. 在索引模式列表里选择你打算删除的模式。
3. 点击模式的 `Delete` 按钮。
4. 确认你是想要删除这个索引模式。

### 创建一个脚本化字段

脚本化字段从你的 Elasticsearch 索引数据中即时计算得来。在 **Discover** 标签页，脚本化字段数据会作为文档数据的一部分显示，而且你还可以在可视化里使用脚本化字段。(脚本化字段的值是在请求的时候计算的，所以它们没有被索引，不能搜索到)

> 即时计算脚本化字段非常消耗资源，会直接影响到 Kibana 的性能。而且记住，Elasticsearch 里没有内置对脚本化字段的验证功能。如果你的脚本有 bug，你会在查看动态生成的数据时看到 exception。

脚本化字段使用 Lucene 表达式语法。更多细节，请阅读 [Lucene Expressions Scripts](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#_lucene_expressions_scripts)。

你可以在表达式里引用任意单个数值类型字段，比如：

```
doc['field_name'].value
```

要创建一个脚本化字段：

1. 进入 `Settings > Indices`
2. 选择你打算添加脚本化字段的索引模式。
3. 进入模式的 `Scripted Fields` 标签。
4. 点击 `Add Scripted Field`。
5. 输入脚本化字段的名字。
6. 输入用来即时计算数据的表达式。
7. 点击 `Save Scripted Field`.

有关 Elasticsearch 的脚本化字段的更多细节，阅读 [Scripting](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html)。

### 更新一个脚本化字段

要更新一个脚本化字段：

1. 进入 `Settings > Indices`。
2. 点击你要更新的脚本化字段的 `Edit` 按钮。
3. 完成变更后点击 `Save Scripted Field` 升级。

> 注意 Elasticsearch 里没有内置对脚本化字段的验证功能。如果你的脚本有 bug，你会在查看动态生成的数据时看到 exception。

### 删除一个脚本化字段

要删除一个脚本化字段：

1. 进入 `Settings > Indices`。
2. 点击你要删除的脚本化字段的 `Delete` 按钮。
3. 确认你确实想删除它。

### 设置高级参数

高级参数页允许你直接编辑那些控制着 Kibana 应用行为的设置。比如，你可以修改显示日期的格式，修改默认的索引模式，设置十进制数值的显示精度。

> 修改高级参数可能带来意想不到的后果。如果你不确定自己在做什么，最好离开这个设置页面。

要设置高级参数：

1. 进入 `Settings > Advanced`。
2. 点击你要修改的选项的 `Edit` 按钮。
3. 给这个选项输入一个新的值。
4. 点击 `Save` 按钮。

## 管理已保存的搜索，可视化和仪表板

你可以从 **Settings > Objects** 查看，编辑，和删除已保存的搜索，可视化和仪表板。

查看一个已保存的对象会显示在 **Discover**, **Visualize** 或 **Dashboard** 页里已选择的项目。要查看一个已保存对象：

1. 进入 `Settings > Objects`。
2. 选择你想查看的对象。
3. 点击 `View` 按钮。

编辑一个已保存对象让你可以直接修改对象定义。你可以修改对象的名字，添加一段说明，以及修改定义这个对象的属性的 JSON。

如果你尝试访问一个对象，而它关联的索引已经被删除了，Kibana 会显示这个对象的编辑(Edit Object)页。你可以：

* 重建索引这样就可以继续用这个对象。
* 删除对象，然后用另一个索引重建对象。
* 在对象的 `kibanaSavedObjectMeta.searchSourceJSON` 里修改引用的索引名，指向一个还存在的索引模式。这个在你的索引被重命名了的情况下非常有用。

> 对象属性没有验证机制。提交一个无效的变更会导致对象不可用。通常来说，你还是应该用 Discover, Visualize 或 Dashboard 页面来创建新对象而不是直接编辑已存在的对象。

要编辑一个已保存的对象：

1. 进入 `Settings > Objects`。
2. 选择你想编辑的对象。
3. 点击 `Edit` 按钮。
4. 修改对象定义。
5. 点击 `Save Object` 按钮。

要删除一个已保存的对象：

1. 进入 `Settings > Objects`。
2. 选择你想删除的对象。
3. 点击 `Delete` 按钮。
4. 确认你确实想删除这个对象。

## 设置 kibana 服务器属性

Kibana 服务器在启动的时候会从 `kibana.yml` 文件读取属性设置。默认设置是运行在 `localhost:5601`。要变更主机或端口，或者连接远端主机上的 Elasticsearch，你都需要更新你的 `kibana.yml` 文件。你还可以开启 SSL 或者设置其他一系列选项：

表 2. Kibana 服务器属性

| 属性                            | 描述                                                                                                                                            |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| server.port                   | Kibana 服务器运行的端口。默认：`5601`。                                                                                                                    |
| server.host                   | Kibana 服务器监听的地址。默认：`"0.0.0.0"`。                                                                                                               |
| server.defaultRoute           | 进入 Kibana 时默认跳转的地址。默认为 `/app/kibana`。                                                                                                         |
| server.ssl.enabled            | 是否开启 Kibana 服务器的 SSL 验证。                                                                                                                      |
| server.ssl.key                | Kibana 服务器的密钥文件路径。设置用来加密浏览器和 Kibana 之间的通信。默认：none。                                                                                            |
| server.ssl.certificate        | Kibana 服务器的证书文件路径。设置用来加密浏览器和 Kibana 之间的通信。默认：none。                                                                                            |
| pid.file                      | 你想用来存进程 ID 文件的位置。如果没有指定，PID 文件存在 `/var/run/kibana.pid`。                                                                                       |
| kibana.index                  | 保存搜索，可视化，仪表板信息的索引的名字。默认：`.kibana`。                                                                                                            |
| kibana.defaultAppId           | 进入 Kibana App 后默认显示的页面。默认：`discover`。                                                                                                         |
| tilemap.url                   | 用来显示瓦片地图的服务接口 URL。想使用高德地图的读者可以设置为：`"http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}"`。          |
| elasticsearch.url             | 你想请求的索引存在哪个 Elasticsearch 实例上。默认：`"http://localhost:9200"`。                                                                                   |
| elasticsearch.preserveHost    | 默认的，浏览器请求中的主机名即作为 Kibana 发送给 Elasticsearch 时请求的主机名。如果你设置这个参数为 `false`, Kibana 会改用 `elasticsearch.url` 里的主机名。你应该不用担心这个设置 —— 直接用默认即可。默认：`true`。 |
| elasticsearch.requestTimeout  | 等待 Kibana 后端或 Elasticsearch 的响应的超时时间，单位毫秒。默认：`30000`。                                                                                         |
| elasticsearch.shardTimeout    | Elasticsearch 等待分片响应的超时时间。设置为 0 表示关闭超时控制。默认：`0`。                                                                                              |
| elasticsearch.ssl.key         | 用来加密 Kibana 和 Elasticsearch 之间的通信的密钥文件。默认：none。                                                                                               |
| elasticsearch.ssl.certificate | 用来加密 Kibana 和 Elasticsearch 之间的通信的证书文件。默认：none。                                                                                               |
| elasticsearch.tribe.url       | 如果使用 Elasticsearch 的 Tribe Node 查询多个集群的数据，需配置 Tribe Node 的地址。                                                                                 |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hezhiqiang.gitbook.io/elkstack/kibana/settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
