프로젝트 경험
프로젝트 경험
요점
Kubernetes
생산용 ELK
zabbix
~ prometheus
Jenkins
jumpserver
prometheus
Kubernetes 생산 응용 프로그램
관건:
deployment
을 이용하여 Horizontal Pod Autoscaling
에 대한 탄성 신축 pod
과 ingress
을 이용한 대내외 서비스 제공service
및 namespace
을 통한 rdac
패키지 관리 도구 helm
노드의 탄성 신축, 클라우드 호스트에 대한 탄성 신축을 이용하여 모니터링
node
로그 수집
노드에서 로그를 수집하기 위해
kube-prometheus
을 실행하지만 agent
모드에서는DaemonSet
FELK
에 pod
용기를 포함하여 응용 로그를 수집합니다sidecar
에 pod
또는 fluentd
컨테이너 수집 로그를 외부 filebeat
에 코드 게시
ELK
(현재 비교 low) jenkins shell
또는 drone
을 사용할 수 있습니다.클라우드 본체의 탄성 신축.
호스트에 대한 신축성 신축 서비스입니다. 이것은 클라우드 서비스 업체가 제공하는 서비스입니다.\신축성 신축은 주로 설정된 신축 규칙에 따라 업무 수요가 증가할 때 자동으로
jenkins-pipeline
실례를 증가하여 계산 능력을 확보하고, 업무 수요가 감소할 때 자동으로 ECS
실례를 감소하여 원가를 절약합니다.\제품은 주로 ECS
뒤에 SLB
을 마운트합니다.cpu나 메모리 사용률에 대한 감시를 실현하고 메모리나 cpu가 일정한 한도값을 초과하면 이전에 정의한 신축 전략을 이용하여 이전에 만들어진 거울을 이용하여 ECS
을 신축한다.\다음 문제를 가져오다문제.
새로 발표된 코드는 오래된 이미지에 있을 수 없습니다.신축성이 신축되면 새로 추가된
ECS
의 코드는 온라인 코드와 일치하지 않습니다.해결하다
개인적으로는
ECS
에 비해 발표가 무겁다.그러나 low
에서는 이런 문제가 존재하지 않는다.코드를 발표한 후 클라우드 서비스 업체의
Kubernetes
을 호출하여 새 API
에 렌즈를 설치하고 프로젝트의 탄력적인 신축 전략을 수정하며 새 렌즈 id를 낡은 렌즈 id로 바꿉니다.로그 수집
ECS
elk+kafka
filebeat
의 일지를 수집하여 nginx
logstash
에서 로그를 필드 분할하여 logstash
까지 씁니다.elasticicsearch
을 이용하면 kafka
을 쓰기 전에 elasticicsearch
을 쓰고 kafka
을 elasticicsearch
에서 데이터를 얻는다.kafka
을 활용한 프레젠테이션kibana
에서 서로 다른 업무에 따라 kibana
, request_time
, upstream_time
등의 status_code
을 미리 배치하여 포지셔닝 문제를 편리하게 한다.dashboard
, request_time
, upstream_time
을 정기적으로 검사한다.시간 초과 또는 status_code
이 status_code
이면 프로그램 부분 로그 수집 및 경고
요구 사항:
게이트웨이
5XX
서비스는 nginx
을 생성합니다. 이 요청 뒤에 있는 일련의 요청은 모두 이 request_id
을 가지고 로그를 씁니다.목적지에서 문제를 포지셔닝하기 편리하다.request_id
에서 nginx
등 오류가 발생했을 때 이 요청의 5xx
에 따라 프로그램에 대응하는 일련의 요청을 찾을 수 있어 구체적인 문제가 어디에 있는지 신속하게 파악할 수 있다.자원: 자원 문제를 고려하여 현재 request_id
/warn
/error
세 등급의 프로그램 로그만 수집하여 fatal
에 가져옵니다.elk
의 빠른 포지셔닝 프로그램 문제에 따라경고:
정시 임무는 최근 1분간 어떤 항목에 10개의
request_id
이 나타나거나 error
이 나타나면 경고한다.매일 항목이 나타난 fatal
횟수를 통계하다.우편물을 보내다.프로젝트 warn
이 많은 (warn
개 500
)은 추가 경고를 보내서 개발 처리를 하도록 합니다.모니터링
warn
부터 mysql+zabbix+grafana+ /
까지주요 모니터링 지점
prometheus+grafana+alertmanager +
사용률 cpu
io
연결 tcp
연결 IP
연결 IP
: redis
, 메모리 사용량, cpu
, hit
, miss
, get
, set
, ops
...elasticsearch
: cpu
, jvm
, 메모리, gc
, indics
, 건강 상태, ops
...mongodb
: cpu
、 mem
、 ops
... prometheus
으로 마이그레이션한 이유prometheus
은 리소스에 대한 요구 사항이 매우 낮습니다.2진법 문제 하나만 실행하면 된다.zabbix
이 100대의 서버를 모니터링한 후에 모니터링을 볼 때 현저히 느려졌다.prometheus
에 경고를 추가하면 더욱 뚜렷하고 편리하다.Jenkins 코드 발표
개발 요구 사항:
, , `makefile` 。 `make build`
대략적인 절차:
git
창고에서 대응하는 tag
또는 branch
에 따라 코드를 얻는다.jenkins
의 shell
기능을 활용하여 make build
build
의 코드를 얻었고 rsync
에서 서버에 도착했습니다.supervisor
sleep 3s
또한 건강검진 인터페이스를 요청해 서비스가 정상인지 확인한다.api
을 이용하여 새로 발표된 프로젝트 중의 어느 ecs
을 거울로 삼았다.보통 10분 정도 ID
은 a단계에서 발생한 거울 ID
이다.요새기jumpserver
목적:
이점:
prometheus+pushgateway+grafana+alertmanager+
의 목적은 다음과 같은 문제에 자주 부딪히는데 특정한 서비스, 자원의 cpu
또는 메모리가 급증한다.똑똑히 알기 위해서.이 자원들이 급격히 높아지기 위해 어떤 서비스로 인해 우리는 타점 서비스에 가입했다.시나리오: prometheus
을 시차 데이터베이스로 한다.pushgateway
은 prometheus
시퀀스 데이터베이스의 스위치이다.grafana
전시 alertmanager
+ 스파이크, 경고 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
프로젝트 경험helm 노드의 탄성 신축, 클라우드 호스트에 대한 탄성 신축을 이용하여 알리 클라우드 로그 서비스 은 jenkins shell 또는 drone을 사용할 수 있습니다. 이것은 클라우드 서비스 업체가 제공하는 서비스입...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.