[InfluxDB V1.x]テストデータを追加して外部アプリケーション(Grafana)と連携してみよう

influxはversion v1.11.8 を使用します。

まずはテストデータを追加します。

influxDBのインストールについては下記の記事を参照してください。

注意:2.0系では、1.0系と同じようにシェルのようにコマンドを実行することができません。

ためしにinfluxと入力してもshell画面に以降しないはずです。2.0系は基本ブラウザベースで操作を進める必要があります。

1. Python用ライブラリのインストール

pip3 install influxdb

pipがインストールされていない場合は、別途インストールしてください。

2. データベースの作成(CLIでもOK)

influx
> CREATE DATABASE testdb
> exit

ここではデータベース名を「testdb」としています。任意の名前でもOKです。


今回は温度と電力を示すOndo , Powerのデータを仮で作成します。

【Pythonスクリプト例】(例:influx_write_1x.py

適当なファイルを作成します。
nano influx_write_1x.py

以下の内容を追記します。


from influxdb import InfluxDBClient
import random
import datetime

# ----- ここを書き換えてください -----
host = 'localhost' # or サーバのIPアドレス
port = 8086
database = 'testdb' # 作成したデータベース名

client = InfluxDBClient(host=host, port=port, database=database)

base_time = datetime.datetime.utcnow()

for i in range(1000):
timestamp = (base_time + datetime.timedelta(seconds=i)).strftime('%Y-%m-%dT%H:%M:%SZ')
ondo = round(random.uniform(20, 30), 2)
power = round(random.uniform(100, 200), 1)
json_body = [
{
"measurement": "sensor_data",
"time": timestamp,
"fields": {
"Ondo": ondo,
"Power": power
}
}
]
client.write_points(json_body)

print("書き込み完了")
client.close()

スクリプトの実行

python3 influx_write_1x.py

データベース追加できていることの確認

  • influx CLIなら
  • influx
  • > USE testdb
  • > SELECT * FROM sensor_data LIMIT 10

10個のデータが表示されれば成功です。

【1】Grafanaのインストール

もし未インストールなら以下で導入できます。

sudo apt update
sudo apt install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install -y grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

【2】Grafanaへログイン

  • ブラウザで http://<サーバのIPアドレス>:3000
  • 初期ユーザー: ユーザー名: admin パスワード: admin (初回ログイン時に新しいパスワード設定を求められます)

もしログインできない場合は、VPSのパケットフィルターでTCP3000番の開放が必要です。

また、ubuntuでもfirewallに3000番を許可しなければいけません。

sudo ufw allow 3000/tcp #ufwの状態の確認 3000が許可されているか

sudo ufw allow 3000/tcp #許可されていなければ許可対象に追加

【3】InfluxDB(1.x)をデータソースとして追加

  1. 左の「歯車マーク」→「Data sources」→「Add data source」
  2. InfluxDB」を選択

設定例

  • URL
    http://localhost:8086
    ※InfluxDBが別サーバなら http://<そのIP>:8086
  • Database
    testdb(あなたが作成したDB名)
  • User / Password
    未設定なら空欄のまま
  • HTTP Method
    基本デフォルト(GET)

下の「Save & Test」で**緑色の「Data source is working」**が出れば成功!


【4】パネル(グラフ)作成

  1. 右側の「+」→「New Dashboard」→「Add visualization」
  2. 「Queries」欄で
    • Data source: 先ほど登録したInfluxDB
    • FROMsensor_data
    • SELECTmean("Ondo") など(もしくは last("Ondo") でもOK)
    • GROUP BYtime($__interval)
  3. 右側でグラフタイプ(折れ線、棒グラフなど)を選択
  4. タイトルや表示範囲を好みに設定
  5. Apply(保存)でダッシュボード完成

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする