一、Kibana简介
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

下载地址
二. 下载安装
https://www.elastic.co/guide/cn/kibana/current/targz.html

下载
6.4.3 地址:
https://www.elastic.co/guide/en/kibana/6.4/targz.html
# 下载
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.3-linux-x86_64.tar.gz
# 解压
[root@localhost ~]# tar -zxvf kibana-6.4.3-linux-x86_64.tar.gz -C /usr/local/
三. Kibana配置运行
# 修改Kibana配置文件
[root@localhost ~]# vi /usr/local/kibana-6.4.3-linux-x86_64/config/kibana.yml
# 配置kibana服务ip(如果不配置ip那么外网就访问不到服务了)
# 绑定的端口号
server.port: 5601
# 绑定的ip
server.host: "192.168.77.132"
# 服务器名称
server.name: "node1"
# elasticip
elasticsearch.url: "http://192.168.77.132:9200"
# 启动服务
[root@localhost ~]# cd /usr/local/kibana-6.4.3-linux-x86_64/
[root@localhost kibana-6.4.3-linux-x86_64]# ./bin/kibana
# kibana不建议以root用户启动,如果用root启动,需要加 --allow-root
[root@localhost kibana-7.3.1-linux-x86_64]# ./bin/kibana --allow-root
# 后台启动kibana
[root@localhost kibana-6.4.3-linux-x86_64]# nohup ./bin/kibana &
# 添加开放端口
[root@localhost kibana-7.3.1-linux-x86_64]# firewall-cmd --permanent --add-port=5601/tcp
success
[root@localhost kibana-7.3.1-linux-x86_64]# firewall-cmd --reload
success
-
访问测试
http://192.168.77.132:5601/
管理界面 开启中文语言
在6.7+版本
[root@localhost ~]# vi /usr/local/kibana-6.4.3-linux-x86_64/config/kibana.yml
# 添加内容
i18n.locale: "zh-CN"
- 汉化
地址:https://github.com/anbai-inc/Kibana_Hanization/
6.7以下版本:
# 克隆项目
[root@localhost kibana-6.4.3-linux-x86_64]# git clone https://github.com/anbai-inc/Kibana_Hanization.git
# 进入汉化包目录
[root@localhost kibana-6.4.3-linux-x86_64]# cd Kibana_Hanization/old/
# 进行汉化 /usr/local/kibana-6.4.3-linux-x86_64/ 为kibana目录
[root@localhost old]# python main.py /usr/local/kibana-6.4.3-linux-x86_64/

汉化过程

汉化结果
四、许可管理

许可管理
-
试用许可
开始试用
试用 -
登录
用户名,密码为ElasticSearch生成的。
登录 -
更新许可
更新许可
上传许可文件

上传许可文件

完成许可
常见错误:
- Cannot connect to the Elasticsearch cluster currently configured for Kibana.
原因:
可能是Elasticsearch 密码设置错误。
配置文件添加elastic用户密码:
# 默认es x-pack账号、密码
elasticsearch.username: "elastic"
elasticsearch.password: "xW9dqAxThD5U4ShQV1JT"
- Error encountered uploading license: action [cluster:admin/xpack/license/put] is unauthorized for user [kibana]
原因:
在于用kibana不是管理员,查看不了用户,也没法导入授权,重新用elastic用户登录即可。
四、系统监控

系统监控
五、索引模式

索引模式

索引模式
创建索引模式:

输入索引

创建索引模式

索引模式
六、开发工具

开发工具
- 加载示例数据
1)威廉·莎士比亚全集
| 字段名称 | 描述 |
|---|---|
| line_id | id 标识 |
| play_name | 作品 |
| line_id | id 标识 |
| speech_number | 配音编号 |
| line_number | 行号 |
| speaker | 配音角色 |
| text_entry | 内容 |
加载数据集:
# 下载数据
[root@node1 ~]# wget https://download.elastic.co/demos/kibana/gettingstarted/shakespeare_6.0.json
# 创建索引
PUT /shakespeare
{
"mappings": {
"doc": {
"properties": {
"speaker": {
"type": "keyword"
},
"play_name": {
"type": "keyword"
},
"line_id": {
"type": "long"
},
"speech_number": {
"type": "long"
},
"line_number": {
"type": "keyword"
},
"text_entry": {
"type": "keyword"
}
}
}
}
}
# 导入数据
[root@node1 ~]# curl -H 'Content-Type: application/json' -XPOST -u elastic:changeme 'http://192.168.77.130:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json
speaker和play_name被指定为keyword类型的字段,它们不会被分析器分析
line_id和speech_number被指定为integer类型
2)虚拟银行账户数据
| 字段名称 | 描述 |
|---|---|
| account_number | 账户编号 |
| balance | 作品 |
| firstname | 名字 |
| lastname | 姓 |
| age | 年龄 |
| gender | 性别 |
| address | 地址 |
| employer | 雇主 |
| 电子邮箱 | |
| city | 城市 |
| state | 州 |
# 下载数据
[root@node1 ~]# wget https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip
# 解压
[root@node1 ~]# yum install unzip
[root@node1 ~]# unzip accounts.zip
# 加载数据
[root@node1 ~]# curl -H 'Content-Type: application/json' -XPOST -u elastic:changeme 'http://192.168.77.130:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
七、用户管理

用户管理
-
修改密码
选择账户
密码修改 -
添加用户
添加用户
七、数据可视化
-
统计视图Visualize
构建可视化的图表
添加图表
浏览图表
数据图表 -
创建可视化图表
新建
创建饼图
查看饼图
八、常见问题:
- kibana出现[Kibana server is not ready yet]
查日志首先发现Kibana升级后要求所有Elastisearch节点都要升级到同一版本。 - Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
原因:
为xpack.security.encryptionKey生成随机密钥。 要防止会话在重新启动时失效,请在kibana.yml中设置xpack.security.encryptionKey(加在文件末尾即可)
根据提示,在配置文件kibana.yml中添加【xpack.reporting.encryptionKey】属性:
注意事项:任意,但不得少于32位的设置结果
[root@localhost ~]# vi /usr/local/kibana-6.4.3-linux-x86_64/config/kibana.yml
# 添加内容:
xpack.security.encryptionKey: "122333444455555666666777777788888888"
- [reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
[root@localhost ~]# vi /usr/local/kibana-6.4.3-linux-x86_64/config/kibana.yml
# 添加内容:
xpack.reporting.encryptionKey: "a_random_string"
- Session cookies will be transmitted over insecure connections. This is not recommended.
需要配置kibana的SSL。
附:
| 配置 | 说明 |
|---|---|
server.port |
默认值 : 5601 Kibana 由后端服务器提供服务。此设置指定要使用的端口。 |
server.host |
默认值 : “localhost” 此设置指定后端服务器的主机。 |
server.basePath |
使您能够指定如果您在代理后运行的 Kibana 的路径。这只影响 Kibana 生成的 URL,您的代理应该在转发请求到 Kibana 之前删除 basePath 值。此设置不能以斜杠(/)结尾。 |
server.maxPayloadBytes |
**默认值 : 1048576 **传入服务器请求的最大有效负载大小(以字节为单位)。 |
server.name |
**默认值 : “your-hostname” **用于标识此 Kibana 实例的可读的显示名称。 |
server.defaultRoute |
默认值 : “/app/kibana” 此设置指定打开 Kibana 时的默认路由。您可以使用此设置在打开 Kibana 时修改登录页。 |
elasticsearch.url |
**默认值 : “http://localhost:9200” **要用于所有查询的 Elasticsearch 实例的 URL。 |
elasticsearch.preserveHost |
默认值 : true 当此设置的值为 true 时,Kibana 使用 **server.host**设置中指定的主机名。当此设置的值为 **false** 时,Kibana 使用连接到此 Kibana 实例的主机的主机名。 |
kibana.index |
默认值 : “.kibana”Kibana 使用 Elasticsearch 中的索引来存储保存的搜索,可视化和仪表板。如果索引不存在,Kibana 将创建一个新索引。 |
kibana.defaultAppId |
**默认值 : “discover” **要加载的默认应用程序。 |
tilemap.url |
Kibana 用于在 tilemap 可视化中显示地图图块的图块服务的 URL。默认情况下,Kibana 从外部元数据服务读取此 URL,但用户仍可以覆盖此参数以使用自己的 Tile Map Service。例如 : "https : //tiles.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana"
|
tilemap.options.minZoom |
**默认值 : 1 **最小缩放级别。 |
tilemap.options.maxZoom |
默认值 : 10 最大缩放级别。 |
tilemap.options.attribution |
**默认 : ****"© [Elastic Tile Service]([https : //www.elastic.co/elastic-tile-service](https://www.elastic.co/elastic-tile-service))"**地图属性字符串。 |
tilemap.options.subdomains |
tile 服务使用的子域的数组。指定带有令牌的 URL 的子域的位置 {s}。 |
elasticsearch.username 和 elasticsearch.password |
如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。 |
server.ssl.cert 和 server.ssl.key |
分别指向 PEM 格式 SSL 证书和 SSL 密钥文件的路径。这些文件为从 **Kibana **服务器到浏览器的传出请求启用 SSL。 |
elasticsearch.ssl.cert 和 elasticsearch.ssl.key |
提供 PEM 格式 SSL 证书和密钥文件路径的可选设置。这些文件验证您的 Elasticsearch 后端使用相同的密钥文件。 |
elasticsearch.ssl.ca |
可选设置,使您能够为 Elasticsearch 实例指定证书颁发机构的 PEM 文件的路径。 |
elasticsearch.ssl.verify |
默认值 : true 要忽略 SSL 证书的有效性,请将此设置的值更改为 false。 |
elasticsearch.pingTimeout |
**默认值 : 值 ****elasticsearch.requestTimeout**设置以毫秒为单位的时间等待 Elasticsearch 对 PING 作出响应。 |
elasticsearch.requestTimeout |
**默认值 : 30000 **等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。 |
elasticsearch.requestHeadersWhitelist |
默认值 : [ 'authorization' ]要发送到 Elasticsearch 的 Kibana 客户端头标列表。要发送任何客户端头,请将此值设置为 [](一个空列表)。 |
elasticsearch.customHeaders |
默认值 : {}要发送到 Elasticsearch 的(header name)标题名称和值。不管如何配置 elasticsearch.requestHeadersWhitelist,``任何自定义的 **header** 都不能被客户端头覆盖
|
elasticsearch.shardTimeout |
默认值 : 0 Elasticsearch 等待来自分片的响应的时间(以毫秒为单位)。设置为 0 可禁用。 |
elasticsearch.startupTimeout |
默认值 : 5000 重试前在 Kibana 启动时等待 Elasticsearch 的时间(以毫秒为单位)。 |
pid.file : |
指定 Kibana 创建进程标识文件的路径。 |
logging.dest |
默认值 : stdout允许您指定 Kibana 存储日志输出的文件。 |
logging.silent |
**默认值 : false **将此设置的值设置 **true**为禁止所有日志记录输出。 |
logging.quiet |
**默认值 : false **将此设置的值设置 **true**为禁止除错误消息之外的所有日志记录输出。 |
logging.verbose |
**默认值 : false **将此设置的值设置为 **true**记录所有事件,包括系统使用信息和所有请求。 |
ops.interval |
**默认值 : 5000 **设置示例系统和过程性能指标的间隔(以毫秒为单位)。最小值为 100。 |
status.allowAnonymous |
**默认值 : false **如果启用了验证,则将此设置为 **true**允许未经身份验证的用户访问 Kibana 服务器状态 API 和状态页。 |
console.enabled |
默认值 : true 设置为 false 可禁用控制台。切换这将导致服务器在下次启动时重新生成资产,这可能会导致在开始投放网页之前出现延迟。 |
console.proxyFilter |
**默认值 : ****.***用于验证来自控制台的任何传出请求的正则表达式列表。如果没有匹配,请求将被拒绝。 |
console.proxyConfig |
基于代理目标的配置选项列表。使用此选项可以为特定主机设置自定义超时或 SSL 设置。这是通过 **match**使用通配符** /globs 定义一组标准来完成的,这将根据每个请求进行检查。然后,来自所有匹配规则的配置将合并在一起,以配置用于该请求的代理。有效匹配关键字 match.protocol,match.host,match.port**和 match.path。所有这些键默认为 *,这意味着它们将匹配任何值。有关示例,请参阅配置控制台。 |
elasticsearch.tribe.url |
用于所有查询的 Elasticsearch 部落实例的可选 URL。 |
elasticsearch.tribe.username 和 elasticsearch.tribe.password |
如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。 |
elasticsearch.tribe.ssl.cert 和 elasticsearch.tribe.ssl.key |
提供 PEM 格式 SSL 证书和密钥文件路径的可选设置。这些文件验证您的 Elasticsearch 后端使用相同的密钥文件。 |
elasticsearch.tribe.ssl.ca |
可选设置,使您能够为 Elasticsearch 实例指定证书颁发机构的 PEM 文件的路径。 |
elasticsearch.tribe.ssl.verify |
**默认值 : true **要忽略 SSL 证书的有效性,请将此设置的值更改为 false。 |
elasticsearch.tribe.pingTimeout |
默认值 : 值 elasticsearch.tribe.requestTimeout设置以毫秒为单位的时间等待 Elasticsearch 对 PING 作出响应。 |
elasticsearch.tribe.requestTimeout |
**默认值 : 30000 **等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。 |
elasticsearch.tribe.requestHeadersWhitelist |
**默认值 : ****[ 'authorization' ]**要发送到 Elasticsearch 的 Kibana 客户端 header 列表。要发送任何客户 header,请将此值设置为[](一个空列表)。 |
elasticsearch.tribe.customHeaders |
默认值 : {}要发送到 Elasticsearch 的 header name 和 value。不管如何配置 **elasticsearch.tribe.requestHeadersWhitelist**,任何自定义的 **header** 都不能被客户端的 **header** 覆盖。
|
参考资源:
https://www.elastic.co/guide/cn/kibana/current/pie-chart.html
示例数据















