-
aws grafana, prometheus 구성_6카테고리 없음 2025. 5. 26. 19:51
Elasticache 모니터링
RDS 와 동일하다.
기존에 받았던 cloudwatch_exporter 의 examples/ElastiCache.yml 사용 cp -r a_account_ec2/ a_acount_cache cd a_acount_cache cp examples/ElastiCache.yml ./config.yml
cpu 와 free memory 만 모니터링
region: us-west-2 role_arn: arn:aws:iam::acount_id:role/cloudwatch_exporter_role metrics: - aws_dimensions: - CacheNodeId - CacheClusterId aws_metric_name: CPUUtilization aws_namespace: AWS/ElastiCache aws_statistics: - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: CPUCreditBalance # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average - aws_dimensions: - CacheNodeId - CacheClusterId aws_metric_name: FreeableMemory aws_namespace: AWS/ElastiCache aws_statistics: - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: NetworkBytesIn # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: NetworkBytesOut # aws_metric_name: NetworkBytesOut # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: SwapUsage # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: CacheHits # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: CacheMisses # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: CurrConnections # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: NewConnections # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: GetTypeCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: SetTypeCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: EngineCPUUtilization # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: BytesUsedForCache # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: HashBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: HyperLogLogBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: KeyBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: ListBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: SetBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: SetTypeCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: SortedSetBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: StringBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: StreamBasedCmds # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: CurrItems # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: ActiveDefragHits # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: Evictions # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: Reclaimed # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: SaveInProgress # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: ReplicationLag # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average #- aws_dimensions: # - CacheNodeId # - CacheClusterId # aws_metric_name: ReplicationBytes # aws_namespace: AWS/ElastiCache # aws_statistics: # - Average
Dockerfile
FROM eclipse-temurin:21-jdk-noble as builder SHELL ["/bin/bash", "-xe", "-o", "pipefail", "-c"] ARG MAVEN_VERSION=3.8.5 ARG MAVEN_SHA512=89ab8ece99292476447ef6a6800d9842bbb60787b9b8a45c103aa61d2f205a971d8c3ddfb8b03e514455b4173602bd015e82958c0b3ddc1728a57126f773c743 ADD https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz /opt/maven.tar.gz RUN mkdir -p /opt/maven \ && echo "${MAVEN_SHA512} /opt/maven.tar.gz" | sha512sum -c \ && tar -x --strip-components=1 -C /opt/maven -f /opt/maven.tar.gz ENV PATH /opt/maven/bin:${PATH} WORKDIR /cloudwatch_exporter COPY . /cloudwatch_exporter RUN mvn package \ && mv target/cloudwatch_exporter-*-with-dependencies.jar /cloudwatch_exporter.jar FROM eclipse-temurin:21-jre-noble as runner LABEL maintainer="The Prometheus Authors <prometheus-developers@googlegroups.com>" EXPOSE 9106 WORKDIR / RUN mkdir /config ADD config.yml /config/ COPY --from=builder /cloudwatch_exporter.jar /cloudwatch_exporter.jar ENTRYPOINT [ "java", "-jar", "/cloudwatch_exporter.jar", "9106"] CMD ["/config/config.yml"]
docker build -t a_acount_cache:v1 . docker run -d -p 9108:9106 --name a_acount_cache a_acount_cache:v1 AWS 콘솔 모니터링 서버의 보안 그룹에서 9108 포트 오픈 웹 모니터링서버 ip:9108
문제없이 열리면 완료.
이제 prometheus 수정
global: scrape_interval: 1m evaluation_interval: 1m scrape_configs: - job_name: 'a_acount_ec2' static_configs: - targets: ['172.17.0.2:9106'] metric_relabel_configs: - source_labels: [tag_Name] target_label: instance_name - job_name: 'a_acount_rds' static_configs: - targets: ['172.17.0.5:9106'] - job_name: 'a_acount_cache' static_configs: - targets: ['172.17.0.6:9106'] 1. 컨테이너에 직접 접속해서 수정 docker exec -it -u root prometheus /bin/sh 2. prometheus.yml 수정 후 이미지 - 새 컨테이너 구동 예시) vi /home/ec2-user/prometheus/prometheus.yml docker build -t prometheus:v2 . docker run -d -p 9090:9090 --name prometheus prometheus:v2 1, 2 둘 중 하나 선택 저장 후 docker restart prometheus
prometheus 웹 새로고침 후
위와 같이 되면 완료.
grafana 로 이동
이전과 동일하게 dashboard 복붙 후 Edit
code
aws_elasticache_cpuutilization_average{cache_cluster_id=~".*(redis).*"} Legend 는 {{cache_cluster_id}} 변경