리눅스 도커 환경에서 프로메테우스를 활용한 간단한 Aurora MySQL 모니터링 구성해보기!!💪💪
# yum install docker
# service docker status
# mkdier /home/centos/pmm -- 프로메테우스 디렉토리
# cd /home/centos/pmm
# vim /home/centos/pmm/prometheus.yml
global:
scrape_interval: 15s # 수집주기 15초
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['***.**.**.***:9090']
labels:
name: 'prometheus'
- job_name: 'AWS/RDS'
static_configs:
- targets: ['***.**.**.***:9104']
labels:
name: 'test-aurora-01'
- targets: ['***.**.**.***:9105']
labels:
name: 'test-aurora-02'
targets에 IP 설정은 프로메테우스가 설치된 로컬 서버 IP로 모두 동일하게 작성.
RDS 인스턴스를 추가하려면 - job_name : 'AWS/RDS' 하위에targets ~ name
까지 추가
-- Prometheus
docker run --rm -d -p 9090:9090 \
--name prometheus \
-v /home/centos/pmm/prometheus.yml:/etc/prometheus/prometheus.yml \
-v pmm-volume:/prometheus \ # 프로메테우스 이미지 내 데이터를 로컬 서버로 저장(볼륨)
prom/prometheus # Prometheus 이미지
-- test-aurora-01에 대한 접속 정보
docker run --rm \
-d -p 9104:9104 \
-e 'DATA_SOURCE_NAME=DB 계정:DB 패스워드(RDS 엔드포인트:DB 포트)/' \
--name test-aurora-01 \
prom/mysqld-exporter # MySQL Exporter 이미지
-- test-aurora-02에 대한 접속 정보
docker run --rm \
-d -p 9105:9104 \
-e 'DATA_SOURCE_NAME=DB 계정:DB 패스워드(RDS 엔드포인트:DB 포트)/' \
--name test-aurora-02 \
prom/mysqld-exporter # MySQL Exporter 이미지
MySQL Exporter 이미지 실행 시 설정이 없으면
SHOW GLOBAL STATUS
,SHOW GLOBAL VARIABLES
항목만 수집한다.
GitHub - MySQL Exporter을 참고하여 특정 메트릭을 수집할 경우(ex Processlist 수집)
1. 위 prometheus.yml → params 항목 추가- job_name: 'AWS/RDS' static_configs: .... params: collect[]:['collect.info_schema.processlist']
- MySQL Exporter 이미지 실행 시 옵션 추가
docker run --rm \ -d -p 9105:9104 \ -e 'DATA_SOURCE_NAME=DB 계정:DB 패스워드(RDS 엔드포인트:DB 포트)/' \ --name test-aurora-02 \ prom/mysqld-exporter # MySQL Exporter 이미지 --collect.info_schema.processlist
접속 : http://프로메테우스 로컬 서버 IP:9090
👉 프로메테우스는 Grid 데이터 지원은 없는 것 같다.
👉 에이전트 방식(Push)이 아니여서 대상 서버들 DB계정 생성하는건 말고 별도로 구성하는 건 없다.
👉 프로메테우스 HA 이중화 구성에 대해 자체적으로 지원하지 않음.