prometheus+grafanaで外からパソコンを見てみようのカバー画像
prometheus+grafanaで外からパソコンを見てみよう
2023/3/29
このエントリーをはてなブックマークに追加

おうちのクラスタを動かし始めてから久しいものの、監視周りがまだないという由々しき事態

先日fluentbitでログを取るようにはしたので今度はメトリクスをば見られるようにします。

grafana-timeboard.png
CPU limits commitment が普通に100%超えてるのはご愛敬
(Limits設定していないpodが多分ある)

今回は kube-prometheus-stack を使ってデプロイ周り整えました。

ingress-nginxのメトリクスも取るためにscrape_config周りのvaluesだけ追加しています

helmfileでのデプロイをしています

helmfile.yaml

repositories:
  - name: prometheus-community
    url: https://prometheus-community.github.io/helm-charts

releases:
  - name: kube-prometheus-stack
    namespace: prometheus
    chart: prometheus-community/kube-prometheus-stack
    version: 43.1.1
    values:
      - values.yaml

values.yaml

grafana:
  enabled: true
  defaultDashboardsTimezone: Asia/Tokyo
  adminPassword: changeme
  ingress:
    enabled: true
    ingressClassName: nginx
    annotations:
      cert-manager.io/cluster-issuer: "letsencrypt"
    hosts:
      - grafana.example.com
    path: /
    tls:
    - secretName: grafana-tls
      hosts:
        - grafana.example.com
prometheus:
  prometheusSpec:
    additionalScrapeConfigs:
    - job_name: 'ingress-nginx-endpoints'
      kubernetes_sd_configs:
      - role: pod
        namespaces:
          names:
          - ingress-nginx
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: true
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
        action: replace
        target_label: __scheme__
        regex: (https?)
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        target_label: __address__
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
      - source_labels: [__meta_kubernetes_service_name]
        regex: prometheus-server
        action: drop

snmpも取れるようにいい感じに設定できたら物理マシンのハードウェア周りの情報も出せるようにしたいところ
その辺もできたら アラート周りの設定してslackなりLINEなりで通知するようにしたい

(普段サーバーを車で1時間くらいのところにある空き家に置いてて何かあっても気付きにくいので)

prometheus+grafanaで外からパソコンを見てみよう - ねこの部屋