使用 ELK 查看 Ceph 读写速度(二)-阿里云开发者社区

开发者社区> 开发与运维> 正文

使用 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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章