在云原生环境中,监控系统的建设至关重要。通过实时监控容器化应用、服务网格和基础设施,企业可以快速发现并解决问题,确保系统的稳定性和性能。Prometheus 和 Grafana 是目前最受欢迎的开源监控解决方案,广泛应用于 Kubernetes 和其他云原生架构中。
在 Kubernetes 集群中安装 Prometheus Operator,可以简化 Prometheus 的部署和管理。以下是安装步骤:
helm repo add prometheus-operator https://github.com/prometheus-operator/helm-charts.git
helm repo update
helm install prometheus-operator prometheus-operator/prometheus-operator
创建自定义的 scrape job 配置文件(例如 my-scrape-job.yml),定义需要监控的目标和服务发现方式:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusJob
metadata:
name: my-scrape-job
spec:
scrapeInterval: 30s
jobs:
- jobName: my-job
scrape_configs:
- job_name: 'my-job'
metrics_path: '/metrics'
scheme: 'http'
static_configs:
- targets: ['my-service:8080']
应用配置文件:
kubectl apply -f my-scrape-job.yml
创建告警规则文件(例如 alerts.yml),定义需要监控的指标和阈值:
groups:
- name: my-alert-rules
rules:
- alert: HighCPUUsage
expr: max(rate(node_cpu_usage_seconds_total{job="node"}[5m])) > 0.8
for: 5m
labels:
severity: critical
annotations:
summary: High CPU usage detected
应用配置文件:
kubectl apply -f alerts.yml
使用 Helm 安装 Grafana:
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana
在 Grafana 中添加 Prometheus 作为数据源,配置如下:
使用 Grafana 的 Query Editor 创建自定义图表,例如监控 Kubernetes 节点的 CPU 使用率:
rate(node_cpu_usage_seconds_total{job="node"}[5m])
配置图表样式,添加到面板中,并保存为新的 Dashboard。
如果您希望进一步了解或试用相关技术,可以访问 https://www.dtstack.com/?src=bbs 申请试用。