
Libvirt Exporter는 Prometheus에 대해 노출된 Host 및 VM의 Metric을 수집할 수 있도록 도와준다.
특징
https://github.com/zhangjianweibj/prometheus-libvirt-exporter
github에 많은 Livirt-exporter가 있지만 필자는 해당 프로젝트를 선택했다.
Go언어로 이루어져 있다.
깃허브 README를 그대로 하면 설치 및 실행이 안 된다.
그래서 나름대로 찾은 설치 방법과 실행 방법을 소개하고자 한다.
sudo apt install golang-go
go install github.com/goreleaser/goreleaser@latest
go install github.com/go-task/task/v3/cmd/task@latest
git clone https://github.com/zhangjianweibj/prometheus-libvirt-exporter
cd prometheus-libvirt-exporter/
여기서 바로 build 시키려고 하면 다음과 같은 에러가 나온다.

Go언어는 처음이라 조금 찾아보니, 모듈의 vendor 디렉토리에 일관성이 없어서 생긴 문제다.
go mod vendor
위의 명령어를 실행하여 모듈의 vendor 디렉토리를 현재의 모듈에 맞게 갱신해야 한다.
그 후, 다음과 같은 명령어를 쳐서 빌드한다.
go build prometheus-libvirt-exporter.go
./prometheus-libvirt-exporter
실행을 하면, 다음과 같은 화면을 볼 수 있다.


Background로 실행하려면 시스템에 service를 등록해야 한다.
다음과 같이 명령어를 치면 된다.
sudo vi /etc/systemd/system/libvirt-exporter.service
[Unit]
Description=Libvirt Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/home/ubuntu/prometheus-libvirt-exporter/prometheus-libvirt-exporter
[Install]
WantedBy=multi-user.target
여기서 ExecStart에는 본인의 설치한 libvirt-exporter의 위치를 기재해야 한다.
sudo systemctl daemon-reload
sudo systemctl enable libvirt-exporter.service
sudo systemctl start libvirt-exporter.service

석환님 글 보고 따라했더니, 3시간 34분 정도 걸렸네요^^
하지만 노력의 흔적은 보이네요.
고생 많았습니다.
해피 뉴이어