이번에는 나의 도커에 node-exporter 컨테이너와 cadvisor 컨테이너를 만들어서 웹 ui에 접속해보자!
먼저 폴더 구조는 다음과 같다.
이 모든 폴더를 압축한 파일은 다음과 같다.
/cadvisor/cadvisor-remove/remove-image.sh : cadvisor 이미지 삭제 쉘 스크립트
/node-exporter/node-exporter-build/build-node-exporter.sh : 노드익스포터 이미지 만드는 스크립트
/node-exporter/node-exporter-dockerfile/Dockerfile : 도커파일
/node-exporter/node-exporter-remove/remove-image.sh : 노드익스포터 이미지 삭제 쉘 스크립트
/docker-compose.yml 도커 컴포즈 파일
파일 상세 내용
/cadvisor/cadvisor-remove/remove-image.sh : cadvisor 이미지 삭제 쉘 스크립트
#!/bin/bash
docker rmi -f gcr.io/cadvisor/cadvisor:latest
/node-exporter/node-exporter-build/build-node-exporter.sh : 노드익스포터 이미지 만드는 스크립트
#!/bin/bash
IMAGE_NAME=gyeongtae/node-exporter
IMAGE_TAG=0.01
IMAGE_NAME_TAG=$IMAGE_NAME:$IMAGE_TAG
if [[ "$(docker container ls -a --filter="status=exited" -q 2> /dev/null)" != "" ]]; then
docker rm $(docker container ls -a --filter="status=exited" -q)
fi
if [[ "$(docker images "dangling=true" -q 2> /dev/null)" != "" ]]; then
echo "Remove dangling images"
docker rmi $(docker images -f "dangling=true" -q)
fi
if [[ "$(docker container ls -q --filter "name=${CONTAINER_NAME}" 2> /dev/null)" != "" ]]; then
echo "Stop & Remove Container ${CONTAINER_NAME}"
docker stop $(docker container ls -q --filter "name=${CONTAINER_NAME}")
docker rm $(docker container ls -q --filter "name=${CONTAINER_NAME}")
fi
docker build \
-f ./node-exporter/node-exporter-dockerfile/Dockerfile \
-t $IMAGE_NAME_TAG .
/node-exporter/node-exporter-dockerfile/Dockerfile : 도커파일
FROM ubuntu:18.04
LABEL title="node-exporter"
LABEL maintainer="parkgyeongtae"
# apt 미러서버 미국(default) -> 한국 변경
RUN sed -i 's@archive.ubuntu.com@kr.archive.ubuntu.com@g' /etc/apt/sources.list
# 자주 사용하는 패키지 설치
RUN apt-get update && \
apt-get install wget -y
# 작업 영역
WORKDIR /home
# node exporter 1.3.1
RUN wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz && \
tar -zxf node_exporter-1.3.1.linux-amd64.tar.gz && \
mv node_exporter-1.3.1.linux-amd64 node_exporter && \
rm -rf node_exporter-1.3.1.linux-amd64.tar.gz
ENTRYPOINT /home/node_exporter/node_exporter --web.listen-address=:9500 & bash
/node-exporter/node-exporter-remove/remove-image.sh : 노드익스포터 이미지 삭제 쉘 스크립트
#!/bin/bash
docker rmi -f gyeongtae/node-exporter:0.01
/docker-compose.yml 도커 컴포즈 파일
version: '2.1'
services:
node-exporter:
hostname: node-exporter
container_name: node-exporter
image: gyeongtae/node-exporter:0.01
restart: always
stdin_open: true
tty: true
ports:
- 9500:9500
cadvisor:
hostname: cadvisor
container_name: cadvisor
image: gcr.io/cadvisor/cadvisor:latest
ports:
- 9600:8080
volumes:
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
먼저 도커의 컨테이너와 이미지가 있는지 확인한다.
docker ps -a
docker images
아무런 컨테이너와 아무런 이미지가 없다.
먼저 노드익스포터의 이미지 먼저 만들어보자.
./node-exporter/node-exporter-build/build-node-exporter.sh
docker images
이번에는 도커 컴포즈를 실행해보자!
docker-compose up -d
docker ps
docker images
모두 잘 실행됐다 확인해보자
cadvisor
localhost:9600
node-exporter
localhost:9500
'Database > Prometheus' 카테고리의 다른 글
[Prometheus] PromQL, Loki (0) | 2024.05.27 |
---|---|
[Prometheus] 기능 및 장단점 (0) | 2024.05.27 |
[Prometheus] 프로메테우스의 장점 (0) | 2023.05.13 |
[Node-Exporter] 노드 익스포터 설치, 웹 ui 포트 변경하는 방법 (0) | 2022.04.02 |
[Node-Exporter] 노드 익스포터 도커 컨테이너로 설치하는 방법 (0) | 2022.04.02 |