influxDBの導入
- 時系列データを扱いたいと思い、influxDBを使ってみました。
説明 |
起動コマンド |
dockerイメージから起動する場合 |
docker run -d -p 8083:8083 -p 8086:8086 -p 8090:8090 -p 8099:8099 --name influxdb1 soushi/influxdb:1.0 |
Centos:6イメージから新規に作成する場合 |
docker run -i -t -d -p 8083:8083 -p 8086:8086 -p 8090:8090 -p 8099:8099 -v /etc/localtime:/etc/localtime:ro --name influxdb1 centos:6 /bin/bash |
- dockerイメージが無い場合、Dockerfileから作成できます。
docker build [ -t {イメージ名} [ :{タグ名} ] ] <Dockerfileのあるディレクトリ>
- Dockerfileからdockerイメージを作成するコマンド例
docker build -t soushi/influxdb:1.0 <Dockerfileのあるディレクトリ>
- dockerイメージを作成するためのDockerfileの場所
~/OneDrive/docker/influxdb/Dockerfile
ポートを利用するライブラリ |
目的 |
ポート番号 |
influxDB |
Web UI |
8083 |
influxDB |
Comm. |
8086 |
influxDB |
Raft for clustering |
8090 |
influxDB |
Protobuf for clustering |
8099 |
※ポート番号の解説はinfluxDB installationを参照 |
|
|
設定項目 |
設定値 |
influxdb本体 |
/usr/bin/influxdb |
influxdb設定ファイル |
/opt/influxdb/shared/config.toml |
influxdb pidファイル |
/opt/influxdb/shared/influxdb.pid |
1 influxDBの導入を行います
1.0 dockerコンテナの起動
説明 |
起動コマンド |
Centos:6イメージから新規に作成する場合 |
docker run -i -t -d -p 8083:8083 -p 8086:8086 -p 8090:8090 -p 8099:8099 -v /etc/localtime:/etc/localtime:ro --name influxdb1 centos:6 /bin/bash |
1.1 influxDBのダウンロードとセットアップ
mkdir /usr/local/download/
cd /usr/local/download/
yum -y install wget
wget http://s3.amazonaws.com/influxdb/influxdb-latest-1.x86_64.rpm
rpm -ivh influxdb-latest-1.x86_64.rpm
/etc/init.d/influxdb start
2 influxDBでデータベースを作成します。
2-A CLIベースでデータベースとユーザーを作成します。
公式サイト参照
curl -X POST 'http://localhost:8086/db?u=root&p=root' -d '{"name": "grafanadb"}'
curl -X POST 'http://localhost:8086/db?u=root&p=root' -d '{"name": "grafanaconf"}'
curl -X POST 'http://localhost:8086/db/grafanadb/users?u=root&p=root' -d '{"name": "soushi", "password": "soushi"}'
curl -X POST 'http://localhost:8086/db/grafanaconf/users?u=root&p=root' -d '{"name": "soushi", "password": "soushi"}'
curl -X POST 'http://localhost:8086/db/grafanadb/users/soushi?u=root&p=root' -d '{"admin": true}'
curl -X POST 'http://localhost:8086/db/grafanaconf/users/soushi?u=root&p=root' -d '{"admin": true}'
2-B GUIベースでデータベースを作成します。
2-B.1 ホストVMから、influxDBのフロントエンド(8083番ポート)にアクセスします。
設定値 |
値 |
初期ログインID |
root |
初期パスワード |
root |
ホストネーム |
10.0.0.1 |
ホストポート番号 |
8086 |
2-B.2 Grafanadbで利用するためのデータベースを2つ作成します。
設定値 |
値 |
データベース名 |
grafanadb |
Shard Spaces Space名 |
default |
Shard Spaces Retention |
inf |
Shard Spaces Duration |
7d |
Shard Spaces RegEx |
/.*/ |
Shard Spaces RF |
1 |
Shard Spaces Split |
1 |
設定値 |
値 |
データベース名 |
grafanaconf |
Shard Spaces Space名 |
default |
Shard Spaces Retention |
inf |
Shard Spaces Duration |
7d |
Shard Spaces RegEx |
/.*/ |
Shard Spaces RF |
1 |
Shard Spaces Split |
1 |
2-B.3 データベース操作用のユーザーを追加します。
設定値 |
値 |
データベース名 |
grafanadb |
Username |
soushi |
Password |
soushi |
Admin? |
true(checked) |
設定値 |
値 |
データベース名 |
grafanaconf |
Username |
soushi |
Password |
soushi |
Admin? |
true(checked) |
全コード
mkdir /usr/local/download/
cd /usr/local/download/
yum -y install wget
wget http://s3.amazonaws.com/influxdb/influxdb-latest-1.x86_64.rpm
rpm -ivh influxdb-latest-1.x86_64.rpm
/etc/init.d/influxdb start
curl -X POST 'http://localhost:8086/db?u=root&p=root' -d '{"name": "grafanadb"}'
curl -X POST 'http://localhost:8086/db?u=root&p=root' -d '{"name": "grafanaconf"}'
curl -X POST 'http://localhost:8086/db/grafanadb/users?u=root&p=root' -d '{"name": "soushi", "password": "soushi"}'
curl -X POST 'http://localhost:8086/db/grafanaconf/users?u=root&p=root' -d '{"name": "soushi", "password": "soushi"}'
curl -X POST 'http://localhost:8086/db/grafanadb/users/soushi?u=root&p=root' -d '{"admin": true}'
curl -X POST 'http://localhost:8086/db/grafanaconf/users/soushi?u=root&p=root' -d '{"admin": true}'