grafana와 cloudwatch metric 계기판 배치 시작
14580 단어 kubernetesawsbeginners
지표의 기둥
도량은 관찰 가능한 관건적인 구성 요소 중 하나이다. 우리가 더 많은 분포식 응용 프로그램 체계 구조를 채택함에 따라 관찰 가능성은 점점 중요해진다. 만약에 우리가 적당한 집합 시스템이 없다면 응용 프로그램의 건강 상태를 관리하기 어렵다.만약에 귀하가 관찰할 수 있는 여행을 시작하고 데이터독이나 splunk 등 비용을 지불하는 SaAS 서비스를 변호하는 것이 극복하기 어려운 장애라는 것을 발견한다면 먼저 소스 해결 방안을 사용하여 도량 수집의 작업 방식을 더욱 잘 파악하고 계기판을 만들어서 현재 시스템에 대한 견해를 제공할 수 있습니다.
이 글에서 우리는 지역 사회를 통해 만들어진 계기판을 통해 Grafana를 AWS 탄력성 Kubernetes 서비스(EKS) 집단에 배치하는 데 도움이 되는 빠른 방법을 소개할 것이다.시작합시다.
카탈로그
The quick 5-minute build
Grafana
The 10-minute build
요구 사항
빠른 5분 구축
뭐 공부 해요?
설치 프로그램
레노라 / 식단
관측 가능한 도구를 설정하는 데 사용되는 처방 집합
식단
AWS 및 EKS에서 리소스를 설정하는 방법 집합
이것은 제가 사람들에게 관찰할 수 있는 도구를 소개하고 그들에게 가능한 한 쉽게 인프라 시설에 추가할 수 있는 레시피를 제공하려고 시도한 것입니다. 따라서 이러한 설정 중 대부분이 당신의 생산 수요에 있어서 너무 간단할 수 있습니다(예를 들어 HA 고려, 유지 보수 과정). 만약에 제가 이 도구를 개선하고 간소화할 수 있다면나는 이 저장소를 업데이트해서 내가 미래에 설정한 식단 지침으로 삼을 것이다.
요구 사항
이 저장소는 다음 도구가 설치되어 있고 IAM 권한이 있어야 테라폼과 함께 사용할 수 있다고 가정합니다 (관리자가 가장 좋습니다).
This is not a free tier compatible setup and any costs incurred will be bared by you and you…
View on GitHub
github.com/ryanoolala/recipes에서 복제 레시피 라이브러리를 사용하면 본고에서 설정을 인용할 것입니다
Cloudwatch IAM 역할
우선 클라우드워치에서 지표를 얻을 수 있는 권한을 가진 IAM 캐릭터를 만듭니다. 속도를 높이기 위해서는terraform을 사용하여 캐릭터를 설정합니다. 제 경우terragrunt를 사용하지만, 입력을 terraform 모듈 변수 입력으로 쉽게 복사할 수 있습니다.
module "cloudwatch-iam" {
source = "git::https://gitlab.com/govtechsingapore/gdsace/terraform-modules/grafana-cloudwatch-iam?ref=1.0.0"
allow_role_arn = arn:aws:iam::{{ACCOUNT_ID}}:role/ryan20200826021839068100000001
name = "ryan"
}
grafana cloudwatch iam 모듈은 EKS ARN 역할을 가지고 있습니다. 이것은 저희 Grafana 응용 프로그램이 노드에서 실행되고 이cloudwatch 역할을 맡으며 AWS API에서 지표를 추출할 수 있는 권한을 부여받았기 때문입니다.이것은 제공했다grafana_role_arn = arn:aws:iam::{{ACCOUNT_ID}}:role/grafana-cloudwatch-role-ryan
그라파나
흥미로운 것은 우리가helm3를 이용하여 Grafana를 배치할 것이다.
kubectl
컨텍스트를 이 서비스를 호스팅할 클러스터로 설정하고 IAM 역할을 방금 작성한 동일한 AWS 계정에 속합니다.우리는 데이터 원본을 만듭니다.다음 값의yaml 파일을 사용하려면 위의 출력으로 바꾸십시오
assumeRoleArn
.# file://datasource.yaml
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Cloudwatch
type: cloudwatch
isDefault: true
jsonData:
authType: arn
assumeRoleArn: "arn:aws:iam::{{ACCOUNT_ID}}:role/grafana-cloudwatch-role-ryan"
defaultRegion: "ap-southeast-1"
customMetricsNamespaces: ""
version: 1
# <bool> allow users to edit datasources from the UI.
editable: true
이것은grafana가 클라우드 워치 데이터 원본에서 시작할 수 있도록 합니다. 이 데이터 원본은 assumeRoleArn
을 사용하여 클라우드 워치 지표를 검색하도록 설정합니다.Grafana 설치
$ helm install grafana stable/grafana -f https://github.com/ryanoolala/recipes/blob/master/metrics/grafana/5min/k8s/grafana/values.yaml -f datasource.yaml --create-namespace --namespace grafana
또는 저장소를 복제한 경우 datasource.yaml
를 ./metrics/grafana/5min/k8s/grafana
에 넣고 실행하십시오.$ cd ./metrics/grafana/5min/k8s/grafana && make install.datasource
몇 분 후, 너는 그라파나 달리기를 할 것이다$ kubectl get pod -n grafana
NAME READY STATUS RESTARTS AGE
grafana-5c58b66f46-9dt2h 2/2 Running 0 84s
대시보드에 액세스하려면 실행$ kubectl port-forward svc/grafana -n grafana 8080:80
Forwarding from 127.0.0.1:8080 -> 3000
Forwarding from [::1]:8080 -> 3000
사용자 인터페이스 보여줘!
http://localhost:8080로 이동하면 Grafana UI가 표시됩니다.
이 대시보드를 어디에서 불러왔는지 알고 싶다면, grafana's dashboard site 에서 찾았고, 몇 가지를 선택한 다음 설정
values.yaml
을 통해 불러왔습니다.# https://github.com/ryanoolala/recipes/blob/master/metrics/grafana/5min/k8s/grafana/values.yaml#L364
dashboards:
default:
aws-ec2:
url: https://grafana.com/api/dashboards/617/revisions/4/download
aws-ebs:
url: https://grafana.com/api/dashboards/11268/revisions/2/download
aws-cloudwatch-logs:
url: https://grafana.com/api/dashboards/11266/revisions/1/download
aws-rds:
url: https://grafana.com/api/dashboards/11264/revisions/2/download
aws-api-gateway:
url: https://grafana.com/api/dashboards/1516/revisions/10/download
aws-route-53:
url: https://grafana.com/api/dashboards/11154/revisions/4/download
aws-ses:
url: https://grafana.com/api/dashboards/1519/revisions/4/download
aws-sqs:
url: https://grafana.com/api/dashboards/584/revisions/5/download
다음은 무엇입니까?
우리가 방금 배치한 내용은 약간의 제한이 있다. 비록 UI는 편집을 허용하고 심지어 새로운 대시보드를 추가할 수 있지만, 우리가 변경한 것은 영구적이지 않다. 왜냐하면 우리는 이 설정에 어떠한 영구적인 저장도 제공하지 않았기 때문이다.더 잘하자!
10분 구축
변경 사항을 저장하기 위한 몇 가지 방법이 있습니다. 가장 간단한 방법은 블록 저장소(EBS) 볼륨을 실례에 추가하고 설정을 디스크에 저장하는 것입니다.그러나 EBS는 스토리지 드라이버가 아니기 때문에 가용성 영역과 EKS 노드에 걸쳐 Grafana 인스턴스를 확장할 수 없습니다.내가 보기에 다음 가장 간단한 해결 방안은 AWS 관계 데이터베이스 서비스(RDS)를 사용하는 것이다. 이것은 완전히 관리되고 자동 백업과 고가용성(HA)을 가지며 Grafana의 지구층이다.
뭐 공부 해요?
설치 프로그램
박사 후 RDS
이 예에서 우리는postgres를 사용할 것이다. 비록 Grafana도 MySQL과 sqlite3를 지원하지만.주제에서 벗어나지 않기 위해서 데이터베이스 설정 설명을 생략하겠습니다. 만약에 제가 테라포밍 배치 실례를 어떻게 사용하는지 알고 싶으면 제 README 에서 더 많은 내용을 읽을 수 있습니다.
테라포름에 익숙하지 않으면 좀 복잡할 수 있습니다. 따라서 AWS 컨트롤러를 사용하여postgres를 만드는 것이 좋습니다. 10분 안에 완성할 수 있도록 더 쉽고 더 빠를 것입니다.
그라파나
현재postgres 데이터베이스 설정이 있습니다. 이 대상에 연결하는 데 필요한 증거를 포함하기 위해kubernetes 비밀 대상을 만들 것입니다.
$ cd ./metrics/grafana/10min/k8s/grafana
$ make secret
Removing old grafana-db-connection...
secret "grafana-db-connection" deleted
Postgres Host?:
mydbhost.com
Postgres Username?:
myuser
Postgres Password? (keys will not show up in the terminal):
Attempting to create secret 'grafana-db-connection'...
secret/grafana-db-connection created
이 비밀ReadWriteMany
은 우리grafana-db-connection
에서 사용될 것이며, 환경values.yaml
을 GF_DATABASE_TYPE
로 설정할 것이다.# https://github.com/ryanoolala/recipes/blob/cf7839e9e919735c72fee77450d891f8ee13ef17/metrics/grafana/10min/k8s/grafana/values.yaml#L268
## Extra environment variables that will be pass onto deployment pods
env:
GF_DATABASE_TYPE: "postgres"
# https://github.com/ryanoolala/recipes/blob/cf7839e9e919735c72fee77450d891f8ee13ef17/metrics/grafana/10min/k8s/grafana/values.yaml#L282
envFromSecret: "grafana-db-connection"
이 변경 사항을 완료하면 현재 배포된 Grafana를 업그레이드하거나, 새로운 설정부터$ helm install grafana stable/grafana -f https://github.com/ryanoolala/recipes/blob/master/metrics/grafana/10min/k8s/grafana/values.yaml --create-namespace --namespace grafana
또는 저장소가 복제된 경우 실행$ cd ./metrics/grafana/10min/k8s/grafana && make install
이 새 Grafana는 시스템을 변경하고 데이터 원본과 대시보드를 추가하며 데이터베이스에 저장할 수 있습니다. 그러면 실례적인 재시작과 재시작을 걱정할 필요가 없습니다.로그인 중
편집하려면 관리자 사용자를 사용하여 로그인해야 합니다. 설치 과정에서 postgres
의 다음 내용을 수정하여 기본 사용자 이름과 암호를 설정할 수 있습니다.
# Administrator credentials when not using an existing secret (see below)
adminUser: admin
adminPassword: strongpassword
Grafana가 시작되면 UI에서 암호를 변경할 수 있습니다. 새 암호는 데이터베이스에 저장되어 나중에 로그인 세션에 사용할 수 있습니다.
끝내다
grafanahelm 그래프를 어떻게 사용하는지 알고 클라우드 워치 도량 계기판을 표시하도록 설정할 수 있기를 바랍니다.
다음 부분에서 저는 프로메테우스 배치에 대한 더 많은 정보를 공유할 것입니다. 이것은ec2 노드의 CPU/RAM 사용 상황과POD를 포함하여kubernetes 집단 내의 더 많은 견해를 제공할 것입니다.이 정보들은 우리가 배치된 응용 프로그램을 더욱 잘 이해하는 데 도움을 줄 것이다.
Reference
이 문제에 관하여(grafana와 cloudwatch metric 계기판 배치 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcf/getting-started-in-deploying-grafana-and-prometheus-2ac3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# Administrator credentials when not using an existing secret (see below)
adminUser: admin
adminPassword: strongpassword
grafanahelm 그래프를 어떻게 사용하는지 알고 클라우드 워치 도량 계기판을 표시하도록 설정할 수 있기를 바랍니다.
다음 부분에서 저는 프로메테우스 배치에 대한 더 많은 정보를 공유할 것입니다. 이것은ec2 노드의 CPU/RAM 사용 상황과POD를 포함하여kubernetes 집단 내의 더 많은 견해를 제공할 것입니다.이 정보들은 우리가 배치된 응용 프로그램을 더욱 잘 이해하는 데 도움을 줄 것이다.
Reference
이 문제에 관하여(grafana와 cloudwatch metric 계기판 배치 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcf/getting-started-in-deploying-grafana-and-prometheus-2ac3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)