250x250
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 |
Tags
- 즉시로딩
- 스토어드 프로시저
- PS
- 낙관적락
- 일대다
- querydsl
- 연결리스트
- 유니크제약조건
- 연관관계
- fetch
- shared lock
- 백트래킹
- 이진탐색
- 데코레이터
- CHECK OPTION
- SQL프로그래밍
- execute
- 지연로딩
- BOJ
- 다대일
- FetchType
- 동적sql
- dfs
- eager
- 다대다
- 스프링 폼
- 비관적락
- 힙
- exclusive lock
- JPQL
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
모니터링 도입기 본문
728x90
# 1. 모니터링 서버 생성
애플리케이션 서버와 모니터링 서버를 분리하기로 하였다.
ec2 인스턴스를 새로 만들고, 테스트를 위해 임시 스프링부트 프로젝트를 실행했다.
# yum update
# timezone
# java 설치
# git 설치
# docker 설치
yum install docker -y
# docker 시작
systemctl start docker
# docker-compose 설치
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# Verify installation - docker-compose
docker-compose --version
# 2. 메인서버 Node Exporter 설치
메인서버에서 메트릭들을 수집한 다음 모니터링 서버의 prometheus에 전달해주어야 함.
https://prometheus.io/download/#node_exporter
# 다운로드
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
# 압축해제
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
# 압축해제한 폴더 이동
cd node_exporter-1.7.0.linux-amd64
# Node Exporter 실행
systemctl start node_exporter
이런 에러가 발생했음. 아래 과정을 수행해주면 된다.
cp node_exporter /usr/local/bin/
vim /etc/systemd/system/node_exporter.service
""" 아래 내용으로 채워 넣는다.
[Unit]
Description=Prometheus Node Exporter
[Service]
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=default.target
"""
systemctl daemon-reload
systemctl start node_exporter
이제 될 것이다.
이제 [EC2 IP]:9100/metrics에 접근하면,
이게 나오면 성공
# 3.1 프로메테우스 설치
yum install docker -y
systemctl start docker
docker pull prom/prometheus
# 3.2 prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
# 실제 애플리케이션 서버
- job_name: 'termterm-monitoring'
metrics_path: /actuator/prometheus
static_configs:
- targets: ['localhost:8080']
# Node-Exporter로 메트릭을 수집하는 서버
- job_name: 'termterm-main'
metrics_path: /metrics
static_configs:
- targets: ['localhost:9100']
- global : 전역 설정을 정의하는 섹션
- scrap_interval : 목표 서버에서 메트릭을 가져오는 간격
- evaluation_interval : 프로메테우스에서 규칙 평가 및 알람 생성을 실행하는 간격
- scrip_configs : 수집 대상 및 대상별 구성을 정의하는 섹션
- job_name : 프로메테우스에서 해당 작업을 식별하는 데 사용되는 이름
- metrics_path : 메트릭 엔드포인트의 경로 지정
- static_configs : 대상 서버를 정의하는 섹션
- targets : 메트릭을 수집할 서버
- job_name : 프로메테우스에서 해당 작업을 식별하는 데 사용되는 이름
- 위 예시처럼 localhost 로 하면 실제 ec2 인스턴스에서는 인식을 못한다. 실제 IP주소 혹은 도메인으로 바꿔줘야 한다.
#3.3 docker-compose.monitoring.yml
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus.yml:/prometheus/prometheus.yml:ro
ports:
- 19090:9090
command:
- "--web.enable-lifecycle"
restart: always
networks:
- promnet
user: root
grafana:
image: grafana/grafana
container_name: grafana
volumes:
- ./grafana-volume:/var/lib/grafana
restart: always
networks:
- promnet
ports:
- 13030:3000
user: root
networks:
promnet:
driver: bridge
# 아래 명령어를 통해서 container를 띄운다.
docker-compose -f docker-compose.monitoring.yml up -d
프로메테우스 접속 링크 → :19090
그라파나 접속 링크 → :13030
그라파나의 초기 ID, PW는 admin, admin 이다.
'모니터링' 카테고리의 다른 글
Apache JMeter 를 이용한 성능 테스트 (0) | 2024.03.11 |
---|---|
프로젝트에 슬랙 봇 투입! (1) | 2023.12.22 |
모니터링 환경 구성 (1) | 2023.12.21 |
모니터링 메트릭 활용 - 스프링부트에서의 예제 (1) | 2023.12.21 |
그라파나 - 메트릭을 통한 문제 확인 예제 (1) | 2023.12.18 |