InfluxDB2 and environment variables/config file

Hey folks!

I was going to install influxDB for our needs (few thousands of clients, tonns of metrics) with telegraf, influx-relay and Grafana.
Had a lot of experience with TICK stack.
I have not heard about InfluxDB2 and I had a huge frustration.

Could you please answer on some points and maybe provide a good alternative?

  1. No config files - everything via arguments to cli daemon and UI
  2. No environment variables supported
  3. No service for systemd/init (not a problem, but take a look at point 2 - that’s a problem!)
  4. Everything in one file! Really? What about unix way? What’s the terrible solution? I need just TSDB, that’s all!

I understand that this is alpha only and we shouldn’t use it in production, but will this adrressed in the future? Can’t find this in the roadmap.

I really dunno - should we use TICK and wait for influx2.0 as just TSDB or don’t waste time and take a look to another solution.

Any thoughts?

Thanks,
Ivan

1 Like

Hi Ivan ,welcome to the community ,

Your feedback and questions about 2.0 are very valuable ,
everybody is encouraged to test version 2.0 but
you can continue using the 1.x TICK stack while InfluxDB 2.0 is in alpha ,
More features are being added to 2.0 and the developers ask for and listen to feedback

Best regards ,

Hi,

I am in sort of a similar situation here as the OP.

I am trying to set up InfluxDB2 instance for a local dev environment (not production) and while there are many positives–it is relatively easy and straight-forward to set up–there are quite a few frustrations I’ve run into:

  • Like OP mentioned, the way to configure this is kind of opaque at the moment. The only way I can see that this can be configured is via command line arguments. Fine, but what are the defaults for those arguments?
  • I am trying to set up Influxdb + Telegraf in a docker-compose and currently it is proving to be difficult to do in an automated way. There are lots of manual set-up steps that I need to take to get those two working together:
    1. Initial set-up (organization+bucket+user+password)
    2. Create Telegraf user + auth token (in newer builds, this required auth token of the initial user created in the previous step)
    3. Manually Spin up Telegraf instance with the influx token created earlier
  • None of the steps before are scriptable - i.e. even though there is a command line interface, I need to have a initial user auth token to perform any subsequent steps, which is not available from command line at all

Lacking the ability to do automated setup without going through the GUI is an automatic no-go for my project.

2 Likes

TL;DR SUGGESTIONS:

IMHO: For OSS users, it is too complex/opaque for most Devops people how to add users, create the DB, get the Api token, only after lots of time invested&fiddling did I understand I could start Influxd, use ‘influx setup …’ and then use ~/.influxdbv2/credentials as the token-cache/token-source.
Maybe this is the tension between providing a cloud service vs. OSS package.

I suspect if you ask any Ansible/Chef/Puppet/Vagrant user how do programatically install instances of influx 2.x and telegraf you will watch them suffer as they try to do influxd setup, token capture and telegraf configuration.

This is not a criticism of Influx 2, etc, but hopefully constructive feedback.
I have gone through the process of writing Ansible playbooks to install Influx 2.x, and it’s a real turn off, and as others have stated here, not easy to do.
I would suspect you will have automation-oriented dev-ops types re-considering there options when they try to automate remote Influxd installs along with token capture for remote telegraf setup & install.

Again, I hope this is helpful.
I am very excited about Influx 2.x, and your other tools, and hope you value candid feedback about actual in the field use.

Thanks,
Cameron
PS being able to set the API token rather than have it generated would be a huge boon to dev-ops users looking to deploy Influxd at scale.

@thomas
It looks like it is possible to get the API token of the ‘master’ user using scripting, I was able to do it like this:

  1. stop influxd from running
  2. $ influx --local auth find|head -2 | tail -1| cut -f2

Some may suggest not using the ‘master’ user/api-token for api access, but that’s how you can do it if needed. (you can adjust the head/tail numbers to get the token from a 2nd user, if created, for example, also)

After doing some research, it looks like it might even be easier to create/capture the token when ‘influxd’ is running:

root@120792 ~# influx setup -b bucket1 -f -o org1 -p password -u user1 
Your token has been stored in /root/.influxdbv2/credentials.
User    Organization    Bucket
user1   org1            bucket1