Kibana 用户指南(配置Kibana)
配置Kibana
Kibana服务在启动时从Kibana.yml文件读取属性,这个文件的位置取决于你如何安装Kibana。例如,如果从归档发行版(.tar.gz或.zip)安装Kibana,默认情况下是$KIBANA_HOME/config。默认情况下,对于包发行版(Debian或RPM),它在/etc/kibana中。
默认设置将Kibana配置为在localhost:5601上运行,要更改主机或端口号,或连接到运行在另一台机器上的Elasticsearch,你需要更新Kibana.yml文件。还可以启用SSL并设置各种其他选项,最后,可以使用${MY_ENV_VAR}语法将环境变量注入配置。
Kibana配置设置
console.enabled:
- 默认:
true - 设置为
false以禁用控制台,切换这个将导致服务器在下一次启动时重新生成资源,这可能会导致在页面在开始服务之前出现延迟。
cpu.cgroup.path.override:
- 当挂载的方式与
/proc/self/cgroup不一致时,覆盖cgroup cpu路径。
cpuacct.cgroup.path.override:
- 当挂载的方式与
/proc/self/cgroup不一致时,覆盖cgroup cpuacct路径。
elasticsearch.customHeaders:
- 默认:
{} - 发送给Elasticsearch的Header名称和值,任何自定义的头都不能被客户端的header覆盖,不管
elasticsearch.requestHeadersWhitelist的配置。
elasticsearch.logQueries:
- 默认:
false - 日志查询发送到Elasticsearch,要求将
logging.verbose设置为true,这对于查看当前没有监控面板的应用程序生成的查询DSL非常有用,例如Timelion和Monitoring。
elasticsearch.pingTimeout:
- 默认:
elasticsearch.requestTimeout设置的值。 - 等待Elasticsearch响应ping的时间(毫秒)。
elasticsearch.preserveHost:
- 默认:
true - 当此设置的值为
true时,Kibana使用server.host中指定的主机名的设置,当此设置的值为false时,Kibana使用连接到此Kibana实例的主机的主机名。
elasticsearch.requestHeadersWhitelist:
- 默认:
[ 'authorization' ] - 送到Elasticsearch的Kibana客户端headers列表,要发送无客户端headers,请将此值设置为
[](空列表)。
elasticsearch.requestTimeout:
- 默认:
30000 - 等待来自后端或Elasticsearch的响应的毫秒数,这个值必须是正整数。
elasticsearch.shardTimeout:
- 默认:
30000 - Elasticsearch等待碎片响应的毫秒数,设置为
0禁用。
elasticsearch.ssl.certificate和elasticsearch.ssl.key:
- 可选设置,提供pem格式的SSL证书和密钥文件的路径,这些文件用于验证Kibana到Elasticsearch的身份,当在Elasticsearch中
xpack.ssl.verification_mode被设置为certificate或full时需要这些文件。
elasticsearch.ssl.certificateAuthorities:
- 可选设置,使你能够为你的Elasticsearch实例的证书颁发机构指定PEM文件的路径列表。
elasticsearch.ssl.keyPassphrase:
- 用于解密私钥的密码,此值是可选的,因为密钥可能没有加密。
elasticsearch.ssl.verificationMode:
- 默认:
full - 控制Elasticsearch所提供证书的验证,有效值为
none、certificate和full,full执行主机名验证,而certificate不执行。
elasticsearch.startupTimeout:
- 默认:
5000 - 在Kibana启动前等待Elasticsearch的毫秒时间。
elasticsearch.url:
- 默认:
"http://localhost:9200" - 用于所有查询的Elasticsearch实例的URL。
elasticsearch.username和elasticsearch.password:
- 如果你的Elasticsearch受到基本身份验证的保护,这些设置将提供Kibana服务器在启动时用于对Kibana索引进行维护的用户名和密码,你的Kibana用户仍然需要使用Elasticsearch进行身份验证,这是通过Kibana服务器进行的。
elasticsearch.tribe.customHeaders:
- 默认:
{} - 发送给Elasticsearch的Header名称和值,任何自定义headers都不能被客户端标headers覆盖,不管
elasticsearch.tribe.requestHeadersWhitelist配置。
elasticsearch.tribe.pingTimeout:
- 默认:
elasticsearch.tribe.requestTimeout设置的值 - 等待Elasticsearch响应ping的时间(毫秒)。
elasticsearch.tribe.requestHeadersWhitelist:
- 默认:
[ 'authorization' ] - 发送到Elasticsearch的Kibana客户端headers列表,要发送无客户端headers,请将此值设置为
[](空列表)。
elasticsearch.tribe.requestTimeout:
- 默认:
30000 - 等待后端或Elasticsearch响应的时间(以毫秒为单位),这个值必须是一个正整数。
elasticsearch.tribe.ssl.certificate和elasticsearch.tribe.ssl.key:
- 可选设置,提供pem格式的SSL证书和密钥文件的路径,这些文件验证你的Elasticsearch后端使用相同的密钥文件。
elasticsearch.tribe.ssl.certificateAuthorities:
- 可选设置,使你能够为你的tribe Elasticsearch实例的证书颁发机构指定PEM文件的路径。
elasticsearch.tribe.ssl.keyPassphrase:
- 用于解密私钥的密码,此值是可选的,因为密钥可能没有加密。
elasticsearch.tribe.ssl.verificationMode:
- 默认:
full - 控制证书的验证,有效值为
none、certificate和full,full执行主机名验证,而certificate不执行。
elasticsearch.tribe.url:
- 可供所有查询使用的Elasticsearch tribe实例的可选的URL。
elasticsearch.tribe.username和elasticsearch.tribe.password:
- 如果你的Elasticsearch受到基本身份验证的保护,这些设置将提供Kibana服务器在启动时用于对Kibana索引进行维护的用户名和密码,你的Kibana用户仍然需要使用Elasticsearch进行身份验证,这是通过Kibana服务器进行的。
kibana.defaultAppId:
- 默认:
"discover" - 要加载的默认应用程序。
kibana.index:
- 默认:
".kibana" - Kibana使用Elasticsearch中的索引来存储保存的搜索、可视化和仪表盘,如果索引不存在,Kibana会创建一个新的索引。
logging.dest:
- 默认:
stdout - 允许你指定一个文件存储Kibana日志输出。
logging.quiet:
- 默认:
false - 将此设置的值设置为
true,以抑制除错误消息之外的所有日志输出。
logging.silent:
- 默认:
false - 将此设置的值设置为
true以抑制所有日志输出。
logging.verbose:
- 默认:
false - 将此设置的值设置为
true,以记录所有事件,包括系统使用信息和所有请求,在Elastic Cloud Enterprise上支持。
logging.useUTC:
- 默认:
true - 将此设置的值设置为
false,以便使用服务器的时区(而不是UTC)记录事件。
map.includeElasticMapsService:
- 默认:
true - 打开或关闭Elastic Maps服务的层是否应该包含在矢量和平铺层选项列表中,通过关闭这个选项,只包含在这里配置的层。
path.data:
- 默认:
data - Kibana存储持久数据的路径,不存储在Elasticsearch。
pid.file:
- 指定Kibana创建进程ID文件的路径。
ops.interval:
- 默认:
5000 - 设置以毫秒为单位的间隔,以采样系统和处理性能指标,最小值是
100。
regionmap:
- 指定用于区域地图可视化的其他矢量层,每个层对象指向一个包含
geojson特征集的外部向量文件,该文件必须使用WGS84坐标参考系统,并且只包括多边形,如果文件驻留在与Kibana分离的域中,则服务器需要启用内核,以便Kibana可以下载该文件,下面的示例显示了有效的regionmap配置。
regionmap:
includeElasticMapsService: false
layers:
- name: "Departments of France"
url: "http://my.cors.enabled.server.org/france_departements.geojson"
attribution: "INRAP"
fields:
- name: "department"
description: "Full department name"
- name: "INSEE"
description: "INSEE numeric identifier"regionmap.layers[].name:
- 强制性的,提供的地图的描述,在Elastic Cloud Enterprise上支持。
regionmap.layers[].url:
- 强制性的,由webserver提供的geojson文件的位置,在Elastic Cloud Enterprise上支持。
regionmap.layers[].attribution:
- 可选的,引用geojson文件的源文件,在Elastic Cloud Enterprise上支持。
regionmap.layers[].fields[]:
- 强制性的,每个层可以包含多个字段,以指示你希望公开的geojson特性的哪些属性,上面的示例展示了如何定义多个属性,在Elastic Cloud Enterprise上支持。
regionmap.layers[].fields[].name:
- 强制性的,这个值用于在存储在Elasticsearch中的文档和geojson文件之间进行内部连接,例如,如果geojson中的字段被称为
Location,并且具有城市名称,那么Elasticsearch中的字段必须具有与Kibana用于查找geoshape数据相同的值,在Elastic Cloud Enterprise上支持。
regionmap.layers[].fields[]. description:
- 强制性的,在构建区域地图可视化时,在Options选项卡下显示的可读文本,在Elastic Cloud Enterprise上支持。
regionmap.includeElasticMapsService:
- 打开或关闭Elastic映射服务的层是否应该包含在向量层选项列表中,在Elastic Cloud Enterprise上支持,通过关闭它,将只包括这里配置的层,默认为
true。
server.basePath:
- 允许你指定挂载Kibana的路径,如果你运行在代理后面,使用
server.rewriteBasePath设置告诉Kibana是否应该从接收到的请求中删除basePath,并防止在启动时发出弃用警告,此设置不能以斜杠(/)结束。
server.rewriteBasePath:
- 默认:
false - 指定Kibana是应该重写以
server.basePath为前缀的请求,还是需要通过反向代理重写请求,在Kibana 6.3之前,这个设置实际上总是为false,并且开始在Kibana 7.0中默认为true。
server.customResponseHeaders:
- 默认:
{} - Header名称和值,用于将所有响应从Kibana服务器发送到客户端。
server.defaultRoute:
- 默认:
"/app/kibana" - 此设置指定在打开Kibana时的默认路由,在打开Kibana时,可以使用此设置修改登录页面。
server.host:
- 默认:
"localhost" - 此设置指定后端服务器的主机。
server.maxPayloadBytes:
- 默认:
1048576 - 传入服务器请求的最大有效负载大小(以字节为单位)。
server.name:
- 默认:
"your-hostname" - 标识这个Kibana实例的可读显示名称。
server.port:
- 默认:
5601 - Kibana由后端服务器提供,此设置指定要使用的端口。
server.ssl.enabled:
- 默认:
false - 为从Kibana服务器发送到浏览器的请求启用SSL,当设置为
true时,server.ssl.certificate和server.ssl.key是必需的。
server.ssl.certificate和server.ssl.key:
- 分别指向PEM格式SSL证书和SSL密钥文件的路径。
server.ssl.certificateAuthorities:
- 应该受信任的PEM编码证书文件路径列表。
server.ssl.cipherSuites:
- 默认:ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, DHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA256, HIGH,!aNULL, !eNULL, !EXPORT, !DES, !RC4, !MD5, !PSK, !SRP, !CAMELLIA。
- 有关格式和有效选项的详细信息可以通过OpenSSL密码列表格式文档获得。
server.ssl.keyPassphrase:
- 用于解密私钥的密码,这个值是可选的,因为密钥可能没有被加密。
server.ssl.redirectHttpFromPort:
- Kibana将绑定到这个端口,并通过配置为
server.port的端口将所有http请求重定向到https。
server.ssl.supportedProtocols:
- 默认:TLSv1,TLSv1.1,TLSv1.2。
- 带有版本的受支持协议数组,有效协议:
TLSv1、TLSv1.1、TLSv1.2。
status.allowAnonymous:
- 默认:
false。 - 如果启用了身份验证,将其设置为
true将允许未经身份验证的用户访问Kibana服务器状态API和状态页面。
tilemap.options.attribution:
- 默认:
©,Elastic Maps Service"。 - map属性字符串,在Elastic Cloud Enterprise上支持。
tilemap.options.maxZoom:
- 默认:
10 - 最大缩放级别,在Elastic Cloud Enterprise上支持。
tilemap.options.minZoom:
- 默认:
1 - 最小缩放级别,在Elastic Cloud Enterprise上支持。
tilemap.options.subdomains:
- 默认:
false - 由tile服务使用的子域数组,在Elastic Cloud Enterprise上支持,使用令牌
{s}指定子域的位置URL。
tilemap.url:
- Kibana用于在tilemap可视化中显示地图块的tileservice的URL,默认情况下,Kibana从外部元数据服务读取这个url,但是用户仍然可以覆盖这个参数来使用他们自己的Tile Map服务,例如:
"https://tiles.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana"
vega.enableExternalUrls:
- 默认:
false - 将此值设置为
true,允许Vega使用任何URL访问外部数据源和图像,如果为false,Vega只能从Elasticsearch获得数据。
安全设置
有些设置是敏感的,仅依靠文件系统权限来保护它们的值是不够的,对于这个用例,Kibana提供了一个keystore,以及用于管理keystore中的设置的kibana-keystore工具。
创建keystore
要创建kibana.keystore,使用create命令:
bin/kibana-keystore create
文件kibana.keystore将在path.data配置设置定义的目录中创建。
列出keystore中的设置
使用list命令可以获得keystore中的设置列表:
bin/kibana-keystore list
添加字符串设置
敏感字符串设置,如Elasticsearch的身份验证凭证,可以使用add命令添加:
bin/kibana-keystore add the.setting.name.to.set
一旦添加到keystore,这些设置将在启动时自动应用到Kibana实例,举个例子:
bin/kibana-keystore add elasticsearch.username
将提示你提供elasticsearch.username的值,你的输入将显示为星号。
该工具将提示设置的值,要通过stdin传递值,使用--stdin标志:
cat /file/containing/setting/value | bin/kibana-keystore add the.setting.name.to.set --stdin
移除设置
要从keystore中移除设置,请使用remove命令:
bin/kibana-keystore remove the.setting.name.to.remove