やりたいこと
- GrafanaのAPIを使う
環境
- Grafana v11.6.0 (Podmanコンテナ上で動作)
GrafanaのAPIについて
- 過去のバージョンではGrafana上で直接APIトークンを作成できたが、現在のバージョンではサービスアカウントにてキーを発行する方式に変更になったみたいです。
- https://grafana.com/docs/grafana/latest/administration/service-accounts/
APIトークン(サービストークンの取得)
- Grafanaの左ペインから「Administration」>「Users and access」>「Service accounts」を選択
- 「Add service account」を選択
- 「Display name」にアカウント名を入れる。Roleは今後のAPIでダッシュボードの編集権限などを渡すことも考えAdminを選択
- 「Add service account token」を選択
- 「Display name」に名前を入れる。例えば、このトークンを使用するシステム名や利用用途などを入れると良さそう
今回はトークンの有効期限を設けないので「No expiration」を選択
最後に「Generate token」を選択
- Token欄に実際のトークンが表示されるためメモする★重要★
動作チェック
- grafanaと同じネットワークに所属しているRHELのマシンからCurlコマンドで確認
- JSON形式でのレスポンスの視認性を良くするためにJqをインストール済み
- curlコマンドにパイプでjqコマンドを実行
API動作チェック
- API機能自体は動作してそう
[hoge@linux ]$ curl http://192.168.200.207:3000/api/health | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 101 100 101 0 0 14428 0 --:--:-- --:--:-- --:--:-- 14428
{
"database": "ok",
"version": "11.6.0",
"commit": "d2fdff9ee4d75c74bfd3a97c18a0b8e4d029f06e"
}
ダッシュボード一覧取得
- 良さそう!
- あらかじめGrafanaには「zabbix」という名のダッシュボードを用意
- ★サービスアカウントトークン★は先程メモしたもの
[hoge@linux]$ curl -H "Authorization: Bearer ★サービスアカウント トークン★" http://★Grafanaアクセス先★/api/search | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 197 100 197 0 0 2525 0 --:--:-- --:--:-- --:--:-- 2525
[
{
"id": 1,
"uid": "deilsuc2d3hfkc",
"orgId": 1,
"title": "zabbix",
"uri": "db/zabbix",
"url": "/d/deilsuc2d3hfkc/zabbix",
"slug": "",
"type": "dash-db",
"tags": [],
"isStarred": false,
"sortMeta": 0,
"isDeleted": false
}
]
- GrafanaのAPIをまずは使ってみる第一歩目はクリア
- 今後はいろいろなAPIを見つつGrafanaを弄っていこうかと思います