自作アプリ、オブザーバビリティへの道② Node Exporter実装

スポンサーリンク
エラー

はじめに

自作アプリをおうちk8sで動かしているのですが、実際におうちk8sを動かしているのはラズベリーパイ上なので、ラズベリーパイのパフォーマンス状態はきになります。

そこで、今回はNode Exporterを実装することで、ラズベリーパイのパフォーマンス状態をGrafanaに表示するところまで確認してみます。

各種実装

grafana

grafana周り設定をします。

以下のようにファイルを新たに追加しました。

grafana/
├── charts
│   └── grafana-dashboards
│       ├── Chart.yaml
│       ├── dashboards
│       │   ├── node-metrics.json ## ★ここにファイル追加
│       │   ・・・
│       └── templates
│           ├── dashboard-node-metrics.yaml ## ★ここにファイル追加
│           ・・・
├── grafana-value.yaml
├── helmfile.yaml
├── loki-value.yaml
└── promtail-values.yaml

dashboard-node-metrics.yamlは以下のように記載します。

apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-dashboard-node-metrics
  labels:
    grafana_dashboard: "1"
data:
  node-metrics.json: |
{{ .Files.Get "dashboards/node-metrics.json" | nindent 4 }}

node-metrics.jsonをConfigMap の data.node-metrics.json として埋め込んでいます。

prometheusディレクトリを作成し、以下の2つのファイルを配置しています。

├── prometheus
    ├── helmfile.yaml
    └── prometheus.yaml

helmfile.yamlにprometheus-communityの記載をします。

helmfile.yamlの中身は以下のようになります。

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

releases:
  - name: prometheus
    namespace: monitoring
    chart: prometheus-community/prometheus
    values:
      - ./prometheus.yaml

prometheus.yamlの中身は以下のようになります。

alertmanager:
  enabled: false
kube-state-metrics:
  enabled: false
prometheus-pushgateway:
  enabled: false
  • alertmanager.enabled: false
    • 現状ではAlertmanagerを作らない設定にしています。
    • AlertmanagerはメールやSlackなどへの通知などをしてくれます。
  • kube-state-metrics.enabled: false
    • 現状ではkube-state-metricsを作らない設定にしています。
    • kube-state-metricsはDeployment、Node、Job など Kubernetes オブジェクトの状態をメトリクス化してくれます。
  • prometheus-pushgateway.enabled: false
    • 現状ではPushgatewayを作らない設定にしています。
    • Pushgatewayはバッチ処理などがPrometheusにpullされる代わりに、push(送信)されたメトリクスを一時的に置いておくサーバーです。

今回はとりあえず、Node exporterが動くところまでの検証までなので、ここら辺の検証はそのうち実施したいと思っています。

victoriametrics関連の追記

vmagent-values.yamlに以下のハイライトのところを追加で記載します。

config:
  global:
    scrape_interval: 30s
  scrape_configs:
・・・【略】・・・
  - job_name: node-exporter
    metrics_path: /metrics
    static_configs:
    - targets:
      - prometheus-prometheus-node-exporter.monitoring.svc.cluster.local:9100

dashboardで確認

Grananaのdashboadで確認すると、以下のようにNode Exporterから送られた、CPU使用量、メモリ使用量、Load Averageが確認できました。

最後に

今回は、ラズパイの負荷状況を可視化することができました。

今度、Alartmanagerや他の設定もしておきます。

タイトルとURLをコピーしました