こんにちは。
アプリケーションサービス部の兼安です。
今回は、EC2上にGrafana OSSを起動して、時系列データの可視化を体感してみようという記事です。
目的は、時系列のデータの可視化とは?ダッシュボードを作成するとはどういうことか?を体験していただくことです。
- 本記事の対象者
- 時系列データとは
- Grafanaとは
- 本記事の使用ツール
- EC2の起動と、Grafana OSSのインストール
- セキュリティグループの設定
- Grafana OSSへのアクセス
- データソースの設定
- ダッシュボードの作成
- ダッシュボードに折れ線グラフのパネルを追加
- 補足
本記事の対象者
- データの可視化に興味がある方
- ダッシュボードを作成してみたいが、まずはどういうものか体験してみたい方
- EC2、VPC、RDSの操作を把握されている方
本記事はGrafanaのインストールから操作までに焦点を当てているため、EC2などの基本操作は把握されていることを前提としています。
また、本記事はGrafanaの体験に焦点をあてているので、本格的な利用を視野に入れた構成を扱っていません。
ご了承ください。
時系列データとは
時系列データとは、時間の経過に伴って定期的に記録されたデータのことを指します。
例えば、IoTデバイスやセンサーが送る、環境の温度、湿度、光のレベル、動きなどの物理的な状態が時系列データになります。
ちなみに、AWSには時系列データを扱うのに特化したサービスが存在します。
本記事では一般的なRDBを使用しているため触れていませんが、別の記事で扱っていますのでよろしければご覧ください。
Amazon Timestream カテゴリーの記事一覧 - サーバーワークスエンジニアブログ
Grafanaとは
様々なデータベースから取得した情報を可視化するWebアプリケーションです。
時系列データベースの可視化において、よく挙げられるツールです。
Grafanaは、EC2などにインストールすることで使用することができます。
また、AWSにはAmazon Managed Grafanaというマネージドサービス(全て準備されたアプリケーション)もあります。
Amazon Managed Grafanaは、利用するのにOrganizationsまたは外部IDプロバイダーが必要になります。
今回は体験することを目的としているので、EC2にGrafana OSSをインストールして使用することにします。
体感した上で本格的な利用を視野に入れた場合に、改めてAmazon Managed Grafanaを検討するとよいと思います。
本記事の使用ツール
- Amazon EC2
- OSはUbuntu
- Grafana OSS
- バージョン9.4
- Amazon RDS for MySQL
Grafana OSSのバージョンに9.4を指定しているのは、本記事執筆時点のAmazon Managed Grafanaのバージョンが9.4であるためです。
本格的な利用を視野に入れた場合に、Amazon Managed Grafanaに移行する際に、バージョンの差異による違和感を最小限にするためです。
EC2の起動と、Grafana OSSのインストール
EC2の起動
OSイメージにUbuntuを選択して、EC2を起動します。
VPCはRDSと同じVPCを選択してください。
この時、高度な詳細設定で、IAMインスタンスプロフィールで、AmazonSSMManagedInstanceCore
を持つロールを指定すると、セッションマネージャーでのコマンド操作が可能になり、作業が楽になりお勧めです。
Grafana OSSのインストール
EC2にSSHでログインしてインストールコマンドを実行します。
コマンドは公式サイトを参考にしています。
sudo apt-get install -y apt-transport-https software-properties-common wget sudo mkdir -p /etc/apt/keyrings/ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list # Updates the list of available packages sudo apt-get update # Installs the latest OSS release: sudo apt-get install grafana=9.4.17 # Start the Grafana server with systemd sudo systemctl daemon-reload sudo systemctl start grafana-server # Configure the Grafana server to start at boot using systemd sudo systemctl enable grafana-server.service
セキュリティグループの設定
Grafana OSSは、デフォルトでは3000番ポートで起動します。
セキュリティグループでTCPの3000番ポートを開けておきます。
Grafana OSSへのアクセス
http://<EC2のパブリックIP>:3000
にアクセスするGrafanaのログイン画面が表示されます。
初期はadmin/admin
でログインができます。
admin
の新しいパスワード入力を求められるので入力してください。
Grafanaのトップ画面が表示されます。
データソースの設定
画面左下の歯車アイコンをクリック、Data sources
でデータソースの設定画面を表示します。
Add data source
をクリックします。
検索窓でMySQL
を入力し、MySQL
をクリックします。
Amazon RDS for MySQLの接続情報を入力します。
Amazon RDS for MySQL側は、Grafana OSSからの接続を許可するために、VPCは同じにして、セキュリティグループで3306番ポートを開けておきます。
項目名 | 入力値 |
---|---|
Host | Amazon RDS for MySQLのエンドポイント:3306 |
Database | RDSのデータベース名 |
User | RDSのユーザー名 |
Password | RDSのパスワード |
MySQLの接続情報を入力したら、画面下のSave & Test
をクリックします。
MySQLの接続情報とセキュリティグループの設定などに問題がなければ、Database Connection OK
と表示されます。
ダッシュボードの作成
画面左の正方形のアイコンをクリック、Dashboards
でダッシュボード一覧表示します。
New dashboard
をクリックします。
新規作成されたダッシュボードが表示されます。
ダッシュボードの名称などは、画面右上の歯車アイコンから変更できます。
そのまま閉じると入力内容が消えるので、右上のフロッピーディスクアイコンをクリックして保存します。
(最近はフロッピーディスクと言われてもわかりませんよね・・・歯車アイコンの左隣です。 )
ダッシュボードに折れ線グラフのパネルを追加
パネルの追加
画面右上のAdd panel
をクリックします。
Add new panel
をクリックします。
パネルの新規作成画面が表示されます。
パネル名は右側で入力します。
データの抽出条件を入力
画面下部でデータの抽出条件を入力します。
データソースはこの時点では一つしかないので、おそらくMySQL(default)
が選択されていると思いますのでそのままで大丈夫です。
複数データソースがある場合は、適切なデータソースを選択してください。
Dataset
でMySQLのデータベース名を、Table
でテーブル名を選択します。
テーブルまで選択したら、カラムを選択していきます。
今回は、このようなテーブルを用意しておきましたのでこれに沿った設定をしています。
CREATE TABLE iot_data ( id INT AUTO_INCREMENT PRIMARY KEY, time DATETIME, device_id VARCHAR(255), fuel_reading FLOAT, location VARCHAR(255), speed FLOAT, INDEX iot_data_idx (time) );
データの抽出条件をSQLで入力
データの抽出条件はSQLで入力することもできます。
Builder
、Code
と並んでいる箇所でCode
をクリックすると、SQLを入力できる画面に切り替わります。
データの抽出条件に基づいて可視化
データの抽出条件を入力したら、Run query
をクリックしてください。
画面上部に可視化されたデータが表示されます。
確認ができたら右上でのSave
のあと、Apply
をクリックしてください。
これでダッシュボードに設定内容が反映されます。
ダッシュボードで確認
日時の範囲を変える場合は、ダッシュボードやパネルの右上にある時計アイコンの欄で範囲を変えます。
もしくは、グラフを範囲選択することでも日時の範囲が変えることができます。
Last xxx
のような選択肢を選んでおけば、ダッシュボードを開き直した時に自動的に最新データが反映されます。
あとは、グラフの種類を変えたり色々な機能触って、Grafanaの機能を体感して行ってください。
補足
実は、Grafana OSSとAmazon Managed Grafanaでは、メニューの表示形式が異なります。
ですが、やることは概ね同じなので、Amazon Managed GrafanaでもGrafana OSSでの体験は充分に活きると思います。
Amazon Managed Grafanaで、TOPページをダッシュボードにしたり、CSV出力したりする方法を紹介している記事がありますので、参考にしてください。
Grafana OSSとは若干UIが異なりますが、参考になると思います。
兼安 聡(執筆記事の一覧)
アプリケーションサービス部 DS3課所属
2024 Japan AWS Top Engineers (Database)
2024 Japan AWS All Certifications Engineers
Certified ScrumMaster
PMP
広島在住です。今日も明日も修行中です。