Logic in Code,
Freedom in Travel.

인생 뭐 있나 사람 사는거 다 똑같지

분류 전체보기

DevOps/모니터링

[모니터링] - Node.js로 그라파나에서 DB 데이터 로그 보기

Node.js 백엔드 API를 통해 데이터베이스의 데이터나 로그를 그라파나에서 시각화하는 방법을 다뤄보았다. 이 목표를 위해 Prometheus 메트릭 형식으로 데이터를 노출하고 그라파나 대시보드로 모니터링하는 전체 과정을 다뤄보았다.아키텍처1. 프로젝트 초기 설정1.1 프로젝트 생성mkdir nodejs-grafana-db-loggercd nodejs-grafana-db-loggernpm init -y1.2 필수 패키지 설치# 기본 패키지npm install express prom-client# 데이터베이스 드라이버npm install mysql2 pg # MySQL, PostgreSQL# 로깅npm install winston winston-loki# 환경 변수npm install dotenv# 개..

2024. 2. 16. 02:14
DevOps/모니터링

[모니터링] - Grafana + Prometheus + cAdvisor로 컨테이너 상태(리소스) 수집하기

서버를 운영하다 보면 CPU, 메모리, 디스크 I/O 등 리소스 사용량을 모니터링하는 것이 선택이자 필수이다.내 개인서비스나 회사에서는 도커를 사용하기 때문에 이 부분에 초점을 두어 Prometheus(메트릭 수집), cAdvisor(컨테이너 메트릭 노출), Grafana(시각화)를 조합하여 컨테이너 모니터링 환경을 구축해보았다.아키텍처 개요cAdvisor: Docker 컨테이너의 리소스 메트릭 수집 및 노출Prometheus: cAdvisor에서 메트릭을 주기적으로 수집하여 저장Grafana: Prometheus 데이터를 대시보드로 시각화설치 및 구성1. cAdvisor 실행docker run \ --name cadvisor \ --detach \ --volume=/:/rootfs:ro \ --..

2024. 2. 16. 02:12
DevOps/모니터링

[DevOps] - Jenkins와 Spring Boot로 구축하는 CI/CD 파이프라인

과거에는 어찌되었는지 모르지만 github, gitlab, bitbucket(잘 모르겠음) 에서 CI 를 지원해주고 오픈소스가 많은 현대 소프트웨어 개발에서 CI/CD는 선택이 아니라 필수인 것 같다. 보안 문제가 아닌 이상 이 간편한걸 사용하지 않으면 바보라고 생각이 든다. 이번에는 Jenkins 를 이용해서 Spring Boot 프로젝트를 자동화된 빌드, 테스트, 배포 파이프라인을 구축을 시도해보았다. CI/CD가 필요한 이유빠른 피드백: 코드 변경 후 즉시 빌드/테스트 결과 확인품질 보증: 자동화된 테스트로 버그 조기 발견배포 자동화: 수동 배포의 실수 방지개발 생산성: 반복 작업 자동화로 개발에 집중Jenkins 설치 및 설정Docker를 활용한 Jenkins 설치docker run -d \ -..

2024. 2. 16. 02:10
DevOps/모니터링

[모니터링] - Grafana Loki로 도커 컨테이너 로그 보기

마이크로서비스 아키텍처가 사실상 일반화 되면서 수십개의 이상의 컨테이너를 운영하는 것이 일상이 되었다. 이러한 환경에서 로그 관리는 필수지만 내부 보안 정책이나 권한, 인력 문제 등으로 동시에 관리한다는 것도 쉽지 않은 일이다. Grafana Loki 는 이 문제를 조금이나마 해결하기 위한 오픈소스이자 경량화된 로그 집계 시스템이다. Loki란?Loki는 Grafana Labs 에서 개발한 로그 집계 시스템으로, "Prometheus for logs"라는 컨셉으로 설계되었다. Elasticsearch 와 달리 로그 내용을 인덱싱하지 않고 메타데이터(레이블)만 인덱싱하여 비용 효율적이고 운영이 간단하다. 주요 특징경량성: 로그 내용이 아닌 레이블만 인덱싱비용 효율성: 저장 공간과 메모리 사용량 최소화Gra..

2024. 2. 15. 23:24
DevOps/모니터링

[모니터링] - 그라파나 + 프로메테우스로 네트워크 로그 수집하기

네트워크 인프라의 안정성을 확보하기 위해서는 실시간 모니터링이 필수이다. 이번에느 프로메테우스(Prometheus)로 네트워크 메트릭을 수집하고, 그라파나(Grafana)로 시각화하는 방법을 적어보았다.아키텍처 개요Exporters: 네트워크 장비에서 메트릭 수집Prometheus: 시계열 데이터베이스로 메트릭 저장Grafana: 대시보드를 통한 시각화AlertManager: 임계값 기반 알림 전송1. 환경 구성1.1 Docker Compose로 통합 구성version: '3.8'services: prometheus: image: prom/prometheus:latest container_name: prometheus volumes: - ./prometheus/prometheu..

2024. 2. 15. 23:23