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