kibana 配置说明

环境信息

  • Kibana 8.8

常用概念

Spaces

在 Kibana 中,一个 space 相当于一个新的的 Kibana 实例,它分割了 Kibana 中的资源,使它和其他 space 隔离。 [3]

Kibana 默认的 Space 为 Default

Roles

Roles 是一个权限集,可以将 Roles 分配给 users、*system accounts*。可以自定义 roles,或者使用系统内置的 roles。以下是一些常用的 built-in roles

  • kibana_admin - 超级管理员组,绑定到这个组的用户对 Kibana 拥有完全权限,包括管理 Spaces

Users

user 可以绑定到一个或者多个 roles

安装

yum 安装

添加 yum 源,和 Elasticsearch、Logstash 使用同一个源

$ rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

$ cat /etc/yum.repos.d/elk.repo
[kibana-8.x]
name=Kibana repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

$ yum install kibana

$ systemctl enable --now kibana

配置

Kibana 主要的启动时配置文件为 /etc/kibana/kibana.yml[1]

默认使用端口 5601

配置汇总说明

配置项 说明 示例
server.host 监听的 IP,默认为 localhost,要监听所有 IP,可以使用 0.0.0.0
server.port Kibana 服务端口,默认 5601
server.name Kibana 实例的标识,默认为 主机名
elasticsearch.hosts Elasticsearch 实例的访问地址,列表中的 Es 地址必须同属一个集群,默认为 http://localhost:9200
elasticsearch.username
elasticsearch.password
Elasticsearch 用户密码

Kibana 服务启动后,可以通过 endpoint http://localhost:5601/status 查看 Kibana 状态 [2]

Endpoint http://localhost:5601/api/status 列出了 JSON 格式的 Kibana 状态数据。

常用操作

配置超级管理员账号登陆

默认情况下,Kibana 没有预设管理员账号,在安装和启动 Kibana 后,可以通过 kibana 的身份验证和授权机制来设置管理员账号,Kibana 支持多种身份验证和授权机制,包括基于用户名密码的本地认证、Elasticsearch 的本地用户和角色、以及其他外部认证提供者

Elasticsearch 本地用户认证

此种认证方式下,Kibana 使用 Elasticsearch 中的用户身份来验证和授权。默认情况下,Elasticsearch 中已经为 Kibana 内置了用户和组。可以直接使用 Elasticsearch 中内置的用户 kibana_system 来认证登陆 Kibana

# curl -u elastic:password1 -XGET "http://localhost:9200/_security/user?pretty"
{
"elastic" : {
"username" : "elastic",
"roles" : [
"superuser"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"kibana" : {
"username" : "kibana",
"roles" : [
"kibana_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_deprecated_reason" : "Please use the [kibana_system] user instead.",
"_deprecated" : true,
"_reserved" : true
},
"enabled" : true
},
"kibana_system" : {
"username" : "kibana_system",
"roles" : [
"kibana_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"logstash_system" : {
"username" : "logstash_system",
"roles" : [
"logstash_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"beats_system" : {
"username" : "beats_system",
"roles" : [
"beats_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"apm_system" : {
"username" : "apm_system",
"roles" : [
"apm_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"remote_monitoring_user" : {
"username" : "remote_monitoring_user",
"roles" : [
"remote_monitoring_collector",
"remote_monitoring_agent"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
}
}

配置 Kibana 配置文件中的 elasticsearch.usernameelasticsearch.password 后重启 Kibana,重新登陆,需要账号密码。输入 Elasticsearch 中已有的账号密码或者 Kibana 中创建的账号和密码即可认证登陆 Kibana

常见错误

License is not available

Kibana 异常,查看服务日志

# systemctl status -l kibana
**kibana[29149]: [2023-07-28T09:45:37.505+08:00][ERROR][plugins.security.authentication] License is not available, authentication is not possible.
kibana[29149]: [2023-07-28T09:45:37.506+08:00][WARN ][plugins.licensing] License information could not be obtained from Elasticsearch due to ResponseError: security_exception
kibana[29149]: Root causes:
kibana[29149]: security_exception: missing authentication credentials for REST request [/_xpack] error
kibana[29149]: [2023-07-28T09:45:58.352+08:00][WARN ][plugins.licensing] License information could not be obtained from Elasticsearch due to ResponseError: security_exception
kibana[29149]: Root causes:
kibana[29149]: security_exception: missing authentication credentials for REST request [/_xpack] error
kibana[29149]: [2023-07-28T09:45:59.656+08:00][WARN ][plugins.licensing] License information could not be obtained from Elasticsearch due to ResponseError: security_exception
kibana[29149]: Root causes:
kibana[29149]: security_exception: missing authentication credentials for REST request [/_xpack] error**

错误原因 Elasticsearch 启用了安全特性,Kibana 中未配置登陆 Elasticsearch 时的认证信息。参考配置 Kibana 通过 Elasticsearch 认证登陆

参考链接

kibana 官网

脚注