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

最近用 ELK 解析 Ceph 的性能状态,metricbeat 6.x 版本里放出了测试中的 ceph 模块,但是居然没有读写速度参数。所以我们就改用 logstash 的 http_poller 模块,定时去查 ceph api,解析出需要的数据并绘出图形(我们将在第二章里讲到如何建立 kibana 看板)。

首先是 input 部分里,我们使用 http_poller 来抓取。请把 IP 和端口按实际情况修改。http_poller 是个超好玩的模块,按照官方的举例,你可以用它来定时抓取亚马逊的商品页面,再通过一番解析后,可以得到某些商品的价格/销量等走势~~~

input {
  http_poller {
    urls => {
      cephPgStat => "http://192.168.1.1:5000/api/v0.1/pg/stat"
    }
    request_timeout => 60
    schedule => { every => "15s" }
    tags => ["ceph-pg-stat","ceph"]
  }
}

schedule 里我设置了每 15 秒查询一次,这个可以根据你的实际需求调整数据的粒度。

获取出来的信息是类似这样的

v32768479: 8000 pgs: 8000 active+clean; 8526 GB data, 29741 GB used, 152 TB / 181 TB avail; 347 kB/s rd, 8705 kB/s wr, 2246 op/s

然后我们用 filter 来处理。需要提前说明的是,我们这个 logstash filter 还不是完善的,有坑。在下一篇里我会解释原因并给出解决方法。

filter {
  if "ceph" 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"
    }
    mutate {
      convert => { "[ceph][cluster][read]" => "integer" }
      convert => { "[ceph][cluster][write]" => "integer" }
      convert => { "[ceph][cluster][op]" => "integer" }
    }
  }
}

output 里,我们给它一个独立的 index,方便以后的 index 清理维护。

output {
 if "ceph" in [tags] {
    elasticsearch {
      hosts => ["127.0.0.1"]
      index => "ceph-%{+YYYY.MM.dd}"
    }
  } else {
    elasticsearch {
      hosts => ["127.0.0.1"]
      index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    }
  }
}

于是我们在 kibana 里就看到了所需的数据了,这里就不敷述如何建立 search,看图里的参数吧。
111

下一篇里,我们将会讲解如何通过这些数据,创建一个 Kibana Dashboard,图形化查看 Ceph 集群读写状态。
222

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值