こんにちは。サイオステクノロジー OSS サポート担当 山本 です。
以前、Prometheus™ の記事上で「Prometheus を可視化するならとりあえず Grafana」と書いていたかと思いますが、今回はその Grafana についてです。
■Grafana って?
Grafana は、非常に雑な言い方をすると、他のツールなどで収集されたデータを基に、グラフ等を作成したり複数の情報を1つの画面に纏めたダッシュボードなどを作成することのできるツールです。一定の条件を満たしていれば MySQL 等の一般的な RDB のデータを元にすることも可能なので、作成したアプリケーションのデータを元にグラフを描くこともできるはずです。、
「…え?グラフを描くだけなの?」と思った方もいるかもしれませんが、概ねその通りと考えて差し支えない (はず) です。しかし、グラフによって「視覚的にわかるようにする」というのは、非常に強力です。公式ページ (https://grafana.com/grafana) でいくつか動画が公開されていますので、試しに「もしこれらを数値のみで観測したならば…」と想像しながら見てみてください。
さて、Grafana を動作させるには先述の機能を担う Grafana の本体と、元となるデータを提供するデータソースが必要です。
データソースは Grafana が提供するものではなく、データを収集する機能などを持つ別のツールです。
例えば、以下のようなツールが挙げられます。
Azure Moniter、CloudWatch、Elasticsearch、Graphite、InfluxDB、Loki、Prometheus、Stackdriver…などなど
また、ユーザー情報やダッシュボードの情報などを保管するための DB (デフォルトの sqlite3 を使用する場合は、追加インストール等は不要) も必要となります。
今回は CentOS 上へ Grafana のインストールをして、以前に紹介した prometheus のグラフを作成するところまでやってみたいと思います。
■Grafana のインストール
それでは早速 Grafana をインストール…する前に、Grafana で描画するためのデータを集める設定をしておきましょう。
grafana のインストール作業の前に用意しておけば、grafana をインストールしている間に描画用のデータが蓄積できていい感じなはずです。
今回の例では prometheus のデータを使用するため、prometheus をインストールしておきます。
インストール方法につきましては、以前の投稿で案内していますので、そちらを参照してください。
prometheus の設定が済んだら、grafana をインストールしていきましょう。
インストールガイドも便利ですが、このページ上のバージョンは最新のものではないことがあるようなので、以下のダウンロードページから最新版のインストール手順は確認してください。
https://grafana.com/grafana/download
例えば、この記事の公開時点なら以下の2コマンドでインストールできます。簡単ですね。
wget https://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm sudo yum localinstall grafana-6.2.5-1.x86_64.rpm
インストール完了後、以下のコマンドを実行すると grafana を起動できます。
sudo systemctl start grafana-server
設定ファイル・設定項目等は色々ありますが、特に設定を行わなくても動くはずなので、今回はそのまま起動します。
設定について確認したい場合は、公式ドキュメント を参照し、必要に応じて変更を行なってください。
■Grafana で Prometheus のデータを描画する
Grafana を無事動作させることができたら、続いて Prometheus の監視データを描画するまでの手順を確認していきましょう。
Grafana の Web インターフェースには、デフォルトでは以下のURLからアクセスできます。
最初にアクセスした場合、ログインページに転送されます。
(URL) : https://<IPアドレス or サーバー名>:3000
デフォルトアカウントのユーザー名/パスワードは「admin / admin」となっています。
このデフォルトアカウントの「admin / admin」でログインすると即座にパスワードの変更を求められますが、忘れずに変更しておきましょう。
ログインすると以下のようなホーム画面が表示されるかと思います。
基本的にはこの画面の中央に表示されている手順に従って設定していけば Grafana は使いこなすことができると思います。(この記事は手順の途中の「ダッシュボードの作成」までしか扱いません)
ホーム画面に従って、まずは「描画する元データ」を指定するデータソースを設定しましょう。
データソースの設定は「Configuration – Data Sources」から行います。
データソース設定画面ではまず自分の使いたいデータソースを選択します。デフォルトで用意されているものもあればプラグインとして提供されているものもありますので、使用するデータソースに応じて対応する項目を探しましょう。
今回データソースとして使用する prometheus はデフォルトで選択できるようになっています。
使用したいデータソースを選択すると、そのデータソースの詳細を設定する画面に移ります。必要な項目を設定して画面下部の「Save&Test」 ボタンを押下すれば、データソースの登録完了です。
例えば、今回の prometheus では以下の項目を設定します。(prometheus 側の設定次第では他の項目の設定も必要になる可能性があります。)
URL:(prometheus が動作している URL)
無事疎通が確認できれば、「Data souerce is working」と表示されて設定完了です。
これが表示されていない場合はまだ Grafana からこのデータソースは使用できない状態です。この画面での設定が間違っているか、連携先のツールに何か問題があるか、ネットワークに問題があるか、その他何かしらの問題が存在しているはずですので、問題を解決して再挑戦しましょう。
(成功)
(失敗例)
データソースを設定すると、そのデータソースを用いたグラフなどが描画できるようになります。
最後に Grafana のメイン機能、ダッシュボードとグラフについて見ていきましょう。
ダッシュボードの作成は「Create – Dashboard」から作成できます。
Grafana のダッシュボードでは「パネル」という単位でグラフや図などを配置していきます。
新規ダッシュボードには新規パネルが一つ配置されていますので、このパネルの「Add Query」を押下します。
開いた画面では、今回は例として以下の項目を設定しましょう。
Query:(登録したデータソース名)
A:prometheus_https_response_size_bytes_sum (データソースに応じた任意のクエリ)
クエリを入力すると、画面上部にグラフのサンプルが表示されます。
現在の内容でパネルの編集を終わる場合、画面左上の「←」を押下します。
すると編集中のダッシュボード画面に戻り、選択したパネルの内容が先に設定した内容のものに変化しているはずです。
ダッシュボード上のパネルを増やしたい場合、画面上部にある「Add Panel」アイコンを押下すると増やすことができます。
(「New Panel」が既に存在している場合には新しいパネルを増やすことはできません)
パネルを増やして、表示内容を設定して、パネルの配置を変更して…といった作業を繰り返してダッシュボードが完成したら、画面上部の「Save Dashboard」アイコンを押下してダッシュボードを保存します。
任意の名前をつけてダッシュボードを保存しましょう。
保存したダッシュボードは「Dashboards – Manage」や「Dashboards – Home」から呼び出すことができます。
ダッシュボード上のパネルに表示される内容は、都度設定したクエリを基にデータソースからデータを取得して描画されるので、ダッシュボードを開き直すと最新のデータを反映した状態になります。そのため、例えば監視データを使用する場合なら、一度監視したい内容を表示できるパネルを配置したダッシュボードを作成してしまえば、以降はそのダッシュボードを開くだけで簡単に監視を行うことができるようになるはずです。
基本的な Grafana の使い方は以上となります。
他にもユーザー設定やプラグイン、他の人の作成したダッシュボード設定をインポートして使う…などのようなこともできますので、興味を持たれた方は是非色々試してみてください。
■最後に
今回は Grafana で指定したデータを元にグラフを描画する「ダッシュボード」を使う方法を簡単に見てきました。
流石に公式ページのデモにあるような凝ったものを作るのはある程度手間がかかりますが、一度作ってしまえば (要件が変わらない限りは) ずっと使えますので、興味があったら少しずつでも作っていってみてはいかがでしょうか。
Grafana では、今回使った Prometheus 以外にも様々なツール・DB などのデータを扱うことができますので、「手持ちのデータをグラフ化して分析したい!」とお考えの方は一度 Grafana が使えないか試してみてはいかがでしょうか。