Grafana Alerting 개념 정리 (Grafana Alerting, Contact points, Notification Polices, Gruping)
·
카테고리 없음
개요이번 포스팅에서는 Grafana Alerting의 Alert rules, Contact points, Notification policies에 대해 알아보고 간단한 모니터링 알림 시스템을 구축해보려고 합니다. 이전 포스팅에서 kube-prometheus-stack을 활용한 metric 수집 및 알림 시스템을 구축했기 때문에 kube-prometheus-stack의 values.yaml 파일을 override해서 알림 모니터링 시스템을 구현해보겠습니다. p99 rate를 측정하여 1분 이상일 때 알림을 보내주는 모니터링 시스템을 구축해보겠습니다.Grafana AlertingGrafana Alerting은 통합 알림 시스템으로 다양한 데이터 소스 기반의 알림을 중앙에서 관리할 수 있게 해주는 시스템입니..
Helm-Charts로 Self-Hosting 메시징 플랫폼 Mattermost 구축
·
카테고리 없음
개요Mattermost는 Slack을 대체할 수 있는 오픈 소스로 자체 인프라에 직접 호스팅할 수 있는 메시징 플랫폼입니다. 폐쇄망 환경에서도 운영이 가능해 보안이 중요한 조직에서 많이 채택하고 있습니다. 이번 포스팅에서는 Helm 차트를 사용해 Kubernetes에 Mattermost를 배포하는 방법을 알아보려고 합니다. Mattermost 아키텍처Mattermost의 애플리케이션 아키텍처는 다음과 같습니다. 이 중 핵심이 되는 Mattermost Server, Database, File Storage에 대해 알아봅시다.Mattermost Server애플리케이션의 핵심으로, Go 언어로 작성된 단일 바이너리입니다.RESTful API를 통해 클라이언트 요청을 처리합니다.WebSocket을 통해 실시간 ..
Kube-Prometheus-Stack과 Loki-Stack을 활용한 monitoring system 구축
·
카테고리 없음
개요이번 포스팅에서는 k8s에서 모니터링 시스템을 구축하기 위해 prometheus stack과 lok stack을 사용해보려고 합니다. 구축할 모니터링 시스템은 다음과 같습니다.k8s cluster 내부 메트릭 수집스프링 부트 Pod 내부 에러 로그 수집본격적인 monitoring system 구축에 앞서 다음 개념에 대해 알아보고자 합니다.PrometheusGrafana LokiPromtailPrometheus란?Prometheus는 SoundCloud에서 개발한 오픈소스 시스템 모니터링및 알림 툴킷입니다.metric 이름과 key, value로 식별할 수 있는 시계열 데이터 저장PromQL이라는 쿼리 언어 사용분산 스토리지에 의존하지 않음HTTP pull model을 통해 시계열 데이터 수집다음은 ..
Groovy curl 요청 함수
·
카테고리 없음
개요최근 jenkins CI/CD 파이프라인 코드를 다루게 되면서 curl을 사용하여 HTTP 요청을 보내게 될 일이 종종 있었습니다. 다만 curl에 익숙하지 않아 다양한 형태의 HTTP 요청을 보내는 코드를 작성하는 것이 어려웠는데요. 이번 기회에 groovy로 다양한 형태의 curl 요청 함수를 작성해보았습니다. curl 함수다음과 같은 4가지 형태의 curl 요청 함수를 작성해보았습니다. GET + query paramsPOST + request bodyPOST + form dataPOST + form data + fileGET + query params// GET 요청def curlGet = { String url, Map params = [:], Map headers = [:] -> St..
[DevOps] Jenkins 분산 빌드 아키텍처와 kubernetes
·
공부/DevOps
Jenkins는 소프트웨어 빌드, 테스트 또는 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 오픈 소스 자동화 서버입니다. Jenkins는 기본 시스템 패키지, Docker로 설치할 수 있고 JRE가 설치된 컴퓨터에서 독립적으로 실행할 수도 있습니다. 먼저 Jenkins의 아키텍처 먼저 알아봅시다. Jenkins 분산 빌드 아키텍처jenkins controller는 빌드 환경을 관리하고 자체적으로 리소스를 사용하여 빌드를 수행할 수 있습니다. 하지만 이렇게 jenkins controller만 사용하게 된다면 다음과 같은 단점들이 존재합니다.부하가 증가하게 될 경우 scale up을 하는 동안 jenkins의 작업이 중단됩니다.jenkins 사용자는 controller의 모든 권한을 갖게..
[k8s] Nginx Ingress Controller에서 ingress 설정에 base url을 추가하는 법
·
카테고리 없음
개요k8s에서 Ingress는 다양한 서비스 타입에게 트래픽을 전달할 때 자주 사용됩니다. Ingress를 적용하기 위해서는 Ingress Controller가 사용되고 그 중 Nginx Ingress Controller를 통해 base url을 추가하는 방법에 대해 알아보려고 합니다. base url이란?먼저 base url에 대해 알아봅시다. 예를 들어 https://www.example.com이라는 사이트가 있다면 처음 접속했을 때 다음과 같은 html 파일을 받는다고 합시다. 여기서 url의 주소가 /static/image.png라면 html 파일을 렌더링 한 뒤 https://www.example.com/static/image.png로 요청을 보내 static 파일들을 다운받게 됩니다. 여기서..