Grafana Cloud(無料枠)でラズベリーパイのデータを見える化
Grafanaは、時系列データのグラフ表示やダッシュボード作成、しきい値を超えたときのアラート通知が得意な見える化ツールです。
このページでは、Grafana Labsが提供するクラウド版「Grafana Cloud」の無料枠(Free)を使い、ラズベリーパイのMariaDBに記録したPLCのデータを、事務所や外出先のPC・スマホから見られるようにする手順をまとめます。
社内LANだけで完結させたい場合は「Metabase」を使ってください。
構成
ポイントは、ラズベリーパイ上で動かすPDCエージェント(Private Data Source Connect)です。エージェントがラズベリーパイからGrafana Cloudへ向けて暗号化されたトンネル(SSH)を張り、Grafana Cloudはそのトンネルを通ってMariaDBに問い合わせます。
- ルーターやファイアウォールに受信ポートを開ける必要がありません(外向きの接続だけで動きます)
- データはラズベリーパイのMariaDBに置いたままなので、クラウド側の保存期間(14日)の制限を受けません
- MariaDBはインターネットに公開しないので、DBを直接外に出すよりも安全です
無料枠でできること
2026年10月時点の主な無料枠(Free)の内容です。クレジットカードの登録なしで使い始められます。
| 項目 | 無料枠 | この構成での影響 |
|---|---|---|
| Grafana(ダッシュボード) | 月3アクティブユーザーまで | 閲覧・編集する人が3人までなら無料 |
| Private Data Source Connect | 利用可 | MariaDBへの接続に使います |
| メトリクス | 1万アクティブシリーズ/月、保存14日 | MariaDBを直接参照するので使いません |
| ログ・トレース | 各50GB/月、保存14日 | 使いません |
| アラート | 利用可 | しきい値超えをメールなどで通知できます |
| サポート | コミュニティサポートのみ |
※ 無料枠の内容は変更されることがあります。最新の情報はGrafana Cloudの料金ページで確認してください。
Metabase・Grafanaの比較
| Metabase(ラズパイ上) | Grafana Cloud(無料枠) | |
|---|---|---|
| 動かす場所 | ラズベリーパイ | クラウド(ラズパイはエージェントのみ) |
| ラズパイの負荷 | 大きい(Java、メモリ1GB前後) | 小さい(エージェントは数十MB程度) |
| インターネット | 不要 | 必要(外向きのみ) |
| 外出先・スマホから | VPNなどが必要 | そのまま閲覧可能 |
| 得意なこと | 集計表、SQLなしでの分析 | 時系列トレンド、リアルタイム監視、アラート |
| ユーザー数 | 制限なし | 月3人まで(無料枠) |
サンプルデータの準備
Grafanaで表示するためのテーブルを作ります。すでにPLCのデータを記録しているテーブルがある場合は、そのテーブルを使ってください。
$ sudo mariadbUSE testDB; -- PLCから読み出した値を記録するテーブル(例) CREATE TABLE plc_log ( id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, device VARCHAR(32) NOT NULL, value DOUBLE ); CREATE INDEX idx_plc_log_ts ON plc_log (ts); -- 動作確認用のデータ(直近1時間分を1分ごとに60件) INSERT INTO plc_log (ts, device, value) SELECT NOW() - INTERVAL seq MINUTE, 'PLC1', 20 + RAND() * 10 FROM seq_0_to_59; SELECT COUNT(*) FROM plc_log;
CONVERT_TZ(ts,'+09:00','+00:00') のように変換してください)。
Grafana用の読み取り専用ユーザー
Grafanaからはデータを読むだけなので、SELECT権限だけのユーザーを作ります。PDCエージェントはラズベリーパイ自身からMariaDBに接続するので、接続元は 127.0.0.1 に限定します。
CREATE USER 'grafana'@'127.0.0.1' IDENTIFIED BY 'grafana_pass'; GRANT SELECT ON testDB.* TO 'grafana'@'127.0.0.1'; EXIT;
パスワードは推測されにくいものに変更してください。
Grafana Cloudのアカウント作成
- Grafana Cloudのサインアップページで、メールアドレスまたはGoogle/GitHubアカウントで登録します。
- スタック(自分専用のGrafana環境)の名前とリージョンを決めます。スタック名がそのままURL(
https://スタック名.grafana.net)になります。リージョンは日本から近いアジア太平洋のものを選ぶと表示が速くなります。 - 作成が終わると、自分のスタックのGrafanaにログインできます。以降の操作はこのGrafanaの画面で行います。
PDCエージェントのセットアップ
1. PDCネットワークとトークンの作成(Grafana Cloud側)
- Grafanaの左メニューから Connections > Private data source connections を開きます。
- Add new network でネットワークを作成します(名前は例えば
raspi-factory)。 - 作成したネットワークの Configuration Details タブで Create a new token を押し、トークンを発行します。
- 画面に表示される次の3つの値を控えておきます。
| 画面上の項目 | このページでの変数名 | 例 |
|---|---|---|
| token | GCLOUD_PDC_SIGNING_TOKEN | glc_eyJvIjoi…(長い文字列) |
| cluster | GCLOUD_PDC_CLUSTER | prod-ap-northeast-0 など |
| gcloud-hosted-grafana-id | GCLOUD_HOSTED_GRAFANA_ID | 123456 など |
2. エージェントのインストール(ラズベリーパイ側)
PDCエージェントはOpenSSH 9.2以上が必要です。Bookworm以降のRaspberry Pi OSなら条件を満たしています。
$ ssh -V
OpenSSH_9.2p1 Debian-2+deb12u3, OpenSSL 3.0.15 3 Sep 2024ARM64(64bit版OS)用のエージェントをダウンロードして、/usr/local/bin に置きます。
$ cd ~ $ wget https://github.com/grafana/pdc-agent/releases/latest/download/pdc-agent_Linux_arm64.tar.gz $ tar xzf pdc-agent_Linux_arm64.tar.gz $ sudo install -m 755 pdc-agent_Linux_arm64/pdc /usr/local/bin/pdc $ pdc -version
uname -m の結果が aarch64 であることを確認してください。
3. 手動で起動して接続を確認
控えておいた3つの値を指定して起動します(1行のコマンドです)。
$ pdc -token <GCLOUD_PDC_SIGNING_TOKEN> -cluster <GCLOUD_PDC_CLUSTER> -gcloud-hosted-grafana-id <GCLOUD_HOSTED_GRAFANA_ID>ログに This is Grafana Private Data Source Connect! と表示されれば接続成功です。Grafana Cloudの Private data source connections の画面でも、エージェントが接続済み(Connected)になっていることを確認できます。確認できたら Ctrl+C で止めます。
4. サービスとして自動起動する
トークンなどの値は設定ファイルに分けて書き、他のユーザーから読めないようにします。
$ sudo nano /etc/default/pdc-agentGCLOUD_PDC_SIGNING_TOKEN=glc_ここにトークン GCLOUD_PDC_CLUSTER=ここにcluster GCLOUD_HOSTED_GRAFANA_ID=ここにID
$ sudo chmod 600 /etc/default/pdc-agent $ sudo nano /etc/systemd/system/pdc-agent.service
[Unit]
Description=Grafana Private Data Source Connect agent
After=network-online.target mariadb.service
Wants=network-online.target
[Service]
EnvironmentFile=/etc/default/pdc-agent
ExecStart=/usr/local/bin/pdc -token ${GCLOUD_PDC_SIGNING_TOKEN} -cluster ${GCLOUD_PDC_CLUSTER} -gcloud-hosted-grafana-id ${GCLOUD_HOSTED_GRAFANA_ID}
User=pi
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target$ sudo systemctl daemon-reload $ sudo systemctl enable --now pdc-agent.service $ journalctl -u pdc-agent -f
ラズベリーパイを再起動しても、自動的にGrafana Cloudへ接続されるようになります。
データソース(MariaDB)の追加
- Grafanaの左メニューから Connections > Data sources > Add new data source を開き、MySQL を選びます(MariaDBもMySQLとして接続します)。
- 次のように入力します。
| 項目 | 設定値 | 説明 |
|---|---|---|
| Host URL | 127.0.0.1:3306 | ラズベリーパイから見たMariaDBのアドレス |
| Database name | testDB | |
| Username/Password | grafana/grafana_pass | 読み取り専用ユーザー |
| Private data source connect | raspi-factory | 作成したPDCネットワークを選択(ここが重要) |
- 下の Save & test を押して、
Database Connection OKと表示されれば接続成功です。
127.0.0.1 に接続しようとして失敗します。
ダッシュボードの作成
- 左メニューの Dashboards > New > New dashboard > Add visualization を選び、作成したMySQLデータソースを選択します。
- クエリエディタを Code に切り替えて、次のSQLを入力します。
SELECT ts AS time, value AS "PLC1" FROM plc_log WHERE device = 'PLC1' AND $__timeFilter(ts) ORDER BY ts
$__timeFilter(ts)はGrafanaのマクロで、画面右上で選んだ期間(直近1時間など)の条件に自動で置き換わります。- 時刻の列は
timeという名前にすると、Grafanaが横軸として扱います。 - 右上の更新間隔(例:10s)を設定すると、グラフが自動で更新されます。
パネルを保存し、ダッシュボードを保存すれば完成です。スマホからも https://スタック名.grafana.net にログインすれば同じダッシュボードを見られます。
アラートを設定する(任意)
パネルの編集画面の Alert タブから、「値が30を超えたらメールで通知」のようなアラートルールを作れます。通知先(Contact point)はメールのほか、SlackやMicrosoft Teamsなども選べます。
運用上の注意
- ユーザー数:無料枠は月3アクティブユーザーまでです。閲覧する人が増える場合は、ダッシュボードの共有(スナップショット)や有料プランを検討してください。
- 問い合わせの負荷:ダッシュボードを開くたびに、トンネル経由でラズベリーパイのMariaDBにSQLが送られます。データが増えたら
ts列のインデックスを必ず付け、更新間隔を短くしすぎないようにしてください。 - 社内ルールの確認:工場のデータを社外のクラウドで表示することになります。導入前に社内の情報セキュリティのルールを確認してください。
- エージェントの更新:PDCエージェントは不定期に更新されます。更新するときは、同じ手順で新しい
pdcを置き換えてsudo systemctl restart pdc-agentを実行します。
まとめ
ラズベリーパイにPDCエージェントを入れるだけで、ポートを開けずに、Grafana Cloudの無料枠からMariaDBのデータを見える化できました。
MariaDBにPLCのデータを記録し続ければ、事務所や外出先からも設備の稼働状況をリアルタイムで確認できます。
関連ページ

初期設定とサーバー構築
固定IP・Apache・PHP・MariaDBのセットアップ手順

Metabaseのセットアップ
ラズベリーパイ上でBIツールMetabaseを動かし、MariaDBのデータをグラフにします

KEYENCE 上位リンク通信
PythonからKEYENCE PLCと上位リンク通信します

ラズベリーパイとは
歴史・現行機種のスペック・PLCとの連携構成を紹介します
参考
- Grafana Cloud 料金(無料枠の内容)
- Grafana Cloud ドキュメント:Private data source connect
- Grafana Cloud ドキュメント:Configure PDC
- grafana/pdc-agent(GitHub)
- Grafana ドキュメント:MySQL data source
Raspberry Pi is a trademark of Raspberry Pi Ltd. Grafana is a trademark of Grafana Labs.
