sudo apt install influxdb
InfluxDBは、上記コマンドでインストールしてはいけません。
古い1系が、インストールされてしまいます。
仮に2系だったとしても最新ではありません。
この記事では、最新版のInfluxDBをインストールする方法を解説します。
本記事の内容
- InfluxDBとは?
- OS標準のInfluxDB
- 最新版InfluxDBのインストール
- InfluxDBの動作確認
それでは、上記に沿って解説していきます。
InfluxDBとは?
InfluxDBは、オープンソースの時系列データベースです。
主に、以下の分野で利用されます。
- 運用監視
- アプリケーションメトリック
- IoTセンサーデータ
- リアルタイム分析
多くのデータソースからデータ収集が可能です。
それを可能にしているのが、Telegraf pluginとなります。
Telegraf pluginとは、データ連携ための仕組みです。
それが、データベース、Webサーバー、IoTデバイス毎に用意されています。
Telegraf 1.18用のプラグイン検索
https://docs.influxdata.com/telegraf/v1.18/plugins/
上記画面で必要なプラグインを検索することが可能です。
ある程度一般的なモノであれば、プラグインは用意されているでしょう。
例えば、Webサーバーであれば以下が検索にヒットします。
- Apache HTTP Server
- Apache Tomcat
- NGINX
有名どころは、すべてありますね。
データベース・キャッシュなら、以下がヒットします。
- Elasticsearch
- Memcached
- MongoDB
- MySQL
- PostgreSQL
- Redis
他にもまだまだあります。
そして、自作もありです。
自作とは、Pythonなどのプログラムから利用する方法のことです。
そのためのAPIドキュメントが、しっかりと用意されています。
https://docs.influxdata.com/influxdb/v2.0/api/
以上、InfluxDBについての説明でした。
次は、OS標準のInfluxDBについて確認します。
OS標準のInfluxDB
UbuntuやDebianには、公式のリポジトリが存在しています。
aptコマンドで簡単にインストールできるのは、その公式リポジトリがあるからです。
その公式リポジトリには、InfluxDBが登録されています。
一般的に利用されるモノは、公式リポジトリに登録されているということです。
InfluxDBもそれだけ、一般的に認知・利用されているということでしょう。
そんな便利な公式リポジトリですが、デメリットもあります。
OS毎にそれぞれのバージョンが固定されています。
時間の経過とともに、そうやって指定されたバージョンは古くなっていきます。
Ubuntu(LTS)とInfluxDBのバージョン対応関係は、以下。
OS | InfluxDB | リリース日 |
Ubuntu 18.04 LTS | 1.1.1 | 2016/12/06 |
Ubuntu 20.04 LTS | 1.6.4 | 2018/10/16 |
Ubuntu 20.04の場合、1.6.4がOS標準のInfluxDBのバージョンとなります。
InfluxDB 1.6.4は、2年半以上前のバージョンです。
また、InfluxDBの最新バージョンは2.0.7となります。
このInfluxDB 2.0.7は、2021年6月4日にリリースされています。
2年半以上前のソフトウェアは、さすがに古過ぎます。
OS標準のソフトウェアは、便利な反面で、このようなデメリットが存在します。
さらには、1系と2系でメインバージョン自体が異なります。
新規でInfluxDBで利用するなら、新しい2系をインストールしたいです。
実際、機能的にも大きく変更されています。
以上、OS標準のInfluxDBについて説明しました。
次は、最新版InfluxDBをインストールしていきます。
最新版InfluxDBのインストール
OSは、次のモノを使っています。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
まずは、Ubuntu 20.04のOS標準であるInfluxDBのパッケージを確認しましょう。
$ sudo apt show influxdb Package: influxdb Version: 1.6.4-1build1 Built-Using: golang-1.10 (= 1.10.4-2ubuntu1), golang-collectd (= 0.3.0+git20171025.606bd39-1), golang-github-beorn7-perks (= 0.0~git20160804.0.4c0e845-1), golang-github-bmizerany-pat (= 0.0~git20140625-5), golang-github-boltdb-bolt (= 1.3.1-5), golang-github-cespare-xxhash (= 1.0.0-3), golang-github-dgrijalva-jwt-go-v3 (= 3.1.0-2), golang-github-dgryski-go-bitstream (= 0.0~git20151205.0.27cd597-4), golang-github-glycerine-go-unsnap-stream (= 0.0~git20180323.9f0cb55-1), golang-github-golang-snappy (= 0.0+git20160529.d9eb7a3-2), golang-github-influxdata-influxql (= 0.0~git20180330.145e067-2), golang-github-influxdata-yamux (= 0.0~git20171107.1f58ded-5), golang-github-influxdata-yarpc (= 0.0~git20180222.f0da2db-1), golang-github-influxdb-usage-client (= 0.0~git20151204.0.475977e-5), golang-github-jsternberg-zap-logfmt (= 1.0.0-1), golang-github-jwilder-encoding (= 0.0~git20170811.b4e1701-3), golang-github-klauspost-compress (= 1.2.1-5), golang-github-klauspost-cpuid (= 1.1+dfsg1-4), golang-github-klauspost-crc32 (= 1.1-4), golang-github-klauspost-pgzip (= 1.1-1), golang-github-mattn-go-isatty (= 0.0.3-4), golang-github-opentracing-opentracing-go (= 1.0.2-1), golang-github-paulbellamy-ratecounter (= 0.2.0+git20170719.a803f0e-3), golang-github-peterh-liner (= 0.0~git20171122.3681c2a-3), golang-github-philhofer-fwd (= 0.0~git20151005.0.8fd9a4b-1), golang-github-prometheus-client-golang (= 0.9.0-1), golang-github-prometheus-client-model (= 0.0.2+git20171117.99fa1f4-1), golang-github-prometheus-common (= 0+git20180518.7600349-1), golang-github-retailnext-hllpp (= 1.0.0+git20170901.6e8b6d3-3), golang-github-roaringbitmap-roaring (= 0.4.7-1), golang-github-tinylib-msgp (= 1.0.2-2), golang-github-xlab-treeprint (= 0.0~git20180324.505f0ee-1), golang-go.crypto (= 1:0.0~git20180614.a8fb68e-1), golang-go.uber-atomic (= 1.2.0+git20170719.9.70bd126-1), golang-go.uber-multierr (= 1.1.0-1), golang-go.uber-zap (= 1.7.1+git20171031.f85c78b-5), golang-gogoprotobuf (= 1.0.0+git20180330.1ef32a8b-1), golang-golang-x-net-dev (= 1:0.0+git20180124.0ed95ab+dfsg-2), golang-golang-x-sync (= 0.0~git20171101.fd80eb9-1), golang-golang-x-sys (= 0.0~git20181026.95b1ffb-1), golang-golang-x-time (= 0.0~git20161028.0.f51c127-2), golang-goprotobuf (= 0.0~git20170808.0.1909bc2-2), golang-procfs (= 0+git20180613.7d6f385-1), golang-protobuf-extensions (= 1.0.0-2), golang-toml (= 0.3.0+git20170626.7.a368813-1), golang-x-text (= 0.0~git20170627.0.6353ef0-1ubuntu2) Priority: extra Section: universe/database Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Debian Go Packaging Team <pkg-go-maintainers@lists.alioth.debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 16.3 MB Depends: libc6 (>= 2.4), adduser, lsb-base (>= 3.0-6) Homepage: https://influxdata.com/time-series-platform/influxdb/ Download-Size: 4,090 kB APT-Sources: http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages Description: Scalable datastore for metrics, events, and real-time analytics InfluxDB is a time series, metrics, and analytics database. It’s written in Go and has no external dependencies. That means once you install it there’s nothing else to manage (such as Redis, ZooKeeper, Cassandra, HBase, or anything else). InfluxDB is targeted at use cases for DevOps, metrics, sensor data, and real-time analytics.
インストール対象となるInfluxDBのバージョンが、1.6.4であることが確認できます。
このバージョンではなく、最新であるInfluxDB 2.0.7をインストールしたいわけです。
インストールは、次の2つの処理に分けて説明します。
- debパッケージのダウンロード
- debパッケージのインストール
debパッケージのダウンロード
InfluxDB公式ページ
https://portal.influxdata.com/downloads/
公式のダウンロードページにアクセスします。
「Version」は、基本的にはそのままでOK。
「Platform」は、以下のモノから選択します。
- Docker Image
- macOS
- Ubuntu & Debian
- Ubuntu & Debian (ARM 64-bit)
- RedHat & CentOS
- RedHat & CentOS(ARM 64-bit)
- Linux Binaries (64-bit)
- Linux Binaries (ARM 64-bit)
- Windows Binaries (64-bit) – using PowerShell
ARMが入っているのが、IoTへの対応を物語っています。
今回は、aptコマンドでインストールします。
したがって、「Ubuntu & Debian」を選択。
記載されているコマンドを実行しましょう。
debパッケージのダウンロードからです。
$ wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.7-amd64.deb
上記を実行すると、ファイルのダウンロードが始まります。
ダウンロードが完了すると、以下のファイルが保存されています。
$ ls influxdb* influxdb2-2.0.7-amd64.deb
ダウンロードしたファイルのSHA256ハッシュ値を確認します。
$ sha256sum influxdb2-2.0.7-amd64.deb 21ca5fb21b1c83a345e894f60eddaaeee254e60cd83ff7f01c0b7d7348d83779 influxdb2-2.0.7-amd64.deb
公式のダウンロードページに記載されているSHA256ハッシュ値と同じです。
debパッケージに問題はありません。
debパッケージのインストール
ダウンロードしたdebパッケージをインストールします。
$ sudo dpkg -i influxdb2-2.0.7-amd64.deb 以前に未選択のパッケージ influxdb2 を選択しています。 (データベースを読み込んでいます ... 現在 109249 個のファイルとディレクトリがインストールされています。) influxdb2-2.0.7-amd64.deb を展開する準備をしています ... influxdb2 (2.0.7) を展開しています... influxdb2 (2.0.7) を設定しています ... Created symlink /etc/systemd/system/influxd.service → /lib/systemd/system/influxdb.service. Created symlink /etc/systemd/system/multi-user.target.wants/influxdb.service → /lib/systemd/system/influxdb.service.
処理が終わったら、パッケージの確認をしましょう。
$ sudo apt show influxdb Package: influxdb Version: 1.6.4-1build1 ~省略~
「あれ?変わってない!!」
はい、変わっていません。
公式の手順に従うと、「influxdb2」というパッケージ名で最新版InfluxDBが登録されます。
「2」と付けることにより、1系と区別しているのでしょう。
それなら、その名前でパッケージを確認しましょう。
$ sudo apt show influxdb2 Package: influxdb2 Version: 2.0.7 Status: install ok installed Maintainer: support@influxdb.com Installed-Size: 200 MB Conflicts: influxdb Homepage: https://influxdata.com Vendor: InfluxData Download-Size: 不明 APT-Manual-Installed: yes APT-Sources: /var/lib/dpkg/status Description: Distributed time-series database.
以上、最新版InfluxDBのインストールについて説明しました。
最後に、InfluxDBの動作確認を行います。
InfluxDBの動作確認
InfluxDBの起動
$ sudo systemctl start influxdb
InfluxDBの状況確認
$ sudo service influxdb status ● influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-06-16 10:59:47 JST; 47s ago Docs: https://docs.influxdata.com/influxdb/ Main PID: 6292 (influxd) Tasks: 8 (limit: 9513) Memory: 51.3M CGroup: /system.slice/influxdb.service └─6292 /usr/bin/influxd
「Active: active (running)」起動中を確認できます。
InfluxDBの停止
$ sudo systemctl stop influxdb
上記を実行直後の起動状況は、以下。
vagrant@ubuntu-focal:~$ sudo service influxdb status ● influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled) Active: inactive (dead) since Wed 2021-06-16 11:01:46 JST; 30s ago Docs: https://docs.influxdata.com/influxdb/ Process: 6292 ExecStart=/usr/bin/influxd (code=exited, status=0/SUCCESS) Main PID: 6292 (code=exited, status=0/SUCCESS)
「Active: inactive (dead)」停止中だとわかります。
InfluxDBのバージョン確認
InfluxDBの本体(サーバー)
$ influxd version InfluxDB 2.0.7 (git: 2a45f0c037) build_date: 2021-06-04T19:17:40Z
InfluxDBのクライアントツール
$ influx version Influx CLI 2.0.7 (git: 2a45f0c037) build_date: 2021-06-04T19:17:40Z
InfluxDB本体をインストールしたマシン上での確認のため、同じバージョンとなっています。
本体とクライアントは混同しないように注意してください。
次の記事では、本体とクライアントにおける勘違いの例について触れています。
以上、InfluxDBの動作確認の説明でした。