時系列データベース InfluxDB を Amazon Linux 2 にインストールする

こんにちは、菊池です。

時系列データを扱うOSSデータベース、InfluxDBを触る機会がありましたので実際にインストールから簡単な操作を紹介します。

InfluxDB

InfluxDBはInfluxData社が開発・提供する時系列データベースで、タイムスタンプに基づくデータの取り扱いに特化しています。時系列データベースとしては他に、re:Invent 2018で発表された Amazon Timestreamがあります。

InfluxDBには以下の3つの提供形態があります。

  • InfluxDB Cloud
  • InfluxDB
  • InfluxDB Enterprise

InfluxDB CloudはDB as a Serviceとして提供されるフルマネージドサービスです。InfluxDBは自身の環境にインストールして実行できるOSS版で、InfluxDB Enterpriseはクラスタやエンタープライズ向けの管理機能、サポートを含む有償版です。今回は、InfluxDBを利用します。

InfluxDBの現時点での最新安定バージョンは v1.7.9を使いました。

インストールと実行

それではAmazon Linux 2にインストールしていきます。こちらから、各プラットフォーム向けのバイナリがダウンロード可能です。RHEL/CentOS向けのrmpをダウンロードして使いました。

$ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9.x86_64.rpm
$ sudo yum localinstall influxdb-1.7.9.x86_64.rpm

ひとまず、デフォルトのまま起動してみます。

$ sudo systemctl start influxdb
$ sudo systemctl status influxdb
● influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled)
   Active: active (running) since 火 2019-11-19 04:53:00 UTC; 5s ago
     Docs: https://docs.influxdata.com/influxdb/
 Main PID: 2644 (influxd)
   CGroup: /system.slice/influxdb.service
           └─2644 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

起動できましたので、コマンドラインツールを使って接続します。

$ influx
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
> 

接続できました。公式ドキュメントに従って、データの操作をしてみます。まずはSHOW DATABASESでデータベースを確認。

> SHOW DATABASES
name: databases
name
----
_internal
> 

新しくデータベースmydbを作成し、移動します。

> CREATE DATABASE mydb
> 
> SHOW DATABASES
name: databases
name
----
_internal
mydb
> 
> USE mydb
Using database mydb
> 

データをINSERTしてみます。RDBのテーブルに相当するmeasurementcpuに対し、key=valueの形式で各フィールドの値を入れます。

> INSERT cpu,host=serverA,region=us_west value=0.64

新しいmeasurementであるcpuが作成されていることが確認できます。

> SHOW measurements
name: measurements
name
----
cpu
> 

登録したデータはSQLライクに参照することができます。

> SELECT "host", "region", "value" FROM "cpu"
name: cpu
time                host    region  value
----                ----    ------  -----
1574158668462031724 serverA us_west 0.64
> 

認証の有効化

起動したデフォルトの状態では、認証なしで接続ができてしまいますので、ユーザーを作成し接続時に認証を要求するようにします。

まずはCREATE USERでユーザーを作成します。WITH ALL PRIVILEGESをつけることで管理者権限をもつユーザーとして作成されます。

> CREATE USER skikuchi WITH PASSWORD 'password'  WITH ALL PRIVILEGES

ユーザーの確認。

> SHOW USERS
user     admin
----     -----
skikuchi true

ユーザーの作成ができたので、設定ファイル/etc/influxdb/influxdb.confを変更し、認証を有効化します。

[http]
  auth-enabled = true

サーバーを再起動し、作成したユーザーで接続してみます。

$ influx -username skikuchi -password password
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
>

認証を有効化し接続できました。

 まとめ

時系列データベース、InfluxDBのインストールからごく簡単な操作、ユーザー認証の有効化を紹介しました。インストールから起動まで、特にハマるところなくシンプルな手順で進めることができました。公式ドキュメントの記載も充実しているので、取っ付きやすい製品という印象です。

今後引き続き、InfluxDBの機能を紹介していきたいと思います。