7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

KubernetesのCronJobをPrometheusとGrafanaを使って監視する

Last updated at Posted at 2018-03-11

普段からPrometheus + Grafanaで監視しているのですが、KubernetesのCronJobを監視できなくて困っていたのでできるようにしました。
インストールとかは省きます

環境

  • GKE: 1.9.2-gke.1
  • kube-state-metrics: v1.2.0
  • Prometheus: v1.8系
  • Grafana: 4.5系

Prometheusの設定

Prometheusのkube-state-metricsの値を取得するところで以下のように設定します。relabel_configsは長いので省略します。

    - job_name: 'kubernetes-pods'

      kubernetes_sd_configs:
      - role: pod

      relabel_configs:
        ...

      metric_relabel_configs:
      - source_labels: [exported_job]
        action: replace
        regex: ([a-z\-]+)-(\d+)
        replacement: $1
        target_label: exported_job_short

metric_relabel_configsで、kube-state-metricsのjobメトリックスの、jobラベルをexported_job_shortという名前でかえ、値を正規表現([a-z\-]+)-(\d+)で短縮された名前にしています。

kube-state-metricsのjob=<job-name>のjob-nameはcron-name-1520746800のような形ででてきます。Grafanaではこのcron-nameでまとめたいのでリネームしています。
source_labelsがexported_jobとなっているのはPrometheus側で、jobがすでにラベルとして使われて、exported_jobにリネームされているためです。

Grafanaの設定

Grafanaでは以下のメトリックスをグラフにします。

  1. 失敗したCronJobの個数
  2. CronJobの最大実行時間

以下みたいなのができあがります。

image.png

失敗したCronJobの個数の設定

image.png

CronJobの最大実行時間

image.png

以上で監視できるようになりました。
アラートも設定できます。

注意点

kubectl get jobsを実行するとジョブ履歴が見れると思いますが、failed jobは都度消さないと、「失敗したCronJobの個数」が減らないです。なんらかしらの方法でお掃除する必要があります。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?