Amazon Managed Prometheus의 정보를 표시하는 방법은 무엇입니까?
그러나 현재 데이터, 규칙, 알람을 확인할 수 있는 예쁜 인터페이스가 없습니다... 그래서 여기에 옵니다Prom-UI!
무도회
Prom-UI는 Prometheus의 웹 인터페이스이지만 독립형 모드에서 실행할 수 있도록 추출되었으며 데이터를 검색할 위치를 정의할 수 있는 구성이 있습니다!
사용 방법 ?
첫째, Prom-UI는 AWS에 연결할 수 없으므로 AWS에서 약간의 설정이 필요하고 다른 도구를 사용하여 작동합니다.
1 - AWS에서 설정
(이 경우 이미 AMP 설정이 있고 작업 공간이 정의되어 있습니다.)
AWS에서는 AMP의 데이터에 액세스할 수 있도록 IAM 역할을 정의해야 합니다.
Account Number
, region
, OpenID conect ID
, namespace
& service account name
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<Account Number>:oidc-provider/oidc.eks.<region>.amazonaws.com/id/<OpenID Connect ID>"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.<region>.amazonaws.com/id/<OpenID Connect ID>:sub": "system:serviceaccount:<namespace>:<service account name>"
}
}
}
]
}
이 경우 Prom-UI 앱은 EKS 클러스터에 배포됩니다.
OpenID Connect ID
는 AWS EKS 콘솔의 필드OpenID Connect provider URL
에서 검색할 수 있습니다.{
"Statement": [
{
"Action": [
"aps:ListRules",
"aps:ListAlertManagerAlerts",
"aps:ListTagsForResource",
"aps:GetLabels",
"aps:ListRuleGroupsNamespaces",
"aps:GetAlertManagerStatus",
"aps:GetAlertManagerSilence",
"aps:ListAlertManagerAlertGroups",
"aps:DescribeAlertManagerDefinition",
"aps:QueryMetrics",
"aps:DescribeRuleGroupsNamespace",
"aps:GetMetricMetadata",
"aps:DescribeWorkspace",
"aps:ListAlerts",
"aps:DescribeLoggingConfiguration",
"aps:ListAlertManagerSilences",
"aps:ListWorkspaces",
"aps:GetSeries",
"aps:ListAlertManagerReceivers"
],
"Effect": "Allow",
"Resource": "*",
"Sid": "VisualEditor0"
}
],
"Version": "2012-10-17"
}
2 - Kubernetes에서 설정
이제 AWS에서 모든 것이 준비되었으므로 모든 것이 작동하도록 Kubernetes에서 항목을 설정할 수 있습니다!
서비스 계정
다음 템플릿을 사용하여 서비스 계정을 생성합니다. 여기서
arn
를 생성된 역할의 ARN으로, service account name
및 namespace
를 역할을 생성하는 동안 사용한 값으로 바꿔야 합니다.apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
eks.amazonaws.com/role-arn: <arn>
name: <service account name>
namespace: <namespace>
전개
배포의 경우 교체해야 하는 다음 배포 구성을 사용할 수 있습니다.
deployment name
namespace
Workspace UUID
- AMP 작업공간의 UUIDservice account name
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment name>
namespace: <namespace>
spec:
replicas: 1
selector:
matchLabels:
app: prom-ui
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: prom-ui
spec:
containers:
- env:
- name: PROMETHEUS_SRC_API
value: http://localhost:8005/workspaces/ws-<workspace UUID>
image: adaendraa/prom-ui:1.0.2
livenessProbe:
failureThreshold: 6
httpGet:
path: /health-check
port: http
scheme: HTTP
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 3
name: rules-ui
ports:
- containerPort: 3000
name: http
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /health-check
port: http
scheme: HTTP
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 3
- args:
- --name
- aps
- --region
- <region>
- --host
- aps-workspaces.us-east-1.amazonaws.com
- --port
- :8005
image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0
imagePullPolicy: IfNotPresent
name: aws
ports:
- containerPort: 8005
name: aws-sigv4-proxy
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
serviceAccount: <service account name>
serviceAccountName: <service account name>
배포는 매우 간단하며 2개의 컨테이너가 포함된 배포가 있습니다.
aws : AWS와 통신하는 데 도움이 되는 AWS sigV4 컨테이너
prom-ui : AWS Sig V4 컨테이너를 통해 AMP에서 데이터를 검색하기 위해
http://localhost:8005/workspaces/ws-<workspace UUID>
를 가리키는 웹 UI 앱입니다. 그런 다음 제대로 사용할 수 있도록 이 배포를 노출해야 합니다(상황에 따라 수행할 수 있는 방법이 많기 때문에 이에 대해서는 언급하지 않겠습니다).
모든 것이 올바른지 확인하려면
kubectl port-forward
를 사용할 수 있습니다.그것이 당신을 도울 수 있기를 바랍니다! 🍺
Reference
이 문제에 관하여(Amazon Managed Prometheus의 정보를 표시하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mxglt/how-to-display-informations-from-amazon-managed-prometheus--17co텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)