Kibana

20190809052609611

Kibana 是 Elasticsearch 技术栈(ELK Stack)中的可视化工具,主要用于浏览、搜索和可视化存储在 Elasticsearch 中的数据。通过 Kibana,用户可以创建仪表盘、生成图表、设置数据监控告警,并进行日志分析等操作。它与 Elasticsearch 集成良好,能够通过简单的点击操作或查询语言(如 Kibana Query Language,KQL)对数据进行分析和展示。

Kibana 是一个功能强大的数据可视化和分析工具,尤其适用于处理和展示 Elasticsearch 中的数据。通过与 Beats、Logstash 的结合,它能够提供端到端的数据采集、处理、存储和展示服务。Kibana 的易用性和可扩展性使得它在日志分析、系统监控、安全审计、业务数据分析等场景中广泛应用。

Kibana 的核心功能和特点

  1. 数据可视化(Visualization)

    • 图表和图形:Kibana 提供各种类型的图表,如柱状图、饼图、折线图、区域图、散点图等,帮助用户可视化 Elasticsearch 中的数据。用户可以从多个维度(如时间、字段)展示数据。
    • 地图:Kibana 提供地理数据的可视化支持,允许通过 GeoJSON 或 Elasticsearch 中的地理位置数据进行地图展示和分析。
    • Lens:这是 Kibana 中的交互式工具,用户可以通过拖拽字段轻松构建图表,实时查看数据的变化。Lens 大大降低了可视化的门槛。
  2. 仪表盘(Dashboard)

    • 仪表盘是 Kibana 中的一项核心功能,允许用户将多个图表、地图、搜索结果等整合到一个页面中,形成实时的综合视图。仪表盘可以用来监控业务指标、系统性能、错误日志等。
    • 用户可以动态过滤和交互,帮助快速发现数据中的趋势和异常。
  3. 日志管理与分析(Log Management and Analysis)

    • 日志可视化:Kibana 提供实时日志监控和搜索功能,用户可以通过 Kibana 的界面直接查看 Elasticsearch 中存储的日志,并使用查询语言过滤出特定的日志条目。
    • Elastic Observability:结合 Beats 和 Logstash,Kibana 能够实现实时的日志、系统监控、应用性能分析等功能,是 DevOps 团队和系统管理员常用的工具。
  4. Canvas

    • Canvas 是一种高级的数据可视化工具,允许用户通过自定义设计图表、背景和数据展示方式,制作高度个性化和美观的报表。Canvas 支持实时动态数据展示。
  5. 告警与监控(Alerts and Monitoring)

    • Kibana 可以设置告警规则,帮助用户在数据满足特定条件时自动发送告警通知。告警可以通过邮件、Slack、Webhook 等方式发送,适用于日志监控、系统状态监控等场景。
    • Elastic Observability 套件还包含 APM(应用性能监控)功能,能追踪应用程序中的性能问题、错误等。
  6. 安全与访问控制(Security and Access Control)

    • 通过 Elastic Security,Kibana 提供了安全信息和事件管理(SIEM)功能,用于监控和分析安全事件。
    • Kibana 支持基于角色的访问控制(RBAC),允许管理员对不同用户分配不同权限,确保数据的安全性和隐私性。
  7. 机器学习(Machine Learning)

    • Kibana 中的机器学习功能(Elastic ML)能够自动检测数据中的异常和模式变化,例如日志中的异常活动或业务指标中的突变。它能帮助用户提前发现潜在问题,如系统故障或安全威胁。
    • 通过无监督学习模型,Kibana 可以实时检测数据中的异常,不需要提前定义规则。
  8. 查询语言(Kibana Query Language,KQL)

    • KQL 是 Kibana 内置的一种查询语言,用于在界面中进行数据过滤和搜索。它与 Elasticsearch Query DSL 不同,更加简化,适合非技术人员快速上手。

    • 示例:

      kql
      复制代码
      status: "error" and response_time > 500
      

    该查询会过滤出

     status
    

    字段为

     "error"
    

     response_time
    

    大于 500 的文档。

  9. 时间序列数据分析(Time Series Analysis)

    • Kibana 支持时间序列数据的分析和可视化,适合于监控系统性能、业务指标等随时间变化的数据。借助 Kibana 的 TSVB(Time Series Visual Builder),用户可以轻松创建复杂的时间序列图表,并实时查看变化趋势。

Kibana 的应用场景

  1. 日志管理与分析: Kibana 是 DevOps 和 SRE(Site Reliability Engineering)团队常用的日志分析工具,通过 Filebeat 和 Logstash,将应用程序或服务器的日志数据传送到 Elasticsearch,然后通过 Kibana 进行可视化和搜索。用户可以实时监控日志并设置告警规则。
  2. 安全监控: Kibana 的 SIEM 和 Elastic Security 可以帮助安全团队检测安全威胁和监控网络攻击。通过机器学习功能,Kibana 可以自动发现异常行为。
  3. 业务数据分析: 数据分析人员可以使用 Kibana 对 Elasticsearch 中的数据进行分析,生成业务指标报表,如销售数据分析、用户行为分析等。
  4. 系统监控: 运维人员可以使用 Kibana 结合 Metricbeat 监控系统性能,追踪 CPU、内存、磁盘使用等指标,帮助识别系统瓶颈。

Kibana 的架构

  • 前端:Kibana 是一个基于浏览器的应用,前端通过 React.js 实现,提供交互式的图形界面,用户可以直接在浏览器中操作 Kibana。
  • 后端:Kibana 后端与 Elasticsearch 交互,将查询发送到 Elasticsearch 集群并返回数据进行展示。所有的数据存储和计算都依赖于 Elasticsearch。

使用 Kibana 的基本步骤

  1. 连接 Elasticsearch:Kibana 需要连接到一个 Elasticsearch 集群才能开始工作。用户可以在 Kibana 配置文件中指定 Elasticsearch 的地址。
  2. 创建索引模式(Index Pattern):在使用 Kibana 之前,用户需要创建一个索引模式,用于告诉 Kibana 从哪些 Elasticsearch 索引中读取数据。
  3. 探索数据(Discover):使用 Discover 功能,用户可以浏览 Elasticsearch 中的数据,进行简单的搜索和过滤。
  4. 创建可视化(Visualize):使用 Kibana 提供的各种图表创建可视化,将数据展示出来。
  5. 构建仪表盘(Dashboard):将多个可视化组件放到一个仪表盘上,实现数据的统一展示。
  6. 设置告警(Alerts):根据业务需求,设置告警规则并监控关键指标。

实战安装

(1)下载软件包
wget ......../kibana-7.17.5-x86_64.rpm


(2)安装kibana
rpm -ivh kibana-7.17.5-x86_64.rpm

(3)修改kibana配置文件
vim /etc/kibana/kibana.yml 
...
# 指定kibana监听的主机地址,默认是localhost。
server.host: "0.0.0.0"
# 指定kibana连接ES集群地址
elasticsearch.hosts: ["http://10.0.0.101:9200","http://10.0.0.102:9200","http://10.0.0.103:9200"]
# 指定kibana的界面为中文简体,默认是英文。
i18n.locale: "zh-CN"


(4)启动kibana
systemctl enable --now kibana


(5)访问kibana界面
http://10.0.0.101:5601/