数据可视化--Kibana(六)

一、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

  1. 访问测试
    http://192.168.77.132:5601/


    管理界面
  2. 开启中文语言
    在6.7+版本

[root@localhost ~]# vi /usr/local/kibana-6.4.3-linux-x86_64/config/kibana.yml 
# 添加内容
i18n.locale: "zh-CN"

  1. 汉化
    地址: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/

汉化过程

汉化结果

四、许可管理

许可管理
  1. 试用许可


    开始试用

    试用
  2. 登录
    用户名,密码为ElasticSearch生成的。


    登录
  3. 更新许可


    更新许可

    上传许可文件
上传许可文件
完成许可

常见错误:

  1. Cannot connect to the Elasticsearch cluster currently configured for Kibana.
    原因:
    可能是Elasticsearch 密码设置错误。
    配置文件添加elastic用户密码:
# 默认es x-pack账号、密码
elasticsearch.username: "elastic"
elasticsearch.password: "xW9dqAxThD5U4ShQV1JT"

  1. Error encountered uploading license: action [cluster:admin/xpack/license/put] is unauthorized for user [kibana]
    原因:
    在于用kibana不是管理员,查看不了用户,也没法导入授权,重新用elastic用户登录即可。

四、系统监控

系统监控

五、索引模式

索引模式
索引模式

创建索引模式:


输入索引

创建索引模式

索引模式

六、开发工具

开发工具
  1. 加载示例数据
    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 雇主
email 电子邮箱
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

七、用户管理

用户管理
  1. 修改密码


    选择账户

    密码修改
  2. 添加用户


    添加用户

七、数据可视化

  1. 统计视图Visualize


    构建可视化的图表

    添加图表

    浏览图表

    数据图表
  2. 创建可视化图表


    新建

    创建饼图

    查看饼图

八、常见问题:

  1. kibana出现[Kibana server is not ready yet]
    查日志首先发现Kibana升级后要求所有Elastisearch节点都要升级到同一版本。
  2. 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"

  1. [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"
  1. 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.usernameelasticsearch.password 如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。
server.ssl.certserver.ssl.key 分别指向 PEM 格式 SSL 证书和 SSL 密钥文件的路径。这些文件为从 **Kibana **服务器到浏览器的传出请求启用 SSL
elasticsearch.ssl.certelasticsearch.ssl.key 提供 PEM 格式 SSL 证书和密钥文件路径的可选设置。这些文件验证您的 Elasticsearch 后端使用相同的密钥文件。
elasticsearch.ssl.ca 可选设置,使您能够为 Elasticsearch 实例指定证书颁发机构的 PEM 文件的路径。
elasticsearch.ssl.verify 默认值 : true 要忽略 SSL 证书的有效性,请将此设置的值更改为 false
elasticsearch.pingTimeout **默认值 : 值 ****elasticsearch.requestTimeout**设置以毫秒为单位的时间等待 ElasticsearchPING 作出响应。
elasticsearch.requestTimeout **默认值 : 30000 **等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。
elasticsearch.requestHeadersWhitelist 默认值 : [ 'authorization' ]要发送到 ElasticsearchKibana 客户端头标列表。要发送任何客户端头,请将此值设置为 [](一个空列表)。
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.protocolmatch.hostmatch.port**和 match.path。所有这些键默认为 *,这意味着它们将匹配任何值。有关示例,请参阅配置控制台
elasticsearch.tribe.url 用于所有查询的 Elasticsearch 部落实例的可选 URL
elasticsearch.tribe.usernameelasticsearch.tribe.password 如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。
elasticsearch.tribe.ssl.certelasticsearch.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设置以毫秒为单位的时间等待 ElasticsearchPING 作出响应。
elasticsearch.tribe.requestTimeout **默认值 : 30000 **等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。
elasticsearch.tribe.requestHeadersWhitelist **默认值 : ****[ 'authorization' ]**要发送到 ElasticsearchKibana 客户端 header 列表。要发送任何客户 header,请将此值设置为[](一个空列表)。
elasticsearch.tribe.customHeaders 默认值 : {}要发送到 Elasticsearchheader namevalue。不管如何配置 **elasticsearch.tribe.requestHeadersWhitelist**,任何自定义的 **header** 都不能被客户端的 **header** 覆盖。

参考资源:
https://www.elastic.co/guide/cn/kibana/current/pie-chart.html
示例数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容