Commit Graph

30 Commits (db/fix-windows-test-build)

Author SHA1 Message Date
Geoffrey Wossum c35321b470
feat: add `--pid-file` option to write PID files (#25474)
Add `--pid-file` option to write PID files on startup. The PID filename
is specified by the argument after `--pid-file`. If the PID file already exists, influxd will exit unless the `--overwrite-pid-file` flag is also used.

Example: `influxd --pid-file /var/lib/influxd/influxd.pid`

PID files are automatically removed when the influxd process is shutdown.

Closes: 25473
2024-10-24 15:19:41 -05:00
Geoffrey Wossum 96bade409e
feat: add option to flush WAL on shutdown (#25444)
* feat: add option to flush WAL on shutdown

Add `--storage-wal-flush-on-shutdown` to flush WAL on database shutdown.
On successful shutdown, all WAL data will be committed to TSM files and the
WAL directories will not contain any .wal files.

Closes: #25422
2024-10-10 15:27:54 -05:00
Geoffrey Wossum 9fd91a554d
feat: disable file:// urls when hardening enabled (#24858)
Stacks and templates allow specifying file:// URLs. Add command line
option `--template-file-urls-disabled` to disable their use for people who don't require them.
2024-06-17 17:33:48 -05:00
davidby-influx 7d8884beca
feat: add optional stricter password requirements (#24857)
Allow password length and character class checking.

closes https://github.com/influxdata/influxdb/issues/24856
2024-04-04 12:27:58 -07:00
Jeffrey Smith II 692b0d5153
feat: add instance-id flag for identifying edge nodes (#23447)
* feat: add instance-id flag for identifying edge nodes

* refactor: rename tag to _instance_id
2022-06-16 12:18:11 -04:00
Jamie Strandboge 2c930fd127
feat: add --hardening-enabled option to limit flux/pkger HTTP requests (#23207)
Flux HTTP and template fetching requests do not perform IP address
checks for local addresses. This behavior on the one hand allows SSRF
(Server Side Request Forgery) attacks via authenticated requests but on
the other hand is useful for scenarios that have legitimate requirements
to fetch from private addresses (eg, hosting templates internally or
performing flux queries to local resources during development).

To not break existing installations, the default behavior will remain
the same but a new --hardening-enabled option is added to influxd to
turn on IP address verification and limit both flux and template
fetching HTTP requests to non-private addresses. We plan to enable new
security features that aren't suitable for the default install with this
option.  Put another way, this new option is intended to be used to make
it easy to turn on all security options when running in production
environments. The 'Manage security and authorization' section of the
docs will also be updated for this option.

Specifically for flux, when --hardening-enabled is specified, we now
pass in PrivateIPValidator{} to the flux dependency configuration. The
flux url validator will then tap into the http.Client 'Control'
mechanism to validate the IP address since it is called after DNS lookup
but before the connection starts.

For pkger (template fetching), when --hardening-enabled is specified,
the template parser's HTTP client will be configured to also use
PrivateIPValidator{}. Note that /api/v2/stacks POST ('init', aka create)
and PATCH ('update') only store the new url to be applied later with
/api/v2/templates/apply. While it is possible to have InitStack() and
UpdateStack() mimic net.DialContext() to setup a go routine to perform a
DNS lookup and then loop through the returned addresses to verify none
are for a private IP before storing the url, this would add considerable
complexity to the stacks implementation. Since the stack's urls are
fetched when it is applied and the IP address is verified as part of
apply (see above), for now we'll keep this simple and not validate the
IPs of the stack's urls during init or update.

Lastly, update pkger/http_server_template_test.go's Templates() test for
disabled jsonnet to also check the contents of the 422 error (since the
flux validator also returns a 422 with different message). Also, fix the
URL in one of these tests to use a valid path.
2022-03-18 10:25:31 -04:00
Sam Arnold e20b5e99a6
fix: remove nats for scraper processing (#23107)
* fix: remove nats for scraper processing

Scrapers now use go channels instead of NATS and interprocess communication.
This should fix #23085 .

Additionally, found and fixed #23106 .

* chore: fix formatting

* chore: fix static check and go.mod

* test: fix some flaky tests

* fix: mark NATS arguments as deprecated
2022-02-10 11:23:18 -05:00
William Baker afb167a2ca
feat: `query-memory-bytes` zero-value is unlimited (#23013) 2021-12-20 19:25:10 -05:00
William Baker c51a0df1ef
feat: error out when config file contains 1.x config values (#22996)
* feat: error out when config file contains invalid options

* feat: debug logging when loading a config file

* fix: only detect flags from 1.x

* test: update tests to use toml configs
2021-12-15 20:57:01 -06:00
Daniel Moran 2795c600c1
feat: add `--storage-write-timeout` flag to set write request timeouts (#22617) 2021-10-04 15:38:09 -04:00
William Baker 74eacf63ba
feat: add `--flux-log-enabled` flag for detailed flux logs (#22072)
* feat: add `--flux-log-enabled` flag for detailed flux logs

* feat: set query to unknown if not available
2021-08-30 14:42:05 -06:00
Daniel Moran 4dd2d7cc7f
fix: hard limit on field size while parsing line protocol (#22311)
Per https://docs.influxdata.com/influxdb/v2.0/reference/syntax/line-protocol/#string
we only support 64KB, but 1MB is a more realistic practical limit. Before this commit there was
no enforcement of field value size.


Co-authored-by: Sam Arnold <sarnold@influxdata.com>
2021-08-27 10:01:17 -04:00
William Baker e7685fff01
feat: add `ui-disabled` flag to run server with UI disabled (#21910)
* feat: add `ui-disabled` flag to run server with UI disabled

* chore: update CHANGELOG
2021-07-21 19:52:57 -06:00
Daniel Moran d747e7ec4e
feat: add config parameters to toggle WAL concurrency and timeouts (#21621)
* feat: add context parameter to Take() method on fixed limiter
* refactor: plumb context through to uses of Take()
* test: update tests to pass context as needed
* feat: add config toggles for setting WAL write concurrency & timeout
2021-06-09 11:03:53 -04:00
William Baker 19b0470ed7
feat: integrated sqlite db for metadata (#21543) 2021-05-25 12:12:07 -04:00
Daniel Moran 942f7095e7
fix(query): make config validation for query controller less strict (#21324)
* fix(query): accept queue-size > 0 when concurrency = 0
* fix(influxd): revert defaults for query settings to avoid validation err
* test: lower the default query concurrency used by test launchers
2021-04-28 17:27:37 -04:00
Daniel Moran 91d59d9588
fix(upgrade): ensure query config written by `influxd upgrade` is valid (#21321)
* test: refactor upgrade test to cover the config upgrade
* fix: ensure upgraded query config is valid
2021-04-28 15:41:44 -04:00
Daniel Moran ff6b55aca4
feat(flux): allow values of 0 to disable controller limits (#21127)
Co-authored-by: Sam Arnold <sarnold@influxdata.com>
2021-04-05 16:58:27 -04:00
Daniel Moran c5edd9092f
feat(http): add config parameters for HTTP timeouts (#20971) 2021-03-16 16:54:46 -04:00
Daniel Moran 9922863185
fix(tls): Update TLS strict cipher suite to actually work (#20921) 2021-03-16 10:45:27 -04:00
Daniel Moran 316eaa24b4
feat(http): add config option to disable metrics endpoint in influxd (#20963) 2021-03-15 15:11:23 -04:00
Daniel Moran 49b83b58ee
refactor: remove panics from CLI kit code and influxd CLI setup (#20863) 2021-03-04 17:18:21 -05:00
Daniel Moran 25738db42c
feat(http): allow for disabling pprof (#20827)
And translate pprof-enabled config during upgrade
2021-03-04 09:28:03 -05:00
Daniel Moran e77c4670d6
feat(cmd/influxd): add `nats-max-payload-bytes` config option to influxd (#20564) 2021-01-20 12:44:43 -08:00
Daniel Moran d8a4b4d6cb
feat(cmd/influxd): add `nats-port` config option to influxd server (#20561) 2021-01-20 10:53:56 -08:00
Daniel Moran e970aae778
feat(cmd/influxd): add `print-config` subcommand to support automation (#20524) 2021-01-19 12:34:12 -08:00
Daniel Moran afdcb18655
refactor: simplify how we set the top-level influxd logger (#20374) 2020-12-21 11:15:08 -08:00
Daniel Moran 6ed1922681
fix: don't use a finished context for graceful shutdown (#20355) 2020-12-16 18:56:21 -08:00
Daniel Moran 4235c12d64
refactor(cmd/influxd): parse log-level CLI opts directly to correct type (#20196) 2020-11-30 13:59:06 -05:00
Daniel Moran 81a671894d
refactor(cmd/influxd): separate CLI parsing from core launcher (#20109) 2020-11-30 09:38:27 -05:00