본문 바로가기

Infra

sFlow Dashboard

환경: controller 3, compute 1, ceph 1의 openstack, Monitoring VM

 

openstack의 VM에서 발생하는 traffic을 Monitoring VM에서 수집해 시각화

 

openstack을 설치하면서 같이 설치한 OVS의 기능으로 sFlow 프로토콜을 발생

ovs-vsctl -- --id=@sflow create sflow agent=192.168.122.21 target="\"192.168.122.3:6343\"" header=128 sampling=30 polling=10 -- set bridge br-ovs-public sflow=@sflow

 

Monitoring VM에 docker 설치

apt-get update
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

 

Monitoring VM에 sFlow 프로토콜을 받을 sFlow-RT 설치

docker run -d -p 6343:6343/udp -p 8008:8008 sflow/prometheus -Dsnmp.ifname=yes

Apps에서 Applications가 제대로 보이면 정상

browse-flows에서 수집되는 데이터 확인 가능

sFlow-RT의 API에서 Rest API를 확인할 수 있는데 해당 정보로 Prometheus에서 사용할 데이터를 정의

 

vi prometheus.yml

global:
  scrape_interval:     15s
  evaluation_interval: 15s

rule_files:
  # - "first.rules"
  # - "second.rules"

scrape_configs:
  - job_name: 'sflow-rt-metrics'
    metrics_path: /prometheus/metrics/ALL/ALL/txt
    static_configs:
      - targets: ['192.168.122.3:8008']
  - job_name: 'sflow-rt-inout'
    metrics_path: /app/prometheus/scripts/export.js/flows/ALL/txt
    static_configs:
      - targets: ['192.168.122.3:8008']
    params:
      metric: ['ip_src_dst_bps']
      key: ['ipsource','ipdestination']
      label: ['src','dst']
      value: ['bytes']

sflow-rt-inout가 위의 Rest API 기반으로 만들어진 메트릭스

필요한 데이터인 ipsource와 ipdestination, bytes를 포함한 메트릭스

 

프로메테우스 컨테이너 생성

docker run --name prometheus -v /root/prometheus.yml:/etc/prometheus/prometheus.yml -p 9090:9090 -d prom/prometheus

 

프로메테우스를 시각화 하기위한 Grafana 배포

docker run --name grafana -p 3000:3000 -d grafana/grafana

그라파나에 프로메테우스 연결

 

정상적으로 연결되어 아까 정의했던 ip_src_dst_bps 메트릭스가 생성

 

dst, src의 값과 value값으로 bytes가 나오는 것을 확인

'Infra' 카테고리의 다른 글

Journal Log 용량 제한  (0) 2024.05.24
Squid proxy 폐쇄망 연결  (0) 2024.05.23
OpenVSwitch sFlow  (0) 2024.05.23
Fluentd 설정 방법  (0) 2024.05.23
Rabbit MQ - Fluentd - Opensearch  (0) 2024.05.23