AWS EKS使用Helm部署Prometheus+Grafana

本文档介绍了如何在AWS的EKS集群中利用Helm来部署Prometheus和Grafana。首先部署Prometheus,通过端口转发访问其界面。接着配置Grafana,将其数据源设置为已部署的Prometheus,然后以LoadBalance模式安装Grafana,并查看其ELB URL及默认密码。

部署Prometheus

kubectl create namespace prometheus

helm install prometheus prometheus-community/prometheus \
    --namespace prometheus \
    --set alertmanager.persistentVolume.storageClass="gp2" \
    --set server.persistentVolume.storageClass="gp2"

启动端口转发

kubectl port-forward -n prometheus deploy/prometheus-server 8080:9090

访问Node节点的8080,即可打开Prometheus界面

部署Grafana

编写配置文件,引入前面安装的Prometheus作为数据源

mkdir ~/environment/grafana

cat << EoF > ~/environment/grafana/grafana.yaml
datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
    - name: Prometheus
      type: prometheus
      url: http://prometheus-server.prometheus.svc.cluster.local
      access: proxy
      isDefault: true
EoF

安装

kubectl create namespace grafana

helm install grafana grafana/grafana \
    --namespace grafana \
    --set persistence.storageClassName="gp2" \
    --set persistence.enabled=true \
    --set adminPassword='EKS!sAWSome' \
    --values ${HOME}/environment/grafana/grafana.yaml \
    --set service.type=LoadBalancer

在这里部署Grafana为LoadBalance模式,查看ELB URL

export ELB=$(kubectl get svc -n grafana grafana -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')

echo "http://$ELB"

查看默认的密码

kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
### 如何在 AWS EKS部署 PrometheusGrafana 实现监控 #### 准备环境 为了确保顺利部署,在开始之前需确认已安装并配置好 `kubectl` 及 Helm 客户端,并且拥有一个运行正常的 Amazon EKS 集群。此外,还需具备足够的权限来进行资源创建操作。 #### 创建命名空间 建议为 PrometheusGrafana 的组件单独划分一个新的命名空间以便管理和隔离其他应用: ```bash kubectl create namespace monitoring ``` #### 添加稳定仓库源 由于官方推荐使用 Helm 进行自动化部署,因此先要添加稳定的 Helm Chart 仓库: ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update ``` #### 使用 Helm 部署 Prometheus 执行如下命令可以基于默认设置快速完成 Prometheus Server 的安装: ```bash helm install prometheus prometheus-community/prometheus \ --set alertmanager.persistentVolume.storageClass="gp2",server.persistentVolume.storageClass="gp2" ``` 此过程会自动拉取所需镜像并在指定命名空间内启动相应 Pod[^4]。 #### 访问 Prometheus UI 对于本地测试而言,可以通过 kubectl 提供的端口转发功能轻松访问 Prometheus Web 界面: ```bash kubectl port-forward -n monitoring svc/prometheus-server 9090:80 ``` 打开浏览器输入 http://localhost:9090 即可浏览到 Prometheus 控制台页面。 #### 使用 Helm 部署 Grafana 紧接着继续利用 Helm 来简化 Grafana安装流程: ```bash helm install grafana prometheus-community/grafana \ --namespace monitoring \ --set persistence.enabled=true,persistence.storageClassName=gp2,service.type=LoadBalancer ``` 上述指令同样指定了持久化卷以及暴露外部 IP 地址的方式让 Grafana 更加易于访问[^1]。 #### 获取初始管理员密码 新装完成后可通过以下方式获取 Grafana 默认登录凭证: ```bash export POD_NAME=$(kubectl get pods --namespace monitoring -l "app.kubernetes.io/name=grafana" -o jsonpath="{.items[0].metadata.name}") kubectl exec $POD_NAME --namespace monitoring -- /bin/sh -c 'cat /etc/grafana/provisioning/dashboards/admin-password' ``` #### 设置数据源连接 进入 Grafana 后应当立即修改账户安全信息;随后前往“Configuration -> Data Sources”,新增一条指向同一网络内的 Prometheus 数据源记录,通常情况下 URL 应设为 `http://prometheus-server.monitoring.svc.cluster.local` 或者依据实际部署情况调整。 #### 测试与验证 最后一步就是构建一些基础仪表板来直观展示集群健康状况和其他重要性能指标了。可以从 Grafana 官方库中挑选合适的模板导入,也可以自定义开发满足特定需求的画面布局[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值