云网牛站
所在位置:首页 > Linux云服务器 > 使用Prometheus和Grafana监控Ceph集群的方法

使用Prometheus和Grafana监控Ceph集群的方法

2019-02-16 15:31:36作者:叶云稿源:云网牛站

本文介绍使用Prometheus和Grafana进行Ceph群集监控,需要Prometheus导出器来删除有关ceph群集的元信息,Docker安装在服务器上以运行Prometheus Ceph导出器。

 

一、安装Prometheus Server和Grafana参考文章

在CentOS 7/Ubuntu 18.04系统上安装Prometheus服务器的方法

在CentOS 7系统中安装Grafana 6的方法

 

二、在Prometheus Ceph导出器客户端上安装Docker

请注意,Prometheus Ceph导出器客户端应该可以访问Ceph集群网络,以便它可以提取集群指标,安装Docker参考在Ubuntu 18.04系统中安装指定docker版本的简单方法

另外,安装docker-compose,由于你在安装Docker Engine之前添加了docker存储库,因此你应该可以从yum或apt-get安装docker-compose:

# yum -y install docker-compose

对于Ubuntu系统:

# apt-get install docker-compose

 

三、构建Ceph Exporter Docker镜像

一旦安装了Docker Engine并运行了服务,应该准备好从DigitalOcean Ceph导出器项目构建docker镜像,如果你还没有安装Git,请安装它:

# yum -y install git

如果使用的是Ubuntu,请运行:

# apt-get install git

然后从Github clone项目:

# git clone https://github.com/digitalocean/ceph_exporter.git

切换到ceph_exporter目录并构建docker镜像:

# docker build -t ceph_exporter

这将构建一个名为ceph_exporter的image,可能需要一段时间,具体取决于你的互联网和磁盘写入速度。

 

四、启动Prometheus ceph导出器客户端容器

将ceph.conf配置文件复制到/etc/ceph目录并启动docker container host的网络堆栈,可以使用vanilla docker命令,docker-compose或systemd来管理容器,对于docker命令行工具,请运行以下命令:

# docker run -v /etc/ceph:/etc/ceph --net=host -p=9128:9128 -it digitalocean/ceph_exporter

对于docker-compose,创建以​​下文件:

# cat docker-compose.yml 

# Example usage of exporter in use

version: '2'

services:

ceph-exporter:

image: ceph_exporter

restart: always

network_mode: "host"

volumes:

- /etc/ceph:/etc/ceph

ports:

- '9128:9128'

然后启动docker容器使用:

# docker-compose up -d

对于systemd,创建如下服务单元文件:

# cat /etc/systemd/system/ceph_exporter.service

[Service]

Restart=always

TimeoutStartSec=0

ExecStartPre=-/usr/bin/docker kill ceph_exporter

ExecStartPre=-/usr/bin/docker rm ceph_exporter

ExecStart=/usr/bin/docker run \

--name ceph_exporter \

-v /etc/ceph:/etc/ceph \

--net=host \

-p=9128:9128 \

ceph_exporter

ExecStop=-/usr/bin/docker kill ceph_exporter

ExecStop=-/usr/bin/docker rm ceph_exporter

检查容器状态:

# systemctl status ceph_exporter

如果一切顺利,会得到如下的输出信息:

使用Prometheus和Grafana监控Ceph集群的方法

 

五、在防火墙上打开9128

我使用firewalld,因为这是一个CentOS 7服务器,允许从你信任的网络访问端口9128:

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \

source address="192.168.10.0/24" port protocol="tcp" port="9128" accept'

# firewall-cmd --reload

使用nc或telnet命令测试访问权限:

# telnet 127.0.0.1 9128

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

# nc -v 127.0.0.1 9128

Ncat: Version 6.40 ( http://nmap.org/ncat )

Ncat: Connected to 127.0.0.1:9128.

或使用IP-ADDRESS 9128。

 

六、使用Ceph导出器配置Prometheus

我们需要为创建的ceph导出器容器定义Prometheus static_configs行,编辑Prometheus服务器上的文件/etc/prometheus/prometheus.yml,如下所示:

scrape_configs:

- job_name: prometheus

static_configs:

- targets: ['localhost:9090']

- job_name: 'ceph-exporter'

static_configs:

- targets: ['localhost:9128']

labels:

alias: ceph-exporter

将localhost替换为你的ceph导出器主机IP地址,请记住在进行更改后重新启动Prometheus服务:

# systemctl restart prometheus

 

七、将Prometheus数据源添加到Grafana

登录Grafana仪表板并添加Prometheus数据源,需要提供以下信息:

名称:为此数据源指定的名称。

类型:数据源的类型,在我们的例子中,这是Prometheus。

URL:你要添加的Prometheus服务器的IP地址和端口号。

访问:指定是通过代理还是直接访问,代理意味着通过Grafana服务器访问,直接意味着从Web访问。

使用Prometheus和Grafana监控Ceph集群的方法

单击保存和测试按钮保存设置。

 

八、导入Ceph Cluster Grafana Dashboards

最后一步是导入Ceph Cluster Grafana Dashboards,根据我的研究,我发现Cristian Calin的以下仪表板:

Ceph Cluster Overview: https://grafana.com/dashboards/917

Ceph Pools Overview: https://grafana.com/dashboards/926

Ceph OSD Overview: https://grafana.com/dashboards/923

在Grafana上导入仪表板时,我们将使用仪表板ID 917,926和923。

单击加号(+)>导入以导入仪表板,输入与你要在上面导入的仪表板相匹配的编号:

使用Prometheus和Grafana监控Ceph集群的方法

使用Prometheus和Grafana监控Ceph集群的方法

使用Prometheus和Grafana监控Ceph集群的方法

要查看导入的仪表板,请转到仪表板并选择要查看的仪表板的名称:

使用Prometheus和Grafana监控Ceph集群的方法

使用Prometheus和Grafana监控Ceph集群的方法

使用Prometheus和Grafana监控Ceph集群的方法

 

相关主题

Prometheus进阶:时序列数据库对几个常见的应用进行监控

精选文章
热门文章