홈서버에는 proxmox 로 가상화가 되어있고, vm을 여러개 띄울 수 있다.
현재는 하나의 ubuntu vm 만 구성된 상태이다.
vm 1 ip : ( 수집 대상 ) : 192.168.0.132 vm 2 ip : ( 수집용 ) : 192.168.0.167
각종 기본 세팅을 해줬다.
sshd 설치 (vm 간에 명령어/통신이 필요할 때에 필요하니까)
호스트파일에도 별칭 지정해둠.
vim도 설치해둠
사소한 이슈이긴 한데,, proxmox vm 의 콘솔에서는 cmd+v 가 안됨..
vm 2 에 설치해뒀다

version: '3.7' # 파일 규격 버전
services: # 이 항목 밑에 실행하려는 컨테이너 들을 정의
prometheus:
image: prom/prometheus:latest
user: "0:0"
container_name: prometheus
volumes:
- ./prometheus/config:/etc/prometheus
- ./prometheus/volume:/prometheus
ports:
- 9090:9090 # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
command: # web.enalbe-lifecycle은 api 재시작없이 설정파일들을 reload 할 수 있게 해줌
- '--web.enable-lifecycle'
- '--config.file=/etc/prometheus/prometheus.yaml'
restart: always
networks:
- promnet
grafana:
image: grafana/grafana:latest
container_name: grafana
user: "0:0"
ports:
- 3000:3000 # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
volumes:
- ./grafana/volume:/var/lib/grafana
- ./grafana/dashboards:/var/lib/grafana/dashboards # 대시보드 지정
- ./grafana/provisioning:/etc/grafana/provisioning # 지정한 대시보드 불러오기 및 프로메테우스 uid 고정(충돌방지)
- GF_SECURITY_ADMIN_PASSWORD=admin # 초기 비밀번호 지정
restart: always
networks:
- promnet
node_exporter:
image: prom/node-exporter:latest
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
ports:
- "9100:9100"
networks:
- promnet
networks:
promnet:
driver: bridge
이 docker-compose.yml 에서 prometheus config파일 위치를 확인
프로메테우스.yml 파일에서 수집 대상에 vm-1아이피를 추가해준다.
