使用 Prometheus 监控 Ceph

Prometheus

本文是在 Ubuntu 16.04 最新版基础上安装 Prometheus 监控系统,Ceph 版本为 Luminous 12.2.8。

1. 安装 Prometheus

直接使用 apt 安装的 Prometheus 版本较低,很多新的配置选项都已不再支持,建议使用 Prometheus 的安装包,接下来看看安 装包部署的步骤。

先下载安装包,这里用的是 2.0.0 版本,目前为止,最新的应该为 2.4.0,安装方法都是一样的。

$ wget https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz
$ tar zxvf prometheus-2.0.0.linux-amd64.tar.gz
$ cd prometheus-2.0.0.linux-amd64/
$ sudo cp prometheus /usr/bin/
$ sudo cp promtool /usr/bin/
$ vim /lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus: the monitoring system
Documentation=http://prometheus.io/docs/

[Service]
ExecStart=/usr/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries --web.listen-address=0.0.0.0:9090 --web.external-url=
Restart=always
StartLimitInterval=0
RestartSec=10

[Install]
WantedBy=multi-user.target
$ sudo mkdir /etc/prometheus/ 
$ sudo cp -R consoles console_libraries prometheus.yml /etc/prometheus/
$ sudo mkdri /var/lib/prometheus/
$ sudo systemctl daemon-reload
$ sudo systemctl enable prometheus.service
$ sudo systemctl start prometheus.service

在下一步装好 ceph_exporter 后,还需要在 Promethues 中添加相应配置,不过现在执行到这一步就可以了。

2. 安装 ceph_exporter

2.1 安装 Go 语言环境

导出 Ceph 信息到 Prometheus 有多种方式,本文采用的是 DigitalOcean 的 ceph_exporter,ceph_exporter 使用 go 语言编写的,所以需要先安装 go 语言环境。还是一条命令解决:

$ apt install -y golang

安装好后执行 $ go env 命令验证并查看一下 go 环境信息。

$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

然后需要设置 Go 环境变量:

$ cat /etc/profile.d/go.sh 
export GOROOT=/usr/lib/go-1.6
export GOBIN=$GOROOT/bin
export GOPATH=/home/user/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

$ source /etc/profile.d/go.sh

已经配置好 Go 环境了,接下来创建 GOPATH 指定的目录:

$ mkdir /home/user/go

2.2 安装 ceph_exporter

Go 环境安装好后,我们接下来下载 ceph_exporter 代码,然后编译出可执行程序。

$ mkdir -p /home/user/go/github.com/digitalocean
$ cd /home/user/go/github.com/digitalocean
$ git clone github.com/digitalocean/ceph_exporter
$ cd ceph_exporter
$ go build

这时编译会报错,原因是需要依赖 ceph rados 相关的头文件,需要安装 librados-dev 包。

$ sudo apt install -y librados-dev

安装好后,在编译,复制可执行文件到对应目录完成安装。 再运行 go build 完成安装。

$ go build 
$ mkdir /home/user/go/bin
$ cp ceph_exporter /home/user/go/bin

执行 ceph_exporter 来验证一下是否可以正常使用

$ ceph_exporter --help
Usage of ceph_exporter:
  -ceph.config string
        path to ceph config file
  -ceph.user string
        Ceph user to connect to cluster. (default "admin")
  -exporter.config string
        Path to ceph exporter config. (default "/etc/ceph/exporter.yml")
  -rgw.mode int
        Enable collection of stats from RGW (0:disabled 1:enabled 2:background)
  -telemetry.addr string
        host:port for ceph exporter (default ":9128")
  -telemetry.path string
        URL path for surfacing collected metrics (default "/metrics")

2.3 修改 Promethues 配置

接下来需要修改 Prometheus 的配置,添加一会要安装的 ceph_exporter 的相关信息:

$ sudo vim /etc/prometheus/prometheus.yml
...
scrape_configs:
  - job_name: 'ceph_exporter'
    static_configs:
    - targets: ['localhost:9128']
      labels:
        alias: ceph_exporter
...

改好后,重启:

$ sudo systemctl restart prometheus.service

3. 安装 Grafana

3.1 安装

Grafana 也不推荐使用 APT 安装,原因也是版本太低,安装官方打包好的版本是更优的选择。

$ sudo apt-get install -y adduser libfontconfig
$ wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.2.4_amd64.deb 
$ sudo dpkg -i grafana_5.2.4_amd64.deb 
$ sudo systemctl enable grafana-server
$ sudo systemctl start grafana-server

至此 Grafana 也已经安装好了,接下来登录 grafana 界面。

3.2 配置 dashboard

Grafana

访问 http://localhost:3000 来登录 Grafana,默认用户为 admin,密码也是 admin

data-source

登录后首先需要配置 data source,访问地址 http://localhost:3000/datasources,会出现如上图所示的界面,按照图中显示的信息配置即可。

import

最后需要导入 Ceph 相关的界面,如图所示,导入的是编号为 917 的 dashboard(从 grafana.com 上,导入编号为 917 的 dashboard)。

ceph-cluster

完成后,终于可以看到 Ceph 的监控信息了。

4. 参考文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏肖蕾的博客

教你把自己Adnroid代码上传到JCenter

1235
来自专栏Hadoop实操

2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

2.6K9
来自专栏FreeBuf

混搭新式:社工+powershell,轻松畅游主机

在渗透测试过程有时候会需要从已经被入侵的主机拿到你想要的凭据。 此时你已经成功通过社工获得web应用程序里面系统管理员或其他用户的权限并且已经建立了meterp...

2356
来自专栏java一日一条

Java 线程池执行原理分析

线程池用一个32位的int来同时保存runState和workerCount,其中高3位是runState,其余29位是workerCount。代码中会反复使用...

931
来自专栏用户2442861的专栏

non-blocking I/O Multiplexing + poll/epoll 的正确使用

在前面的文章中曾经粗略讲过poll,那时是用阻塞IO实现,在发送和接收数据量都较小情况下和网络状况良好的情况下是基本没有问题的,read 不会只接收部分数据,...

1202
来自专栏不想当开发的产品不是好测试

Establishing SSL connection without server's identity verification is not recommended. According to

Spring boot 启动提示: Establishing SSL connection without server's identity verifica...

22910
来自专栏琯琯博客

原生 PHP、Laravel5.4、Yii2 和 ThinkPHP3.2 中的事务实例

一、原生 MySQL <?php // 开启一个事务 mysql_query('START TRANSACTION'); $res1 = mysql_quer...

3775
来自专栏calvin

jira webhook 事件触发并程序代码调用jenkins接口触发构建操作

开发管理工具触发站点构建事件,事件处理中需要调用Jenkins接口开始构建动作。 我的应用场景: 使用jira作为管理工具,在jira中创建自定义的工作流来...

5523
来自专栏我的小碗汤

Web应用测试最佳工具Burp Suite

Burp Suite是Web应用程序测试的最佳工具之一,可以对请求的数据包进行拦截和修改,扫描常见的web安全漏洞,暴力破解登录表单、遍历数据等等。

1042
来自专栏不想当开发的产品不是好测试

性能测试 -- 常用命令

linux下 CPU,内存查看: /proc/cpuinfo /proc/meminfo 查看CPU核数: cat /proc/cpuinfo|grep 'pr...

1909

扫码关注云+社区