Gluster Exporter

GitHub: Prometheus exporter for Gluster Metrics 是GlusterFS官方提供的Gluster peers专用的exporter,提供了搜集本地 Metrics 并聚合到Prometheus服务器的能力。不过,这个开源项目在2018年11月停滞, 我暂时没有找到更好的替代,所以依然采用这个exporter组件尝试为GlusterFS集群提供一些基础监控。 ,目前已经无法编译。所以改为采用 kadalu/gluster-metrics-exporter 替代。

gluster-metrics-exporter 是采用 Crystal 语言开发的 Prometheus Exporters

编译 Gluster Exporter (失败,放弃)

备注

请忽略这段,直接跳到下一段安装部署 gluster-metrics-exporter

Gluster Exporter 使用 Go Atlas 开发,需要准备一个go开发环境(这里我的编译环境是 CentOS 7 ):

CentOS / RHEL 7 安装golang
   sudo rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
   curl -s https://mirror.go-repo.io/centos/go-repo.repo | sudo tee /etc/yum.repos.d/go-repo.repo
   sudo yum install golang
设置 $GOPATH 环境变量
mkdir -p ~/go/{bin,pkg,src}
echo 'export GOPATH="$HOME/go"' >> ~/.bashrc
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> ~/.bashrc
编译安装Gluster Exporter
mkdir -p $GOPATH/src/github.com/gluster
cd $GOPATH/src/github.com/gluster
git clone https://github.com/gluster/gluster-prometheus.git
cd gluster-prometheus

# Install the required dependancies.
# Hint: assumes that GOPATH and PATH are already configured.
./scripts/install-reqs.sh

PREFIX=/usr make
PREFIX=/usr make install

备注

由于Go源代码编译需要访问GitHub下载软件包,这里会遇到GFW阻碍难以完成。请先 配置Go程序代理服务器curl代理

编译报错处理

报错提示flag没有定义
...
FASTBUILD=yes BASE_PREFIX="" GD1STATEDIR=""/var/lib/glusterd \
        CONFFILE=""/etc/gluster-exporter/gluster-exporter.toml \
        GD2STATEDIR=""/var/lib/glusterd2 ./scripts/build.sh gluster-exporter
Building gluster-exporter v0.3-dev.93.git3ebaacc
flag provided but not defined: -i
usage: go build [-o output] [build flags] [packages]
Run 'go help build' for details.
make: *** [build/gluster-exporter] Error 1

这个问题我发现在项目issue中有人提出锅,也有人提供了解决方法是采用 kadalu/gluster-metrics-exporter 来代替

安装部署 gluster-metrics-exporter

安装 gluster-metrics-exporter
curl -fsSL https://github.com/kadalu/gluster-metrics-exporter/releases/latest/download/install.sh | sudo bash -x

输出显示:

安装 gluster-metrics-exporter 输出
++ uname -m
++ sed 's|aarch64|arm64|'
++ sed 's|x86_64|amd64|'
+ curl -fsSL https://github.com/kadalu/gluster-metrics-exporter/releases/latest/download/gluster-metrics-exporter-amd64 -o /tmp/gluster-metrics-exporter
+ curl -fsSL https://github.com/kadalu/gluster-metrics-exporter/releases/latest/download/gluster-metrics-exporter.service -o /tmp/gluster-metrics-exporter.service
+ install -m 700 /tmp/gluster-metrics-exporter.service /lib/systemd/system/
+ install /tmp/gluster-metrics-exporter /usr/sbin/gluster-metrics-exporter

根据输出信息(Bash -x debug输出 )可以看到在系统中安装了以下2个文件:

gluster-metrics-exporter 实际安装文件
# systemd 服务配置文件
/lib/systemd/system/gluster-metrics-exporter.service

# 执行程序
/usr/sbin/gluster-metrics-exporter

也就是说,如果是内部环境,可以直接复制这两个文件来实现部署

参考