prometheus搭建
时间: 2023-08-29 20:11:07 浏览: 95
prometheus-setup
Prometheus 是一款开源的监控系统,用于记录和查询运行中的服务的度量数据。以下是在 Kubernetes 上搭建 Prometheus 的简单步骤:
1. 安装 Prometheus Operator
Prometheus Operator 是一个管理 Prometheus 集群的 Kubernetes Operator,它可以通过 Kubernetes 自定义资源定义 (CRD) 来管理 Prometheus 实例、Prometheus 配置、Alertmanager 实例等资源。运行以下命令以安装 Prometheus Operator:
```
kubectl create namespace monitoring
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/bundle.yaml
```
2. 创建 Prometheus 实例
使用 Prometheus Operator 创建 Prometheus 实例。可以通过以下 YAML 文件创建 Prometheus 实例:
```yaml
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: prometheus
namespace: monitoring
spec:
replicas: 1
serviceAccountName: prometheus
serviceMonitorSelector:
matchLabels:
app: example-app
resources:
requests:
memory: 400Mi
ruleSelector:
matchLabels:
prometheus: prometheus
storageSpec:
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
```
该 YAML 文件中指定了 Prometheus 实例的名称、命名空间、副本数、服务帐号、资源限制、存储卷大小等信息。此外,还指定了 Prometheus 实例将监视哪些 Service,这里是所有 label 为 `app=example-app` 的 Service。
运行以下命令以创建 Prometheus 实例:
```
kubectl apply -f <prometheus_yaml_file>.yaml
```
3. 创建 Service 和 Ingress
为 Prometheus 实例创建 Kubernetes Service 和 Ingress,以便在集群外部访问 Prometheus Web 界面。可以通过以下 YAML 文件创建 Service 和 Ingress:
```yaml
apiVersion: v1
kind: Service
metadata:
name: prometheus
namespace: monitoring
labels:
app: prometheus
spec:
type: ClusterIP
ports:
- name: web
port: 9090
targetPort: 9090
protocol: TCP
selector:
app: prometheus
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: prometheus
namespace: monitoring
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: prometheus.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: prometheus
port:
name: web
```
该 YAML 文件中指定了 Service 和 Ingress 的名称、命名空间、端口号、选择器和路由规则。此外,还指定了 Ingress 的主机名和路径规则。
运行以下命令以创建 Service 和 Ingress:
```
kubectl apply -f <service_and_ingress_yaml_file>.yaml
```
4. 访问 Prometheus
现在,可以通过访问 `prometheus.example.com` 来访问 Prometheus Web 界面,其中 `prometheus.example.com` 是在 Ingress 中指定的主机名。在 Prometheus Web 界面中,可以查看各种指标和监控数据,也可以配置警报规则和告警接收者。
以上是在 Kubernetes 上搭建 Prometheus 的基本步骤,你可以根据你的实际需求进行定制化配置。
阅读全文