Collectd + virt plugin & Collectd Exporter으로 Openstack 메트릭 모니터링

박도준·2021년 10월 10일
0

시스템 모니터링 도구 중 하나인 collectd에 virt plugin을 추가적으로 설치하여 openstack을 모니터링해보는 실습을 진행해본다.

우선 collectd에 대해 알아보자.

Collectd란?

Collectd는 시스템 메트릭 모니터링 도구 중 하나로, 시스템 자원 데이터를 수집하는 기능을 수행하는 데몬이다.

collectd은 다양한 플러그인들을 제공하는데 이를 통해 다양한 메트릭 수집이 가능하다.

그 중 virt plugin을 통해 시스템의 가상화된 게스트에 대한 통계를 수집할 수 있기 때문에 openstack을 모니터링하기 위해 virt plugin을 사용한다.

Collectd exporter란?

Exporter는 모니터링 대상의 Metric 데이터를 수집하고 Prometheus가 접속했을 때 정보를 알려주는 역할을 한다.

Collectd exportercollectd가 수집하는 데이터를 엔드포인트에 노출시켜 프로메테우스가 해당 데이터를 수집할 수 있도록 한다.



Collectd exporter 설치

도커 이미지로 collectd exporter를 설치할 수 있기 때문에 이를 이용한다.

https://hub.docker.com/r/prom/collectd-exporter

docker run prom/collectd-exporter

Collectd 설치

설치 환경

OS : ubuntu 18.04
collectd version 5.12.0

만약 apt-get으로 패키지를 설치하면 ubuntu 18.04일때, collectd는 5.7.2 버전이 설치되었다.

sudo apt-get –y install collectd

collectd 5.7.2 버전으로 설치했을 때, virt plugin에서 error가 발생했기 때문에 5.8 상위 버전을 직접 다운받아 설치하는 것을 권장한다.

동작이 수행되는 것을 확인한 버전은 5.12.0 버전이다.

collectd 5.12.0 버전 다운

https://collectd.org/download.shtml

wget https://collectd.org/files/collectd-5.11.0.tar.bz2

tar -xvf collectd-5.11.0.tar.bz2

cd collectd-5.11.0

./configure

make all install

virt plugin 설치

collectd에서 플러그인을 설치하기위해서는 collectd.conf 파일을 수정하면 된다.

이때 주석처리된 부분을 해제하고 collectd 시스템을 재시작하면 된다.

virt plugin으로 수집한 데이터를 collectd exporter의 엔드포인트를 통해 보고 싶다면write_http plugin도 추가적으로 설치해준다.

(만약 collectd 5.12.0 버전 설치 시, write_plugin이 없다면 이전 버전에서 해당 플러그인 파일(.so) 넘겨받아서 사용)

Hostname "zzzz"
Interval 3
FQDNLookup false
LoadPlugin cpu
LoadPlugin uuid
LoadPlugin virt
LoadPlugin write_http
<Plugin write_http>
  <Node "collectd_exporter">
    URL "<IP>:9103/collectd-post"
    Format "JSON"
    StoreRates false
  </Node>
</Plugin>
<Plugin cpu>
  ReportByCpu true
  ReportByState true
  ValuesPercentage false
  ReportNumCpu false
  ReportGuestState false
  SubtractGuestState true
</Plugin>
<Plugin uuid>
  UUIDFile "/etc/uuid"
</Plugin>
<Plugin virt>
  Connection "qemu:///system"
  HostnameFormat "name", "uuid"
  ExtraStats "cpu_util disk disk_err pcpu job_stats_background perf vcpupin memory"
</Plugin>

만약 작성한 conf 파일 경로가 default와 다르다면, -C 옵션을 사용하여 지정해준다.

collectd --help
/usr/sbin/collectd -C /etc/collectd/collectd.conf

그리고 service를 재시작해준다.

systemctl restart collectd.service

collectd 서비스의 상태를 확인한다.

systemctl status collectd.service

상태가 Active인 것을 확인하면 collectd exporter 엔드포인트로 접속하여 메트릭을 제대로 받아오는지 확인한다.

해당 엔트포인트를 프로메테우스에서 보고 싶다면 prometheus.yml에 엔드포인트를 추가하면 볼 수 있다.

profile
Better late than never

0개의 댓글