InfluxDB
-
Just tracking note here so others can see. I'm starting to package InfluxDB. Probably will get 1.x before 2.0 as 2.0 is wildly different and seems to have some issues changing the default storage path (working through that though) Will see. Stay tuned if you are interested.
-
An early functional draft is available for review/comment: https://git.cloudron.io/doodlemania2/influxdb
-
I think you may want to use
"healthCheckPath": "/health"
, rather than/metrics
, as that endpoint is actually designed for this use.Some other confusion: influxd 1.x uses a different configuration format, so I think config.json isn't really useful, as JSON is 2.x and up (I am not certain, I have only used 1.x so far).
Run
/app/code/influxd config
to get a snapshot of the default configuration.Once I had that in place, lastly, for whatever reason, I had to pass the config file explicitly as a parameter rather than using the environment variable you were trying:
exec "/app/code/influxd" -config /app/data/influxd.conf
instart.sh
.Some other configuration recommendations/thoughts:
- I think you should probably also recommend (or somehow, require) authentication, along with creating a default user account, since this is probably going to be run on public-facing servers. For 1.x, see here.
- You should also consider setting
reporting-disabled = "true"
in the configuration, to prevent phoning home. See the documentation notes here.
-
@doodlemania2 I will try to do so if / when I can get the time to finish poking around, and verify that it actually works once I finish. I just had a child last week, so spare time is a bit hard to come by at present
-
Just brain-dumping from trial and error session...
For authentication, start without auth first. Then connect influx client, and run:
CREATE USER admin WITH PASSWORD 'foobar' WITH ALL PRIVILEGES;
Then, you can safely enable auth (set the config keys `http/auth-enabled, http/pprof-auth-enabled to true), and will need that user/pass to run any queries.
Not sure if there's an easier way or not... If there isn't, perhaps this could be done via start.sh somehow - detect that a given launch is the first one (if the db doesn't exist yet) - start it, create an admin user, then stop & restart with auth enabled.
-
@robin So, I like your idea of using the native one better for authentication. Just don't have any experience with it. Would love if you could do a PR showing what you're trying to compare! Making a few other updates as well.
-
I haven't had a chance to look at authentication (or anything else, really) yet unfortunately. Life's been busy.
I did push up what I appear to be running, though, I haven't had a chance to test it independently (I am not using your repo directly, but a rather customised setup, so I copied my changes into it by hand).
You can see my fork here: https://github.com/rburchell/cloudron-influxdb
-
Thanks for letting me know @doodlemania2. I've tried to build it but am running into the following issue - "COPY failed: stat usr/bin/influxd: file does not exist" - which you can see here:
Step 1/10 : FROM influxdb:latest as final ---> a6cdd3eeabf3 Step 2/10 : FROM cloudron/base:2.0.0@sha256:f9fea80513aa7c92fe2e7bf3978b54c8ac5222f47a9a32a7f8833edf0eb5a4f4 ---> afa4cfc125b4 Step 3/10 : COPY --from=final /usr/bin/influxd /app/code/influxd COPY failed: stat usr/bin/influxd: file does not exist child_process.js:669 throw err; ^ Error: Command failed: docker build -t ei8fdb/influxdb:20210405-095545-77686303f -f Dockerfile /home/bernard/code/influxdb
Do you have any suggestions? I'm following this documentation. Thanks.
-
@ei8fdb the error is what it reads
usr/bin/influxd: file does not exist
The file or path does not exist.https://git.cloudron.io/doodlemania2/influxdb/-/blob/master/Dockerfile
COPY --from=final /usr/bin/influxd /app/code/influxd COPY --from=final /usr/bin/influx /app/code/influx
I assume @doodlemania2 has influxdb installed locally and that's why he used these paths to copy the binary files.
Also binary files have no place in git so it's kinda understandable.You can download the files here https://docs.influxdata.com/influxdb/v2.0/get-started/?t=Linux
-
@brutalbirdie yes that's right - i use a local copy of the influx binaries to manage the server running in cloudron. Thanks for picking this up - been out on vacation
-
-
Just wanted to put a warning out that databases are very different from webapps and need special care for backup and updates. I suspect Influx DB from it's name is a database and not just a web app. So, please be careful about installing a databases as an app on Cloudron.
-
Just wanted to put a warning out that databases are very different from webapps and need special care for backup and updates. I suspect Influx DB from it's name is a database and not just a web app. So, please be careful about installing a databases as an app on Cloudron.
ok, so when do you plan to implement it into Cloudron?
-
@doodlemania2 running a database is no issue. Issue comes when trying to restore and upgrade. When restoring, you have to be sure that the backup is atomic/consistent. It's basically backing up the raw files of a database and the restore may or may not work (On Cloudron, this is why we create "dumps" of the database and do not backup raw database files) . Also, in many databases, the files are not portable across db versions (for upgrades).
-
Ah yes - 100% - and is definitely risky if you are ingesting a lot of data (the point of influx). For me, the two times I've restored (practice) were fine because I didn't end up with a transaction in the middle of the backup, so no corruptions. But absolutely possible.
-
@doodlemania2 said in InfluxDB:
Ah yes - 100% - and is definitely risky if you are ingesting a lot of data (the point of influx). For me, the two times I've restored (practice) were fine because I didn't end up with a transaction in the middle of the backup, so no corruptions. But absolutely possible.
Hey, can you please tell me, how I can install your InfluxDB package on my Cloudron Server ?