使用 ELK 查看 Ceph 读写速度(二)

简介: 上一篇 使用 ELK 查看 Ceph 读写速度(一) 里,我们通过 ceph monit api 接口,抓取到了需要的数据。接下来,我们就要把这些数据图形化展示出来了。 首先我们使用还在实验阶段的 Visual Builder 建立一个曲线图。

上一篇 使用 ELK 查看 Ceph 读写速度(一) 里,我们通过 ceph monit api 接口,抓取到了需要的数据。接下来,我们就要把这些数据图形化展示出来了。

首先我们使用还在实验阶段的 Visual Builder 建立一个曲线图。进入 Visualize 页面,点击 + 号新建一个 Visual Builder。
111

然后按照下图所示,分 3 部分填写。你就能得到最上面的曲线图了。
222

333

444

然后保存这个 visual 面板。接着新建一个 Dashboard,把建好的 visual 面板加入。观察效果,发现有断流现象。

555

通过查看我们上一篇里建立的 search,我发现了有数据为空的记录。再通过查看日志原文,发现原来是因为 ceph 接口返回的数据里,read 单位值有 kB/s、B/s 和 MB/s 三种。我的 logstash filter 只对应了其中一种,自然就匹配缺失了。所以,我们改进一下 filter。

filter {
  if "ceph-pg-stat" in [tags] {
  
    grok {
      match => {
        "message" => [
          "%{GREEDYDATA}avail; %{INT:[ceph][cluster][read]} kB\/s rd, %{INT:[ceph][cluster][write]} kB\/s wr, %{INT:[ceph][cluster][op]} op\/s"
        ]
      }
      remove_field => "message"
    }
    
    grok {
      match => {
        "message" => [
          "%{GREEDYDATA}avail; %{INT:[ceph][cluster][read]} B\/s rd, %{INT:[ceph][cluster][write]} kB\/s wr, %{INT:[ceph][cluster][op]} op\/s"
        ]
      }
      add_tag => ["low_speed"]
      remove_field => "message"
    }
    # Convert B/s to kB/s
    if "low_speed" in [tags] {
      ruby {
        code => "event['ceph.cluster.read'] = Integer(event['ceph.cluster.read'].gsub(',','') / 1024)"
        remove_tag => ["low_speed"]
      }
    }
    
    grok {
      match => {
        "message" => [
          "%{GREEDYDATA}avail; %{INT:[ceph][cluster][read]} MB\/s rd, %{INT:[ceph][cluster][write]} kB\/s wr, %{INT:[ceph][cluster][op]} op\/s"
        ]
      }
      add_tag => ["high_speed"]
      remove_field => "message"
    }
    # Convert MB/s to kB/s
    if "high_speed" in [tags] {
      ruby {
        code => "event['ceph.cluster.read'] = Integer(event['ceph.cluster.read'].gsub(',','') * 1024)"
        remove_tag => ["high_speed"]
      }
    }
    mutate {
      convert => { "[ceph][cluster][read]" => "integer" }
      convert => { "[ceph][cluster][write]" => "integer" }
      convert => { "[ceph][cluster][op]" => "integer" }
    }
    
  }
}

问题就解决啦。大家举一反三,可以做出以下这样的 dashboard。
666

目录
相关文章
|
索引
使用 ELK 查看 Ceph 读写速度(一)
最近用 ELK 解析 Ceph 的性能状态,metricbeat 6.x 版本里放出了测试中的 ceph 模块,但是居然没有读写速度参数。所以我们就改用 logstash 的 http_poller 模块,定时去查 ceph api,解析出需要的数据并绘出图形(我们将在第二章里讲到如何建立 kibana 看板)。
3151 0
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
3445 0
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
2月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
717 64
搭建ELK日志收集,保姆级教程
|
8月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
647 90
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
存储 监控 安全
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
运维 监控 Ubuntu
一键启动日志魔法:揭秘ELK自动安装脚本的神秘面纱!
【8月更文挑战第9天】在数据驱动时代,高效处理日志至关重要。ELK Stack(Elasticsearch、Logstash、Kibana)是强大的日志分析工具,但其复杂的安装配置常让初学者望而却步。本文介绍如何编写ELK自动安装脚本,简化部署流程。脚本适用于Ubuntu系统,自动完成ELK下载、安装及基本配置,包括依赖项安装、服务启动及自启设置,极大降低了使用门槛,助力运维人员和开发者轻松构建日志分析平台。
404 6
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
546 0
部署ELK+filebeat收集nginx日志