Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 백준
- mysqlworkbench
- 도커
- 스프링예외처리
- Intellij
- css
- java
- 소셜로그인
- 그라파나
- 내일배움캠프
- 알고리즘
- MySQL
- 연동
- 인텔리제이
- 스프링
- EC2
- 키오스크
- 스파르타
- 깃허브
- 스프링시큐리티
- AWS
- 테스트코드
- 오버라이딩
- Infra
- tomcat
- 스파르타코딩클럽
- 자바
- 프로메테우스
- JWT
- o'auth2
Archives
- Today
- Total
개발스토리지😃
[스프링] 스프링서버 도커를 활용한 프로메테우스, 그라파나 연동 (3) mysql, redis 연동 본문
모니터링/프로메테우스 + 그라파나
[스프링] 스프링서버 도커를 활용한 프로메테우스, 그라파나 연동 (3) mysql, redis 연동
believekim 2025. 7. 4. 20:05
mysql과 redis를 연동하면서 지난번에 연결한 것이 스프링부트가 아니라 서버였다는 것을 깨달았다.
글을 하나 더 써서 스프링부트와 JVM모니터링을 다음 포스팅에 작성해보려고 한다.
1. mysql 접속 권한 부여 설정파일
- mysql 컨테이너에 접속해 metric을 수집하려면 접속 권한이 필요하기에 작성한 설정파일이다
- 위치는 그림과 같고 내용은 아래와 같다
- testpass부분이 비밀번호 설정이며 임의대로 작성이 가능하다. docker-compose로 실행되는 부분에서 비밀번호가 맞아야 한다.
CREATE USER IF NOT EXISTS 'exporter'@'%' IDENTIFIED BY 'testpass';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
FLUSH PRIVILEGES;
2. docker-compose.yml
- 지난 포스팅에 이어서 작성하기에 전체 파일을 공유했다.
version: "3.9"
services:
mysql:
image: mysql:latest
container_name: hansabal_mysql
ports:
- '3306:3306'
environment:
MYSQL_DATABASE: 'hansabal'
MYSQL_USER: 'testuser'
MYSQL_PASSWORD: 'testpass'
MYSQL_ROOT_PASSWORD: 'root'
volumes:
- ./mysql/data:/var/lib/mysql
- ./config/init-exporter.sql:/docker-entrypoint-initdb.d/init-exporter.sql
networks:
- promnet
redis:
image: redis:latest
container_name: hansabal_redis
ports:
- 6379:6379
volumes:
- ./redis/data:/data
- ./redis/conf/redis.conf:/usr/local/conf/redis.conf
labels:
- "name=hansabal_redis"
- "mode=standalone"
restart: always
command: redis-server /usr/local/conf/redis.conf
networks:
- promnet
prometheus:
user: "root"
image: prom/prometheus
container_name: hansabal_prometheus
volumes:
- ./prometheus/config:/etc/prometheus
- ./prometheus/volume:/prometheus/data
ports:
- 9090:9090
command:
- '--web.enable-lifecycle'
- '--config.file=/etc/prometheus/prometheus.yml'
restart: always
networks:
- promnet
grafana:
user: "root"
image: grafana/grafana
container_name: hansabal_grafana
ports:
- 3000:3000
volumes:
- ./grafana/volume:/var/lib/grafana
restart: always
networks:
- promnet
# 그라파나 대쉬보드 ID 1860
node-exporter:
image: prom/node-exporter
container_name: hansabal_node_exporter
restart: always
ports:
- 9100:9100
networks:
- promnet
# 그라파나 대쉬보드 ID 7362
mysql-exporter:
image: prom/mysqld-exporter
container_name: hansabal_mysql_exporter
ports:
- 9104:9104
command:
- "--mysqld.username=exporter:testpass"
- "--mysqld.address=hansabal_mysql:3306"
networks:
- promnet
depends_on:
- mysql
# 그라파나 대쉬보드 11835
redis-exporter:
image: oliver006/redis_exporter
container_name: hansabal_redis_exporter
restart: always
ports:
- 9121:9121
networks:
- promnet
depends_on:
- redis
command:
- '--redis.addr=redis://hansabal_redis:6379'
networks:
promnet:
driver: bridge
3. mysql-exporter 트러블슈팅
- .my.cnf 파일이 없는데도 mysqld_exporter가 기본적으로 해당 파일을 참조하려다 실패한 경우에 아래 오류메세지를 받았다.
- infra라는 폴더 아래에서 파일을 만들어 문제를 해결하고 싶었기에 infra/config/init-exporter.sql을 만들게 되었다.
failed to validate config" section=client err="no user specified in section or parent"
- 다른 해결방법으로 .my.cnf파일을 무시하는 내용을 추가해보기도 했지만 여전히 같은 오류에 직면했다.
command:
- "--config.my-cnf="
- 권한부여는 init-exporter.sql로 하고 접속은 아래의 형식에 맞추어 입력한 다음 접속하여 해결하였다.
- username에서 exporter는 고정값이라고 생각해도 무방하다.
command:
- "--mysqld.username=exporter:<설정한 비밀번호>"
- "--mysqld.address=<mysql이름>:<포트번호>"
4. 프로메테우스 확인
- http://localhost:9090/targets 접속 후 Up상태 확인
5. 그라파나 연결
- docker-compose.yml파일에 주석으로 그라파나 대쉬보드 ID를 적어놓았다. 다른걸 사용해도 무방하다.
- 연결은 저번 포스팅을 참고하면 된다.(왼쪽 Dashboard를 클릭 -> new dashboard -> import dashboard 클릭)
- mysql은 7362, redis는 11835이다.
현재 redis는 비밀번호가 설정되어 있지 않다. 그래서 비밀번호가 있다면 수정이 필요하다.
다음 포스팅에서는 스프링부트서버와 JVM 모니터링을 추가해보도록 하겠다.
'모니터링 > 프로메테우스 + 그라파나' 카테고리의 다른 글
[스프링] 스프링서버 도커를 활용한 프로메테우스, 그라파나 연동 (4) spring, jvm (0) | 2025.07.07 |
---|---|
[스프링] 스프링서버 도커를 활용한 프로메테우스, 그라파나 연동 (2) 연동 확인 (0) | 2025.07.03 |
[스프링] 스프링서버 도커를 활용한 프로메테우스, 그라파나 연동 (1) 파일 작성 (0) | 2025.07.02 |