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}'