Grafana 操作マニュアル

6 分で読了
このページの目次

data source・query・panel・alert を分け、設定元を特定する。UI 編集は provisioning file への書戻しとは限らない。内部 DB 表を object 管理 API として使わない。

やりたいこと参照先
panel に data がないquery から表示まで
変更が上書きされる設定の管理主体
alert 通知がない評価と通知の連鎖
backup・upgrade復旧対象の範囲

query の結果を確認してから panel を見る

サービスと DB の状態

# プロセスと起動結果を確認する
systemctl status grafana-server.service --no-pager

導入方式の unit 名に置き換える。コンテナでは対応するログを見る。

# 今回の起動後の直近エラーを読む
journalctl -u grafana-server.service -b -n 100 --no-pager
# health 応答と版を確認する
curl -fsS http://127.0.0.1:3000/api/health | jq .

database の状態を読む。HTTP 成功だけでデータソースの成功とは言えない。接続拒否は入口、401/403 は認証を調べる。

UID を特定してからクエリを再現する

# この shell で読取権限の service account token を入力する
read -r -s GRAFANA_TOKEN

入力は非表示で Enter で終える。対象 organization のアカウントを使い、以下でこの変数を参照する。

# 現 organization のデータソースを列挙する
curl -fsS -H "Authorization: Bearer ${GRAFANA_TOKEN:?Load a read-scoped token}" \
  http://127.0.0.1:3000/api/datasources | jq ".[] | {uid,name,type,url}"

panel の UID と照合する。空なら削除だけでなく organization・権限も確認する。

# 確認済み UID の plugin health を要求する
curl -fsS -H "Authorization: Bearer ${GRAFANA_TOKEN:?Load a read-scoped token}" \
  http://127.0.0.1:3000/api/datasources/uid/prometheus-main/health | jq .

UID を置き換える。plugin の対応が必要で、404 は UID と API 対応を切り分ける。その後 Explore で式・時間範囲・変数を再現する。

# API 確認後に token 変数を消す
unset GRAFANA_TOKEN

service・port と組織・権限を合わせる。health は全 data source の検査ではない。通常要求元は Grafana server なので browser の到達性とは別。

箇所根拠次の確認
data sourceUID, URL, auth, TLShealth と server→source 経路
queryExplore / Query inspectorraw 応答・時刻・範囲・変数・step
panelTransformations / field configdata があれば変換・型・単位・表示設定

UID は参照識別、file は設定元

apiVersion: 1
datasources:
  - name: Prometheus
    uid: prometheus-main
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    editable: false

実 provisioning/datasources 配下へ置き、Grafana から名前解決できる URL を使う。参照 UID を安定させる。datasource は起動時読込で dashboard の polling と同一ではない。対応 API reload または計画再起動を使う。

provisioning の一方向管理 version 管理 file provisioning 同期 Grafana object / UID panel が source 参照

allowUiUpdates は UI 保存を許せても元 file に戻さず、次の source 更新で上書きされ得る。export を審査して元へ反映する。削除も管理元と対応 option で行い内部 resource 表を消さない。

provisioning 配備後に実オブジェクトを確認する

# 起動引数・実行主体・設定元を確認する
systemctl cat grafana-server.service

--config・GF_PATHS_PROVISIONING・mount を確認し、旧 file を保存して YAML を編集する。

# 予定した保守時間に起動時設定を再読込する
sudo systemctl restart grafana-server.service

instance が中断し評価へ影響し得る。複数台は配備方針に従う。Admin API reload との連続操作ではない。

# provisioning の読込エラーを見る
journalctl -u grafana-server.service --since "5 minutes ago" --no-pager

health・UID を再確認して実 panel を開く。失敗時は元 file を戻して同じ手順で読込む。

Firing と通知の間に policy がある

段階確認
query/expressionrule の UID・期間・reduce/math。panel 変数とは区別
評価状態状態・継続条件・評価間隔・No Data/Error
通知経路label 一致・grouping timer・silence・mute 時間
配信contact point・template preview・外向通信・配信 log

silence は通常通知を抑制し評価は続く。No Data/Error は別 instance を生み得て値0とは違う。preview と log で確認し、contact point test は実送信と理解する。file 管理 alert は provisioning で更新する。

評価失敗と送信失敗を分ける

# 発生時刻付近の評価・通知ログを読む
journalctl -u grafana-server.service --since "30 minutes ago" --no-pager

rule UID・organization・時刻を UI と照合する。送信記録がなくてもログ水準による場合がある。

実 storage backend と設定を backup

版番号でなく設定から SQLite/PostgreSQL/MySQL を特定する。DB・設定・provisioning・plugin・復号 secret_key を保存し、独立復元で UID と alert を確認する。DB 手冊参照。binary 降格で移行済 DB が読めるとは限らない。

Grafana provisioning · Query inspector · Alerting · Backup