要使用 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 的索引模式:
- 切换到
Settings > Indices标签页。 - 指定一个能匹配你的 Elasticsearch 索引名的索引模式。默认的,Kibana 会假设你是要处理 Logstash 导入的数据。
当你在顶层标签页之间切换的时候,Kibana 会记住你之前停留的位置。比如,如果你在 Settings 标签页查看了一个索引模式,然后切换到 Discover 标签,再切换回 Settings 标签,Kibana 还会显示上次你查看的索引模式。要看到创建模式的表单,需要从索引模式列表里点击
Add按钮。
- 如果你索引有时间戳字段打算用来做基于事件的对比,勾选
Index contains time-based events然后选择包含了时间戳的索引字段。Kibana 会读取索引映射,列出所有包含了时间戳的字段供选择。 - 如果新索引是周期性生成,名字里有时间戳的,勾选
Use event times to create index names和Index pattern interval选项。这会让 Kibana 只搜索哪些包含了你指定的时间范围内的数据的索引。当你使用 Logstash 往 Elasticsearch 写数据的时候非常有用。 - 点击
Create添加索引模式。 - 要设置新模式作为你查看 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 标签页的索引模式列表里,给默认模式左边显示一个星号。你创建的第一个模式会自动被设置为默认模式。
要设置一个另外的模式为默认索引模式:
- 进入
Settings > Indices标签页。 - 在索引模式列表里选择你打算设置为默认值的模式。
- 点击模式的
Favorite标签。
你也可以在 Advanced > Settings 里设置默认索引模式。
重加载索引的字段列表
当你添加了一个索引映射,Kibana 自动扫描匹配模式的索引以显示索引字段。你可以重加载索引字段列表,以显示新添加的字段。
重加载索引字段列表,也会重设 Kibana 的常用字段计数器。这个计数器是跟踪你在 Kibana 里常用字段,然后来排序字段列表的。
要重加载索引的字段列表:
- 进入
Settings > Indices标签页。 - 在索引模式列表里选择一个索引模式。
- 点击模式的
Reload按钮。
删除一个索引模式
要删除一个索引模式:
- 进入
Settings > Indices标签页。 - 在索引模式列表里选择你打算删除的模式。
- 点击模式的
Delete按钮。 - 确认你是想要删除这个索引模式。
创建一个脚本化字段
脚本化字段从你的 Elasticsearch 索引数据中即时计算得来。在 Discover 标签页,脚本化字段数据会作为文档数据的一部分显示,而且你还可以在可视化里使用脚本化字段。(脚本化字段的值是在请求的时候计算的,所以它们没有被索引,不能搜索到)
即时计算脚本化字段非常消耗资源,会直接影响到 Kibana 的性能。而且记住,Elasticsearch 里没有内置对脚本化字段的验证功能。如果你的脚本有 bug,你会在查看动态生成的数据时看到 exception。
脚本化字段使用 Lucene 表达式语法。更多细节,请阅读 Lucene Expressions Scripts。
你可以在表达式里引用任意单个数值类型字段,比如:
doc['field_name'].value
要创建一个脚本化字段:
- 进入
Settings > Indices - 选择你打算添加脚本化字段的索引模式。
- 进入模式的
Scripted Fields标签。 - 点击
Add Scripted Field。 - 输入脚本化字段的名字。
- 输入用来即时计算数据的表达式。
- 点击
Save Scripted Field.
有关 Elasticsearch 的脚本化字段的更多细节,阅读 Scripting。
更新一个脚本化字段
要更新一个脚本化字段:
- 进入
Settings > Indices。 - 点击你要更新的脚本化字段的
Edit按钮。 - 完成变更后点击
Save Scripted Field升级。
注意 Elasticsearch 里没有内置对脚本化字段的验证功能。如果你的脚本有 bug,你会在查看动态生成的数据时看到 exception。
删除一个脚本化字段
要删除一个脚本化字段:
- 进入
Settings > Indices。 - 点击你要删除的脚本化字段的
Delete按钮。 - 确认你确实想删除它。
设置高级参数
高级参数页允许你直接编辑那些控制着 Kibana 应用行为的设置。比如,你可以修改显示日期的格式,修改默认的索引模式,设置十进制数值的显示精度。
修改高级参数可能带来意想不到的后果。如果你不确定自己在做什么,最好离开这个设置页面。
要设置高级参数:
- 进入
Settings > Advanced。 - 点击你要修改的选项的
Edit按钮。 - 给这个选项输入一个新的值。
- 点击
Save按钮。
管理已保存的搜索,可视化和仪表板
你可以从 Settings > Objects 查看,编辑,和删除已保存的搜索,可视化和仪表板。
查看一个已保存的对象会显示在 Discover, Visualize 或 Dashboard 页里已选择的项目。要查看一个已保存对象:
- 进入
Settings > Objects。 - 选择你想查看的对象。
- 点击
View按钮。
编辑一个已保存对象让你可以直接修改对象定义。你可以修改对象的名字,添加一段说明,以及修改定义这个对象的属性的 JSON。
如果你尝试访问一个对象,而它关联的索引已经被删除了,Kibana 会显示这个对象的编辑(Edit Object)页。你可以:
- 重建索引这样就可以继续用这个对象。
- 删除对象,然后用另一个索引重建对象。
- 在对象的
kibanaSavedObjectMeta.searchSourceJSON里修改引用的索引名,指向一个还存在的索引模式。这个在你的索引被重命名了的情况下非常有用。
对象属性没有验证机制。提交一个无效的变更会导致对象不可用。通常来说,你还是应该用 Discover, Visualize 或 Dashboard 页面来创建新对象而不是直接编辑已存在的对象。
要编辑一个已保存的对象:
- 进入
Settings > Objects。 - 选择你想编辑的对象。
- 点击
Edit按钮。 - 修改对象定义。
- 点击
Save Object按钮。
要删除一个已保存的对象:
- 进入
Settings > Objects。 - 选择你想删除的对象。
- 点击
Delete按钮。 - 确认你确实想删除这个对象。
设置 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 的地址。 |