Commit Graph
100 Commits
Author SHA1 Message Date
Hector 8f7966cab3 add vet command and step to pipeline 2023-06-22 19:15:02 +01:00
Hector 8d457da2b9 Merge branch 'feat/add-new-dry-run-mode' into 'main'
feat: add new dry run mode

See merge request hectorjsmith/fail2ban-prometheus-exporter!98
2023-06-22 16:09:36 +00:00
Hector 9c1a10e309 feat: add new dry run mode (!98)
* Add a new *dry-run* mode to exit just before running the server
* This allows testing that the socket is working before starting the server

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/98
2023-06-22 16:09:36 +00:00
Hector 5275d280be Merge branch 'build/disable-cgo-for-makefile-build' into 'main'
build: disable cgo for makefile build

See merge request hectorjsmith/fail2ban-prometheus-exporter!97
2023-06-22 15:22:42 +00:00
Hector b9ab77d62d build: disable cgo for makefile build (!97)
* Disable `CGO` in the makefile build to avoid dependencies on external C libraries
* This also aligns with the build done for releases and docker images

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/97
2023-06-22 15:22:42 +00:00
Hector 5f879e1921 Merge branch 'feat/print-fail2ban-version-on-startup' into 'main'
feat: print fail2ban version on startup

See merge request hectorjsmith/fail2ban-prometheus-exporter!96
2023-06-22 15:16:12 +00:00
Hector 8e0284d9f0 feat: print fail2ban version on startup (!96)
* Print the version reported by `fail2ban-server` when the exporter starts up
* Logs an error if the connection to the server fails

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/96
2023-06-22 15:16:12 +00:00
Hector d1b65a2134 Merge branch 'chore/replace-ioutils-with-os-calls' into 'main'
chore: replace ioutil with os calls

See merge request hectorjsmith/fail2ban-prometheus-exporter!95
2023-06-22 14:33:57 +00:00
Hector dc342e3051 chore: replace ioutil with os calls (!95)
* Replace calls to deprecated `ioutil` functions with the `os` package

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/95
2023-06-22 14:33:56 +00:00
Hector 1508693dd6 Merge branch 'chore/rename-examples-folder' into 'main'
chore: rename examples folder

See merge request hectorjsmith/fail2ban-prometheus-exporter!94
2023-06-22 14:22:31 +00:00
Hector 594d9f26a1 chore: rename examples folder (!94)
* Rename the `examples` folder to `_examples` to distinguish it from source code folders

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/94
2023-06-22 14:22:31 +00:00
Hector 938860d5dc Merge branch 'set-dependency-scanning-config-1' into 'main'
ci: configure dependency scanning

See merge request hectorjsmith/fail2ban-prometheus-exporter!93
2023-06-21 17:50:43 +00:00
Hector cfa20f6c1d ci: configure dependency scanning (!93)
* Enable dependency scanning CI pipeline

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/93
2023-06-21 17:50:43 +00:00
Hector 211a5015d0 Merge branch 'chore/update-makefile-commands' into 'main'
chore: update makefile commands

See merge request hectorjsmith/fail2ban-prometheus-exporter!92
2023-06-21 15:02:11 +00:00
Hector 56ecc03341 chore: update makefile commands (!92)
* Tweak makefile commands and file formatting
* Remove command and build step for go mod formatting
* Add command to update project dependencies
* Add make command to list all make commands

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/92
2023-06-21 15:02:11 +00:00
Hector b32bbeb1cd Merge branch 'fix/set-http-server-timeouts' into 'main'
fix: set http server timeouts

See merge request hectorjsmith/fail2ban-prometheus-exporter!91
2023-06-21 11:09:39 +00:00
Hector 37b67643e8 fix: set http server timeouts (!91)
* Set timeout values when configuring the HTTP server to mitigate "Slowloris" vulnerability

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/91
2023-06-21 11:09:39 +00:00
Hector 1eec68b49b Merge branch 'refactor/move-server-setup-code-to-new-package' into 'main'
refactor: move server setup code to new package

See merge request hectorjsmith/fail2ban-prometheus-exporter!90
2023-06-21 10:58:43 +00:00
Hector 11c4b26c0b refactor: move server setup code to new package (!90)
* Move code setting up the HTTP server to it's own package
* This helps clean up the `main` function and make it easier to read
* Rename the `BasicAuthMiddleware` to remove reference to Basic since it can now handle any type of auth type

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/90
2023-06-21 10:58:43 +00:00
Hector 41b05f7e16 Merge branch 'refactor/rewrite-auth-handler-code' into 'main'
refactor: rewrite auth handler code

See merge request hectorjsmith/fail2ban-prometheus-exporter!89
2023-06-21 10:31:33 +00:00
Hector 3cff8ccd64 refactor: rewrite auth handler code (!89)
* Rewrite the code handling basic auth to make it easier to extend for other types of auth.
* The behaviour of the existing code is maintained.
* No changes to how basic auth is configured from a user's perspective.

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/89
2023-06-21 10:31:33 +00:00
Hector 3215fe5f4c Merge branch 'refactor/replace-cli-parser-with-kong' into 'main'
refactor: replace cli parser with kong

See merge request hectorjsmith/fail2ban-prometheus-exporter!88
2023-06-20 20:16:23 +00:00
Hector 43cab7adc2 refactor: replace cli parser with kong (!88)
https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/88
2023-06-20 20:16:23 +00:00
Hector d584345fc6 Merge branch 'ci/add-sast-step-to-pipeline' into 'main'
ci: add sast step to pipeline

See merge request hectorjsmith/fail2ban-prometheus-exporter!87
2023-06-20 17:24:16 +00:00
Hector 8974395bba ci: add sast step to pipeline (!87)
https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/87
2023-06-20 17:24:16 +00:00
Hector ad593dbd9b Merge branch 'docs/update-readme-with-latest-changes' into 'main'
docs: update readme with latest changes

See merge request hectorjsmith/fail2ban-prometheus-exporter!86
2023-06-20 16:34:25 +00:00
Hector f1e69fc4da docs: update readme with latest changes (!86)
Update `README` to reflect recent changes in the project build process.

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/86
2023-06-20 16:34:25 +00:00
Hector 30b92d61da Merge branch 'feat/tag-docker-images-with-extra-labels' into 'main'
feat: tag docker images with extra labels

See merge request hectorjsmith/fail2ban-prometheus-exporter!85
2023-06-20 07:20:11 +00:00
Hector 812f506432 feat: tag docker images with extra labels (!85)
Add a new build step to tag docker images with extra labels:
- `:latest`
- `:<major>`
- `:<major>.<minor>`

This job is only triggered on main release tags.

https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/merge_requests/85
2023-06-20 07:20:11 +00:00
Hector f29e127f5f Merge branch 'chore/update-go-and-dependencies' into 'main'
chore: update go and dependencies

See merge request hectorjsmith/fail2ban-prometheus-exporter!84
2023-06-19 21:59:42 +00:00
Hector d7f9b5c4ab chore: update go and dependencies
Update Go version to 1.20
Update dependencies to latest versions
2023-06-19 21:59:42 +00:00
Hector 56cc0b7901 Merge branch 'fix/disable-cgo-in-build' into 'main'
fix: disable cgo in goreleaser build

See merge request hectorjsmith/fail2ban-prometheus-exporter!83
2023-06-19 21:27:09 +00:00
Hector 53a1f12f39 fix: disable cgo in goreleaser build 2023-06-19 21:27:09 +00:00
Hector c19b986795 Merge branch 'chore/add-build-output-to-gitignore' into 'main'
chore: add build output to gitignore

See merge request hectorjsmith/fail2ban-prometheus-exporter!82
2023-06-19 20:52:48 +00:00
Hector d7cf78bd59 chore: add build output to gitignore 2023-06-19 20:52:47 +00:00
Hector 17e5a3835b Merge branch 'feat/automate-releases-using-goreleaser' into 'main'
feat: automate releases using goreleaser

See merge request hectorjsmith/fail2ban-prometheus-exporter!81
2023-06-19 20:37:30 +00:00
Hector e599570220 feat: automate releases using goreleaser 2023-06-19 20:37:30 +00:00
Hector baa157fc06 Merge branch 'chore/rewrite-dockerfile' into 'main'
chore: rewrite dockerfile

See merge request hectorjsmith/fail2ban-prometheus-exporter!80
2023-06-19 19:06:18 +00:00
Hector 772cdb52c5 chore: rewrite dockerfile
Rewrite the Dockerfile to be ready for fully automating releases using GoReleaser.
2023-06-19 19:06:18 +00:00
Hector 1d4ec79bac Merge branch 'docs/remove-changelog-file' into 'main'
docs: remove changelog file

See merge request hectorjsmith/fail2ban-prometheus-exporter!79
2023-06-19 18:44:58 +00:00
Hector c966da3a5f docs: remove changelog file
Removing the changelog file from the repo because we are moving to auto generating a changelog for each release.
This file has also always been out of date between releases, making it pointless to have in the repo itself.
2023-06-19 18:44:57 +00:00
Hector 0d5b771205 Merge branch 'chore/rewrite-make-commands' into 'main'
chore: rewrite make commands

See merge request hectorjsmith/fail2ban-prometheus-exporter!78
2023-06-19 18:37:27 +00:00
Hector 8ff64467db chore: rewrite make commands 2023-06-19 18:37:27 +00:00
Hector 95f9c821ff Merge branch 'chore/move-source-code-to-root-folder' into 'main'
chore: move source code to root folder

See merge request hectorjsmith/fail2ban-prometheus-exporter!77
2023-06-19 17:58:16 +00:00
Hector ae1285dc66 chore: move source code to root folder 2023-06-19 17:58:16 +00:00
Hector c3b6fb3b07 Merge branch 'chore/remove-hardcoded-tools' into 'main'
chore: remove hardcoded tools

See merge request hectorjsmith/fail2ban-prometheus-exporter!76
2023-06-19 17:50:28 +00:00
Hector 83be83d83d chore: remove hardcoded tools 2023-06-19 17:50:28 +00:00
Hector da991a22ee Merge branch 'release/0.7.2' into 'main'
Release/0.7.2

See merge request hectorjsmith/fail2ban-prometheus-exporter!75
2023-03-16 20:52:34 +00:00
Hector be58ab36ff docs: update changelog for release 2023-03-16 20:35:56 +00:00
Hector 9d1bdadab1 Merge branch 'chore/update-dependencies' into 'main'
chore: update dependencies

See merge request hectorjsmith/fail2ban-prometheus-exporter!74
2023-03-16 18:05:22 +00:00
Hector 3a77a0ad3a chore: update dependencies
Update all project dependencies to their latest versions.
2023-03-16 18:05:22 +00:00
Hector e005abfc1c Merge branch 'docs/update-example-grafana-dashboard' into 'main'
docs: update grafana dashboard

See merge request hectorjsmith/fail2ban-prometheus-exporter!73
2022-10-13 08:36:43 +00:00
Hector f6663d1ffd docs: update grafana dashboard
Update the example grafana dashboard to add support for multiple
exporter instances. This includes updating panel queries and display
names.
The grafana version has been bumped to 9.1.8.
2022-10-13 08:36:43 +00:00
Hector 482773713a Merge branch 'release/0.7.1' into 'main'
Release/0.7.1

See merge request hectorjsmith/fail2ban-prometheus-exporter!72
2022-09-18 20:38:46 +00:00
Hector 08157eda73 docs: update changelog for release 2022-09-18 21:32:49 +01:00
Hector 8c38a10245 Merge branch '23-exporter-does-not-fail-when-listening-fails' into 'main'
Resolve "Exporter does not fail when listening fails"

Closes #23

See merge request hectorjsmith/fail2ban-prometheus-exporter!71
2022-09-18 20:29:33 +00:00
Hector 04b84cc840 fix: report failure when server fails to start (#23)
Exit with an error when the server startup reports an error. For example, when the server fails to bind to the provided port.
2022-09-18 21:26:22 +01:00
Hector efa02e3c28 Merge branch 'release/0.7.0' into 'main'
Release/0.7.0

See merge request hectorjsmith/fail2ban-prometheus-exporter!70
2022-06-19 20:01:55 +00:00
Hector 6818f034c0 docs: update changelog for release 2022-06-19 17:18:13 +01:00
Hector 77b69da93c Merge branch '21-exit-exporter-when-fail2ban-is-restarted' into 'main'
Exit exporter when fail2ban is restarted

Closes #21

See merge request hectorjsmith/fail2ban-prometheus-exporter!69
2022-06-19 07:20:45 +00:00
Hector fd58b20162 feat: option to exit on socket conn error (#21)
Add a new startup option to exit the exporter when an error occurs when connecting to the fail2ban socket file.
This option is set to "false" by default.
2022-06-19 07:20:45 +00:00
Hector 951ceccf67 Merge branch 'rename-project-module-to-include-url-path' into 'main'
Rename project module to include url path

See merge request hectorjsmith/fail2ban-prometheus-exporter!68
2022-02-25 22:01:55 +00:00
Hector 24ee5d96bd refactor: rename project module
Rename the project module to include the full project URL instead of just
the name. This better aligns with Go best-practices.
2022-02-25 21:53:38 +00:00
Hector 7c2bcecf7a Merge branch 'release/0.6.0' into 'main'
Release/0.6.0

See merge request hectorjsmith/fail2ban-prometheus-exporter!67
2022-02-20 17:13:25 +00:00
Hector 939fbf72f7 docs: update changelog for release 2022-02-20 16:59:16 +00:00
Hector 2759dcb159 Merge branch 'update-project-documentation' into 'main'
Update project documentation

See merge request hectorjsmith/fail2ban-prometheus-exporter!66
2022-02-20 16:44:27 +00:00
Hector 82b7e34866 docs: rewrite project readme
Rewrite the project README file to be more succinct and to the point. Add
new section on getting started quickly with either docker or the standalone
binary file.
Update CHANGELOG file with recent changes.
2022-02-20 16:44:27 +00:00
Hector 0eb4880286 Merge branch 'add-example-systemd-service-file' into 'main'
Add example systemd service file

See merge request hectorjsmith/fail2ban-prometheus-exporter!65
2022-02-20 09:05:38 +00:00
Hector 23e073ffde feat: add example systemd service file
Add a basic systemd service file to serve as an example on how to run the
exporter as a system service. Add short README with an overview of the
service file.
2022-02-20 09:05:38 +00:00
Hector b12ab669b1 Merge branch 'update-goreleaser-config' into 'main'
Update goreleaser config

See merge request hectorjsmith/fail2ban-prometheus-exporter!64
2022-02-20 08:46:40 +00:00
Hector 3911eca07e feat: rename output binary and archives
Update the goreleaser config to rename the output binary and archive names
to `fail2ban_exporter` instead of defaulting to the project name. This
better aligns with conventions used by other exporters.
Update Dockerfile and Makefile to follow the new naming scheme.
Update the output archives to wrap the build files in a folder. This makes
extracting the archives a little easier.

BREAKING CHANGE: Release binary name has been changed to `fail2ban_exporter`.
2022-02-20 08:46:40 +00:00
Hector cc68fe3f01 Merge branch 'add-mechanism-for-graceful-shutdown' into 'main'
Add mechanism for graceful shutdown

See merge request hectorjsmith/fail2ban-prometheus-exporter!63
2022-02-20 08:25:04 +00:00
Hector f6e328a0aa feat: correctly handle shutdown signals
Add a new method to the application startup to listen for OS shutdown
signals and handle them appropriately. A shutdown signal will cause the
app to exit immediately.
Use correct syntax for the `ENTRYPOINT` field in the Dockerfile to ensure
that OS signals get passed down to the running application.
2022-02-20 08:17:06 +00:00
Hector aedef536dd Merge branch 'update-changelog' into 'main'
Update changelog

See merge request hectorjsmith/fail2ban-prometheus-exporter!62
2022-02-19 17:10:25 +00:00
Hector 97ea58d86a docs: update changelog 2022-02-19 17:06:48 +00:00
Hector ab80610a3a Merge branch 'rewrite-application-cli-parameters' into 'main'
Rewrite application cli parameters

See merge request hectorjsmith/fail2ban-prometheus-exporter!61
2022-02-19 17:01:50 +00:00
Hector 6e575aa0fd feat: rewrite cli flags and environment variables
Replace existing CLI flags to make them more consistent and follow a more
standard format.
Remove CLI flags and environment variables that are no longer relevant.
Add short `-v` option for version flag.
Update README with new documentation.

BREAKING CHANGE: Replace `--socket` flag with `--collector.f2b.socket`.
BREAKING CHANGE: Merge `--port` flag and `--web.listen-address` into a single flag.
BREAKING CHANGE: Remove `--collector.textfile` flag, its value is now derived from `--collector.textfile.directory`.
BREAKING CHANGE: Remove `F2B_COLLECTOR_TEXT` and `F2B_WEB_PORT` environment variables.
2022-02-19 17:01:49 +00:00
Hector 7515698ec8 Merge branch 'simplify-docker-image-for-exporter' into 'main'
Simplify docker image for exporter

See merge request hectorjsmith/fail2ban-prometheus-exporter!60
2022-02-19 14:58:51 +00:00
Hector 0f0efe58af feat: remove startup script from docker image
Update the docker image to remove the `run.sh` script and instead run the
exporter directly. This keeps the docker image as simple as possible.
Update README file with extra info on how to collect textfile metrics in
a docker container.

BREAKING CHANGE: Using the textfile collector in docker now requires setting environment variables.
2022-02-19 14:10:36 +00:00
Hector e01d4cfe12 Merge branch 'update-exporter-logging-on-startup' into 'main'
Update exporter logging on startup

See merge request hectorjsmith/fail2ban-prometheus-exporter!59
2022-02-19 11:25:58 +00:00
Hector e2902b8cc2 feat: improve logging on startup
Update the exporter logging on startup to include the exporter version,
the path to the fail2ban socket, and whether basic-auth is enabled or not.
Fix code printing error messages on invalid CLI parameters to correct line
breaks and correctly print the "usage" information.
2022-02-19 11:21:58 +00:00
Hector ec10999814 Merge branch 'add-default-value-for-fail2ban-socket' into 'main'
Add default value for fail2ban socket

See merge request hectorjsmith/fail2ban-prometheus-exporter!58
2022-02-18 22:15:32 +00:00
Hector 1f27dace2d feat: add default value for fail2ban socket path
Update the CLI param parser to include a default value for the fail2ban
socket file path. This is the default location fail2ban creates the socket
file on an ubuntu-based system.
2022-02-18 22:15:32 +00:00
Hector 8452caf4c5 Merge branch 'update-changelog' into 'main'
Update changelog

See merge request hectorjsmith/fail2ban-prometheus-exporter!57
2022-02-18 21:52:01 +00:00
Hector 4bf63a6ed6 docs: update changelog
Update the CHANGELOG file with recent unreleased changes.
2022-02-18 21:49:20 +00:00
Hector 9f0327b028 Merge branch '19-update-creation-of-docker-image-labels' into 'main'
Resolve "Update creation of docker image labels"

Closes #19

See merge request hectorjsmith/fail2ban-prometheus-exporter!56
2022-02-12 17:31:01 +00:00
Hector 05f236902a ci: update creation of tags (#19)
Update creation of docker tags to only tag actual releases with the
`:latest` tag. Builds on the main branch are now tagged with a `:nightly`
tag.
2022-02-12 17:31:01 +00:00
Hector 191dda3b9f Merge branch '18-dash-missing-in-docker-run-sh-line-4-version' into 'main'
Resolve "Dash missing in /docker/run.sh line 4 "-version""

Closes #18

See merge request hectorjsmith/fail2ban-prometheus-exporter!55
2022-01-31 22:51:13 +00:00
Hector 93da909b0a fix: use correct flag in dockerfile (#18)
Update the Dockerfile entrypoint script to use the correct version flag
syntax. The flag now requires two dashes instead of one. The syntax for
the texfile collector has also change, and the script was updated
accordingly.
Fix incorrect order of variable assignment when parsing CLI flags.
2022-01-31 22:51:13 +00:00
Hector 98d376ac60 Merge branch '17-configure-exporter-using-environment-variables' into 'main'
Resolve "Configure exporter using environment variables"

Closes #17

See merge request hectorjsmith/fail2ban-prometheus-exporter!54
2022-01-30 21:32:48 +00:00
Hector b7e317edbc feat: configure tool using environment variables (#17)
Replace CLI parsing functionality with the `kingpin` library to better
support configuring the tool with environment variables.
Add new environment variables to configure the tool.

BREAKING CHANGE: CLI params now require two dashes instead of one (e.g. `--socket`)
2022-01-30 21:32:48 +00:00
Hector d92f7f79b6 Merge branch '16-add-basic-auth' into 'main'
Resolve "Add basic auth"

Closes #16

See merge request hectorjsmith/fail2ban-prometheus-exporter!53
2022-01-14 21:36:49 +00:00
Hector 6f76a03118 feat: add support for basic auth (#16)
Add new CLI parameters to enable protecting the API endpoints with basic
auth authentication.
Wrap the server endpoints in a new auth middleware that protects it using
the provided basic auth credentials (if set).
Store the provided basic auth credentials as hashed values to prevent them
from being accidentally leaked.
Add unit tests to ensure the new functionality works as expected.
2022-01-14 21:36:49 +00:00
Hector 013e8f30c9 Merge branch '15-update-sample-grafana-dashboard' into 'main'
Update sample grafana dashboard

Closes #15

See merge request hectorjsmith/fail2ban-prometheus-exporter!52
2021-12-23 11:42:10 +00:00
Hector ae08a798b6 refactor: update grafana dashboard (#15)
Update the sample Grafana dashboard to use a variable for the data
source. All panels have been updated to use the new variable. This makes
it easier to import the dashboard and have it work with different data
sources.
2021-12-23 11:39:15 +00:00
Hector cf71dc7449 Merge branch 'release/0.5.0' into 'main'
Release/0.5.0

See merge request hectorjsmith/fail2ban-prometheus-exporter!51
2021-12-21 21:25:00 +00:00
Hector e0531694dd docs: update changelog for release 2021-12-21 21:16:38 +00:00
Hector c2bc99afc2 Merge branch 'remove-deprecated-database-metric-collector' into 'main'
Remove deprecated database metric collector

See merge request hectorjsmith/fail2ban-prometheus-exporter!50
2021-12-21 17:46:46 +00:00
Hector 497e2ff692 remove: references to db collector
Remove final references to the deprecated database metric collector.
Remove counter for db connection errors.

BREAKING CHANGE: Remove `-db` CLI flag.
2021-12-21 17:42:42 +00:00
Hector 157e065369 Merge branch '15-add-sample-grafana-dashboard' into 'main'
Resolve "Add sample grafana dashboard"

Closes #15

See merge request hectorjsmith/fail2ban-prometheus-exporter!49
2021-12-21 17:29:00 +00:00