금주의 목표
연결 마무리
대시보드 구축 및 작동 확인
알람 작동 확인
오픈스택 과 연결하기
node-exporter, cadvisor
대시보드 구성하기
docker swarm node 연결하기 + 오픈스택
networkmanager dispatcher script 방식으로 ip route를 제로티어 인터페이스에 추가함
#!/bin/bash
INTERFACE=$1
ACTION=$2
# 제로티어 가상 인터페이스가 실제로 완전히 UP 되었을 때 실행
if [ "$INTERFACE" = "ztsjse6aa6" ] && [ "$ACTION" = "up" ]; then
ip route add 192.168.21.0/24 via 10.147.21.31 dev ztsjse6aa6 metric 105
ip route add 192.168.47.238/32 via 10.147.21.31 dev ztsjse6aa6 metric 105
fi
<aside>
cadvisor 컨테이너가 뜨지 않은 이유
cAdvisor가 컨테이너들을 띄울 때, 각 컨테이너가 디스크를 얼마나 쓰고 있는지 계산하려고 도커 내부 경로(layerdb/mounts/...)를 긁어가려고 시도해.
그런데 Docker Swarm 환경이나 최신 도커 스토리지 드라이버 구조 때문에 이 특정 파일 경로를 찾지 못하니까, cAdvisor가 "어? 디스크 정보 못 읽겠네? 그럼 이 컨테이너는 에러 처리하고 수집 안 해!" 하고 컨테이너 인식 자체를 통째로 포기(Failed to create)해 버리는 거야.
</aside>
cAdvisor 대시보드 문제
cadvisor가 도커 컨테이너 내용을 가져오지 못하기에 대시보드에 아무것도 뜨지 않던 문제 docker의 스토리지 아키텍쳐가 버전 업이 되면서 달라짐(containerd-snapshotter → overlayfs2) 도커 스토리지 아키텍쳐를 예전걸로 설정하던가 cadvisor을 버전업하던가 하여야 함
해결방법: 버전업 및 containerd 소켓에 접근할 수 있도록 볼륨 설정 마운트 추가 → image 정보를 가져올수 있게 됨
instance 이름이 ip 주소로 출력되어 instance이름을 알아볼수 없는 문제
해결방법: node-exporter와 같이 dockerswarm_sd_configs 을 사용하여 instance에 node이름을 덮어쓰기 하였다.
clover-test01 의 컨테이너에서 데이터를 받아올수 없는 문제
해결: join 시 floating ip를 통하여 연결하였다.
cadvisor 대시보드와 ctrl 노드를 연결하였다
web 컨테이너가 openstack vm에 뜨는것을 성공하였다
프로메테우스 알람이 터졌을 때 가장 흔하게 발생하는 사고가 "VM 무한 생성"이야.