glassonion1 / prometheus-redis-on-k8s-sample

Prometheus samples on k8s
MIT License
1 stars 0 forks source link

公開されてるようなredis+exporterをPrometheusOperatorを使ってメトリクス取得したい #1

Open vdi-kakui opened 3 years ago

vdi-kakui commented 3 years ago

お世話になっております。

こちらで公開していただいているredis+redis exporterを、 以下の記事で解説しているような、PrometheusOperatorを使って https://qiita.com/prodigy413/items/c0c2304e1bc28f644526

redis exporterからメトリクスを取得したいのですが、思うようにうまくいきません。 何が原因と考えられるでしょうか?

参考までにredisリソースの作成の流れを記述します。

PrometheusOperator導入はqiita通りに構築 https://qiita.com/prodigy413/items/c0c2304e1bc28f644526

作成したredisリソース


apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: redis
  selector:
    matchLabels:
      redis-app: redis
  replicas: 2
  template:
    metadata:
      labels:
        redis-app: redis
    spec:
      containers:
      - name: redis
        image: redis:5-alpine
        ports:
        - containerPort: 6379
        volumeMounts:
        - mountPath: /config
          name: config
        - mountPath: /redis-data
          name: data
      - name: redis-exporter
        image: oliver006/redis_exporter:latest
        ports:
        - containerPort: 9121
        args:
          - -redis.scrape-uri=http://localhost:9121/metrics
      volumes:
      - configMap:
          name: redis-config
        name: config
      - emptyDir:
        name: data
---
kind: Service
apiVersion: v1
metadata:
  name: redis
spec:
  selector:
    app: redis
  ports:
  - name: redis
    protocol: TCP
    port: 6379
    targetPort: 6379
  - name: redis-exporter
    protocol: TCP
    port: 9121
    targetPort: 9121
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: redis-servicemonitor
  namespace: monitoring
  labels:
    app: redis
    release: prometheus
spec:
  endpoints:
  - port: redis-exporter
  namespaceSelector:
    matchNames:
    - default
  selector:
    matchLabels:
      app: redis # Serviceのラベル
glassonion1 commented 3 years ago

こちらのサンプルはPrometheusOperator向けに構築したものではなくあえてOperatorを使わずに構築することを目的に作成したサンプルです。 一口にKubernetesといってもお使いのマネージドサービスGKE/EKS/AKSによって設定すべき項目が変わります。

Operatorは便利ですが詳細が隠れてしまうのでKubernetesに慣れていないのであればあまりおすすめしません。

GKE限定ですがPrometheusOperatorを使わず、PrometheusからRedisを監視する方法が以下の記事に書かれていますので参考にしてみてください。 https://glassonion.hatenablog.com/entry/2020/04/21/220351 https://glassonion.hatenablog.com/entry/2020/05/10/143241