일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹 해킹
- 스크레이핑
- Kubernetes
- CD
- Prometheus
- Crawling
- Resource
- DevOps
- Jenkins
- helm
- 모의해킹
- gitlab cd
- scraping
- deploy
- linkerd
- 웹 취약점
- gitlab ci
- opentelemetry
- CI
- eks
- CI/CD
- docker
- Service Mesh
- GitLab
- Grafana
- ECR
- 크롤링
- Monitoring
- sonarqube
- argocd
- Today
- Total
목록Observabillity (12)
ㅡ.ㅡ
OpenTracing 분산 시스템 및 마이크로서비스 아키텍처에서 애플리케이션 간 트레이싱을 구현하기 위한 벤더 중립적인 API와 도구의 표준으로 애플리케이션의 다양한 구성 요소에서 분산된 트랜잭션의 흐름을 추적하기 위한 추상화 계층을 제공하여 여러 서비스 간의 요청-응답 흐름을 따라가고, 각 단계에서 걸리는 시간을 측정하며, 이를 통해 성능 문제를 분석하고 최적화할 수 있다. Trace 분산 시스템 전체에 걸쳐 이동하는 하나의 트랜잭션의 값으로 여러개의 Span으로 구성된다. Span trace의 논리적 실행 단위로 하나의 서비스의 작업을 의미하며 한 Span 내 작업을 처리하는 함수와 같은것들을 Child Span으로 구성된다. Operation Name : 실행되는 Span의 이름 TimeStamp ..
Architecture Distributor Jaeger, OpenTelemetry, Zipkin등에서 전달한 SPAN 내 TraceID 값을 해싱하여 해싱 링으로 구성된 ingester에 해당하는 해싱 범위값을 갖는 노드에 전달하여 처리량을 증가시키며 병목 현상은 완화시키는 역할 담당한다. Ingester Distributor에서 수집한 Trace 데이터를 효율적인 검색을 지원하기위해 아래와 같이 인덱싱 후 스토리지 Object Storage에 저장하는 역할을 담당한다. / / / / / / ... / ... Object Storage Object Storage는 Tempo에서 추적 데이터를 영구적으로 보관하는 저장소로 S3와 같은 클라우드 기반의 객체 스토리지 시스템을 사용한다. Query Front..
APP/Build.gradle actuator와 micrometer Prometheus 메트릭 의존성 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-registry-prometheus' } APP/Application.yaml Promethues에 추가될 앱 이름과 메트릭에 포함될 정보들 포함 spring: application: name: 앱이름 management: metrics: tags: application: ${spring.application.name} endpoints: web: exposure: inclu..
Helm helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm pull prometheus-community/kube-prometheus-stack --untar ktl create ns proemtheus-stack helm upgrade --install prometheus-stack -f values.yaml ./ -n prometheus-stack Email 및 Ingress 설정(values.yaml) etcd, kubecontroller manager, kubeScheduler는 비활성화 최신 EKS 클러스터는 통신 포트가 변경되어 해당 메트릭값들을 받으려..
통신 구조 APP > Fluentbit(tail/forward) >> Fluentd(forward/file) APP&Fluentbit env에 쿠버네티스 메타데이터 값을 추가하여 APP 로깅 및 Fluentbit에서 TAG값으로 사용한다. fluentbit와 APP Pod간에 동일한 볼륨을 마운트하여 Log를 공유해준다. Deployment.yaml template: metadata: labels: app: {{ .Values.app_name }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} affinity: nodeAffinity: requiredDuringSchedul..
Nginx 컨트롤러 생성 설치 파일 wget -O aws_nlb_nginx_ingress_controller.yaml https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/aws/deploy.yaml프라이빗 서브넷에 로드밸런서 생성 설정 추가 프라이빗 서브넷 태그 추가 KEY : kubernetes.io/role/elb Value : 1, KEY : kubernetes.io/role/internal-elb Value : 1 퍼블릭 서브넷에 생성 시 service.beta.kubernetes.io/aws-load-balancer-internal: "true" 항목 제거 271 # Source: ingr..
서비스별 사용 포트 SNMP(Inbound) : 161/UDP (snmp_exporter 설치 서버) snmp_exporter(Inbound) : 9116/TCP (Prometheus서버에 설치 시 미 필요) go 설치 wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz tar -xvzf go1.12.5.linux-amd64.tar.gz mv go /usr/local 환경 변수 등록 vi ~/.bashrc export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH export MIBDIRS=mibs source ~/.bahsrc snmp_expor..
사용 포트 Cadvisor(inbound) : 8888/TCP(Prometheus 접근 허용) docker-compose 설치 curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose cadvisor 설치 시 에러 해결을 위한 링크 폴더 생성 mount -o remount,rw '/sys/fs/cgroup' l..
grafana Prometheus, Influxdb, Zabbix 등 다양한 메트릭 데이터를 시각화할수있는 시스템이다. Grafana_WEB(Inboud) : 3000/TCP 저장소 추가 sudo tee /etc/yum.repos.d/grafana.repo Add data source > Prometheus > 서버 정보(주소:포트) 입력 후 테스트 대시보드 추가 대시보드 검색 사이트에서 번호를 확인 후 Import하여 추가한 데이터 소스 지정