DownloadAndInstallInfluxDBForPOWER

Downloading and Installing Influx 1.7 for Linux on POWER8/POWER9

If you want to run InfluxDB on Linux on POWER8 or POWER9 to contact Influxdata.com and ask for an official download image.

Download Influxdb for Linux on POWER

  • influx17_for_Linux_on_Power.tar.gz - 41 MB tar archive and gzipped
  • Assuming POWER8 or POWER9 for Little Endian support
  • Content
    -rwx------ 1 root root 20504976 May 26 21:49 influx
    -rw-r--r-- 1 root root 41159025 May 28 15:28 influx17_for_Linux_on_Power.tar.gz
    -rwx------ 1 root root 17239704 May 26 21:49 influx_inspect
    -rwxr-xr-x 1 root root     1437 May 28 15:28 influx_power_install.sh
    -rwx------ 1 root root 10044480 May 26 21:49 influx_stress
    -rwx------ 1 root root 18639600 May 26 21:49 influx_tsm
    -rwx------ 1 root root 34648688 May 26 21:49 influxd
    -rw------- 1 root root    20864 May 26 21:49 influxdb.conf
    -rw------- 1 root root      498 May 26 21:49 influxdb.service
    -rwx------ 1 root root     5702 May 26 21:49 init.sh
    

Status and Details

This is in a "It seems to work OK" state - more testing will be done as I move to make this the default DB for my testing

  • Install = easy (see below)
  • Starting influxd (the database) and creating the initial database = easy
  • Influx CLI and "create database njmon" = works
  • Used the njmon Injector to bulk load njmon JSON files = works
  • Connect from Grafana and drawer graphs = works
  • Please report issues that fail on Power but work on AMD64 (x86_64) to me nigelargrifiths@hotmail.com

Miraculously the same binary based on InfluxDB 1.7 created on Ubuntu 18.04.02 on Power runs on of the following

  • Canonical Ubuntu 18.04.02 - of course
  • SuSE SLES 15
  • Red Hat RHEL 7.5 (and we assume 7.6 unless Red Hat messed up binary compatibility = unlikely)
  • Red Hat RHEL 8.0 (Recently release)
  • Perhaps this is clever programming from Influxdata or a side effect of using Go.

What as been done:

  1. Downloaded the open source version of InfluxDB 1.7 from GitHub.
  2. Installed Google's golang version 10+ - Go is the language used for InfluxDB code.
  3. Compiled the Influxdb code.
  4. Found that InfluxDB is really only two binaries and some fluff!
    1. "influx" the CLI access for InfluxDB commands (like "create database njmon" and "show database").
    2. "influxd" the database engine that does the real work.
    3. Plus a couple of optional programs for testing, stress and dumping a database.
  5. There is a config file "influxdb.conf" to over-rule the defaults but the built-in default settings work fine.
  6. The database files by default go in /var/lib/influxdb
  7. The log by default goes in /var/log/influxdb
  8. Although "systemd" can be used to start/stop influxdb it is not necessary to get started there is a small init.sh script that does the work with

start,stop,status,restart options.

  1. To be blunt I gave up with systemd - you might like to test it and provide feedback.
  2. On initial startup and if the binary "influxdb" has read/write access to the database directory then it builds the initial database automatically.

Installation is very simple:

Part1:

  1. Download this Gzipped tar file.
  2. Copy it to your Linux on POWER8 or POWER9 server running Ubuntu 18.04, SLES 15, RHEL7.5+ or RHEL 8
    • I am not supporting POWER7 as that was Large Endian and lets face it pretty old kit now.
  3. Assuming you have the OS up to date via repo packages
  4. gunzip XXX.tar.gz
  5. tar xvf XXX.tar
    • All the files are saved in the current directory.

Part 2:

  1. Create user group influxdb and user influxdb in the influxdb group
    • Made stupidly complex by Ubuntu, SLES and RHEL having different commands names to do this - doh!
    # RUN THIS AS THE ROOT USER
    addgroup influxdb       #Ubuntu
    groupadd influxdb       #RHEL
    adduser --ingroup influxdb influxdb    # Ubuntu
    adduser --gid influxdb influxdb        # RHEL
    useradd --gid influxdb influxdb         # SLES
    
    echo Test the results
    echo Group: $(grep influxdb /etc/group)
    echo User: $(grep influxdb /etc/passwd)
    

Part 3: Use the bash script below and included in the download files to do the following

  1. Place the binaries in /usr/bin
  2. Put the config file at /etc/influxdb/influxdb.conf
  3. Create the database and logging directories with the right access permissions
  4. Add the systemd files and set them up

Here is the script details

# RUN THIS AS THE ROOT USER
cp influx /usr/bin/influx
cp influxd /usr/bin/influxd
cp influx_inspect /usr/bin/influx_inspect
cp influx_stress /usr/bin/influx_stress
cp influx_tsm /usr/bin/influx_tsm
chmod ugo+x /usr/bin/influx*

mkdir /etc/influxdb
chmod ugo+r /etc/influxdb
cp influxdb.conf /etc/influxdb/influxdb.conf
chmod ugo+r /etc/influxdb/*

mkdir /usr/lib/influxdb
mkdir /usr/lib/influxdb/scripts
cp init.sh /usr/lib/influxdb/scripts/init.sh
chmod ugo+x /usr/lib/influxdb/scripts/init.sh

#Not actually used here - run the above init.sh script to start stop restart status
mkdir /usr/lib/systemd/system
cp influxdb.service /usr/lib/systemd/system/influxdb.service
ln /usr/lib/systemd/system/influxdb.service /etc/systemd/system/influxdb.service
ln /usr/lib/systemd/system/influxdb.service /etc/systemd/system/multi-user.target.wants/influxdb.service

#database goes here - created on first start up
mkdir /var/lib/influxdb
chown influxdb:influxdb /var/lib/influxdb

#log file goes in here created on first startup
mkdir /var/log/influxdb
chown influxdb:influxdb /var/log/influxdb

Part 4:

  1. RUN THIS AS THE ROOT USER
  2. ATo start influxdb, run: ./init.sh start
    • or /usr/lib/influxdb/scripts/init.sh start
  3. Check the log file /var/log/influxdb/influxdb.log has no failure messages
  4. Talk to the influxdb via its CLI: influx (note: no "d" at the end)
  5. For njmon I recommend creating one simple database: create database njmon
    • Check it worked: show databases
    • Control-d to exit out of influx
  6. This is now ready for you to add data to the influxdb called njmon using the njmon_injector

Note: Influxdata has InfluxDB 2.0 in Beta testing at the moment.

  • Once that is in Generally Available status - I intend compiling that and found the process is different.
  • There is a Cloud-based free but limited data service available for InfluxDB 2.0 but I don't see a Python3-Client yet. The current client may or may not work.