最新版InfluxDBをUbuntu 20.04 LTSへインストールする

最新版InfluxDBをUbuntu 20.04 LTSへインストールする サーバー
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のバージョン対応関係は、以下。

OSInfluxDBリリース日
Ubuntu 18.04 LTS1.1.12016/12/06
Ubuntu 20.04 LTS1.6.42018/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の動作確認の説明でした。

タイトルとURLをコピーしました