本文介绍使用Prometheus和Grafana进行Ceph群集监控,需要Prometheus导出器来删除有关ceph群集的元信息,Docker安装在服务器上以运行Prometheus Ceph导出器。
一、安装Prometheus Server和Grafana参考文章 在CentOS 7/Ubuntu 18.04系统上安装Prometheus服务器的方法
二、在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 如果一切顺利,会得到如下的输出信息:
五、在防火墙上打开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访问。
单击保存和测试按钮保存设置。
八、导入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。 单击加号(+)>导入以导入仪表板,输入与你要在上面导入的仪表板相匹配的编号:
要查看导入的仪表板,请转到仪表板并选择要查看的仪表板的名称:
相关主题 |