Intel Edison に InfluxDB をインストールする方法

http://influxdb.com/download/から最新版をダウンロードします。
Go もインストールしてあるのでソースからビルドしても良いかと思ったのですが、意外とビルド方法が難しそうだったので linux/386 版のバイナリパッケージを利用することにしました。

パッケージをダウンロードしたら、それを /home/root/opt/influxdb 以下に展開します。
(Edison は / 以下は容量が少ないので、容量の多い /home 以下にダウンロードして展開する必要があります。また、あとで設定ファイルを編集する手間のことを考えると ~~/opt/influxdb というディレクトリになるようにしておいたほうが良いと思います。ということで私は /home/root/opt/influxdb 以下に展開しました。)

展開したら、以下の様なツリー構造になります。

~/opt/influxdb# tree
.
|-- benchmark_config.toml
|-- config.toml
|-- influxdb
|-- influxdb-benchmark
|-- scripts
|   |-- influxdb-daemon.sh
|   |-- init.sh
|   `-- post_install.sh
`-- shared
    |-- data
    |   |-- db
    |   |   `-- shard_db_v2
    |   |-- raft
    |   |   |-- conf
    |   |   |-- log
    |   |   |-- name
    |   |   `-- snapshot
    |   `-- wal
    |       `-- bookmark
    `-- log.txt

(tree コマンドは The Tree Command for Linux Homepage からダウンロードして make して使用しました)


展開したら、influxdb という実行ファイルがあるのでそれを実行してみましょう。
おそらく、libbz2.so.1 が見つからないとかでエラーになってしまうはずです。

ldd コマンドで確認してみても、

# ldd influxdb
	linux-gate.so.1 (0xb777f000)
	librt.so.1 => /lib/librt.so.1 (0x41815000)
	libm.so.6 => /lib/libm.so.6 (0x417c6000)
	libz.so.1 => /lib/libz.so.1 (0x417ae000)
	libbz2.so.1 => not found
	libpthread.so.0 => /lib/libpthread.so.0 (0x41790000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x41a3f000)
	libc.so.6 => /lib/libc.so.6 (0x41618000)
	/lib/ld-linux.so.2 (0x415e9000)

という具合に not found になっています。

Edison には opkg で bzip2 や libbz2 などがすでにインストールされていたのですが、find コマンドで検索してみても libbz2.so.1 というファイルは見つかりません。

bzip2 コマンドは正常に動作しているので libbz2 はインストールされているはずなのですが、、、

試しに bzip2 コマンドを ldd で確認してみると

# ldd /usr/bin/bzip2
	linux-gate.so.1 (0xb773c000)
	libbz2.so.0 => /usr/lib/libbz2.so.0 (0x41b48000)
	libc.so.6 => /lib/libc.so.6 (0x41618000)
	/lib/ld-linux.so.2 (0x415e9000)

となっていましたので、どうやら libbz2.so.0 は存在しますが libbz2.so.1 が存在しないようです。

仕方がないので古いバージョンの libbz2.so.0 で新しいバージョンの libbz2.so.1 を肩代わりさせてみましょう・・・

# ls -la /usr/lib/libbz2.so*
lrwxrwxrwx    1 root     root            15 Oct 14 13:32 libbz2.so -> libbz2.so.0.0.0
lrwxrwxrwx    1 root     root            15 Oct 14 13:32 libbz2.so.0 -> libbz2.so.0.0.0
-rwxr-xr-x    1 root     root         76100 Oct  9 09:11 libbz2.so.0.0.0
# cd /usr/lib && ln -s libbz2.so.0.0.0 libbz2.so.1
# ls -la /usr/lib/libbz2.so*
lrwxrwxrwx    1 root     root            15 Oct 14 13:32 /usr/lib/libbz2.so -> libbz2.so.0.0.0
lrwxrwxrwx    1 root     root            15 Oct 14 13:32 /usr/lib/libbz2.so.0 -> libbz2.so.0.0.0
-rwxr-xr-x    1 root     root         76100 Oct  9 09:11 /usr/lib/libbz2.so.0.0.0
lrwxrwxrwx    1 root     root            15 Dec 25 09:31 /usr/lib/libbz2.so.1 -> libbz2.so.0.0.0

influxdb を展開したディレクトリに戻り、

# influxdb
Couldn't parse configuration file: config.sample.toml
[12/25/14 09:31:56] [INFO] Loading configuration file config.sample.toml
open config.sample.toml: no such file or directory

一応動きました・・・が、これがちゃんと期待通りに動くという保証はありません。
それに、config.sample.toml というファイルが見つからないというエラーになってしまいました。

そこで、config ファイルを用意します。

influxdb の実行ファイルと同じディレクトリに config.toml というファイルがありますので、これを開いて編集し、ファイルの内容で /opt/influxdb/〜〜 というパスになっている箇所をすべて /home/root/opt/influxdb/〜〜 に書き換えます。(/home/root を付け加える)

編集したら、以下のように config ファイルをオプションで指定して起動します。

~/opt/influxdb# ./influxdb -config ./config.toml
[12/28/14 14:36:42] [INFO] Loading configuration file ./config.toml

+---------------------------------------------+
|  _____        __ _            _____  ____   |
| |_   _|      / _| |          |  __ \|  _ \  |
|   | |  _ __ | |_| |_   ___  _| |  | | |_) | |
|   | | | '_ \|  _| | | | \ \/ / |  | |  _ <  |
|  _| |_| | | | | | | |_| |>  <| |__| | |_) | |
| |_____|_| |_|_| |_|\__,_/_/\_\_____/|____/  |
+---------------------------------------------+

上記のようにロゴのバナーが現れたら成功です。

この状態で Web ブラウザを開、Edison のアドレスの 8083 番ポートにアクセスしてみましょう。
f:id:bearmini:20141229002521p:plain

このような管理画面が現れれば成功です。
あとは Series にデータを追加したりしていきましょう。