LoginSignup
3
3

Linux: データ可視化ソフト「Grafana」を無料インストールしてみた+「Prometheus」と連携させてみた

Posted at
実施環境:
Linux
[root@testhost ~]# uname -a
Linux testhost 4.18.0-448.el8.x86_64 #1 SMP Wed Jan 18 15:02:46 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@testhost ~]# cat /etc/redhat-release
CentOS Stream release 8
[root@testhost ~]# yum list installed | grep grafana
grafana-enterprise.x86_64                          10.0.3-1                                                   @@commandline

0. 概要

世の中には様々なデータ収集ツールがあります。
ですが、それで必要なデータを収集できても、欲しい表やグラフが作れなければ宝の持ち腐れです。

Grafana (グラファナ)は、データの可視化に特化したオープンソースのソフトウェアです。
Prometheus などのデータ収集ツールで収集した多種多様なデータを取り込んで、グラフや表を作成したり、それらの表やグラフを1つのダッシュボード画面にまとめたりすることができます。

Grafana

今回は Linux サーバに Grafana をインストールし、 Prometheus で収集した CPU 使用状況をグラフ化してダッシュボード画面に表示することを目標とします。

1. インストール

Grafana のインストールは、 CentOS の場合 rpm パッケージを利用します。
公式サイトのコマンドラインを実行することでインストールできます。
バージョンは 10.0.3-1 を使用しました。

Download

WS000395.JPG

ただし、今回は root ユーザでコマンドを実行するので、 sudo は不要です。

Linux
[root@testhost ~]# yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.3-1.x86_64.rpm
メタデータの期限切れの最終確認: 1 day, 13:31:45 時間前の 2023年08月15日 20時14分56秒 に実施しました。
grafana-enterprise-10.0.3-1.x86_64.rpm           13 MB/s |  84 MB     00:06
依存関係が解決しました。
(省略)
インストール済み:
  grafana-enterprise-10.0.3-1.x86_64

完了しました!
[root@testhost ~]# yum list installed | grep grafana
grafana-enterprise.x86_64                          10.0.3-1                                                   @@commandline

Grafana をインストールできました。

2. 起動

Grafana は、 CentOS の場合 systemctl を用いて制御することが可能です。
実際インストール後に確認してみると、 service として登録されていることがわかります。

Linux
[root@testhost ~]# systemctl list-unit-files -t service | grep grafana
grafana-server.service                     disabled

systemctl で起動します。

Linux
[root@testhost ~]# systemctl start grafana-server.service
[root@testhost ~]# systemctl is-active grafana-server.service
active

Grafana を起動できました。

3. ファイアウォールの穴あけ

さて、これで Grafana 自体は起動できましたが、環境によってはまだアクセスできません。
ファイアウォールの穴あけが行われていない場合があるからです。
Grafana は 3000 番ポートを使用するため、このポートにアクセスが通るようにします。

Linux
[root@testhost ~]# systemctl is-active firewalld
active
[root@testhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s25
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
[root@testhost ~]# firewall-cmd --zone=public --add-port=3000/tcp --permanent
success
[root@testhost ~]# firewall-cmd --reload
success
[root@testhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s25
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 3000/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
[root@testhost ~]#

ファイアウォールに穴が開き、 Grafana にアクセスできるようになりました。

4. アクセス

では早速、 Grafana にアクセスしてみます。
ブラウザを開き、以下の URL に接続します。

http://<起動したサーバのIPアドレス>:3000

以下のような画面が表示されたら成功です。

WS000396.JPG

初期構築時は、ユーザ名、パスワードともに「 admin 」を指定すればログインできます。
ログインすると、パスワードの変更画面がでるので、適宜変更します。

WS000397.JPG

トップ画面が開きました。

WS000398.JPG

5. データ取り込み( Prometheus )

このままだと使用できるデータがないので、とりあえず適当なデータを取り込んでみましょう。
今回は同一サーバ上で Prometheus を動作させているので、そのデータを取り込んでみます。
なお、 Prometheus のインストール方法については以下の過去記事を参照してください。

Linux: システム監視ソフト「Prometheus」を無料インストールしてみた

まずはメニュー画面から、「 Connections 」⇒「 Data sources 」を選択します。

WS000401.JPG

データソース画面に移動するので、「 Add data source 」を選択します。

WS000402.JPG

データソースの追加画面に移動するので、「 Prometheus 」を選択します。

WS000403.JPG

設定画面が開くので、「 Prometheus server URL 」だけ http://localhost:9090 と入力して、「 Save & test 」を押します。
文字列が表示されているのでわかりにくいですが、デフォルトだと「 Prometheus server URL 」も含めほとんどの項目が入力されていないことに注意が必要です。

WS000405.JPG

WS000407.JPG

成功メッセージが出力されたら完了です。

WS000409.JPG

6. ダッシュボード

さて、いよいよダッシュボードの作成に入っていきます。
先ほど取り込んだ Prometheus の情報を表示してみましょう。

メニューから「 Dashboards 」を選択します。

WS000410.JPG

ダッシュボード画面に移動するので、「 New 」⇒「 New Dashboard 」を選択します。

WS000412.JPG

グラフを追加するため、「 Add visualization 」を押します。

WS000413.JPG

グラフに使用するデータソースの選択画面が出るので、「 Prometheus 」を選択します。

WS000414.JPG

これでパネルを1つダッシュボードに追加することができました。
このパネルを編集していきます。

WS000418.JPG

まずはクエリの作成ですが、 Grafana はクエリ文を書かなくとも GUI で検索条件や集計方法などを選択できます。
左下で、「 Query 」⇒「 Metric 」⇒「 node_cpu_seconds_total 」を選択します。

WS000416.JPG

次に、パネルの状態を更新します。
左上で、更新ボタンを押すと、グラフが表示されます。
縦軸や横軸などは今回変更していないので、デフォルトで適宜指定されています。

WS000417.JPG

最後に、右上の「 Save 」ボタンを押してダッシュボードを保存します。

WS000420.JPG

保存設定の編集画面が開きますが、今回はデフォルトのまま「 Save 」を押します。

WS000421.JPG

これで、ダッシュボードを作成できました。

WS000422.JPG

7. 備考

今回は1から作成したダッシュボードですが、実は公式サイトで多種多様なテンプレートが公開されています。
これらをうまく活用すれば、より効率的に可視化を行うことが可能です。

Dashboards

公式サイトのドキュメントも充実しているので、困ったことがあったら調べてみてもよいかと思います。

Docs

3
3
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
3
3