diff options
Diffstat (limited to 'README.adoc')
| -rw-r--r-- | README.adoc | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..644117a --- /dev/null +++ b/README.adoc @@ -0,0 +1,151 @@ += haminer +:toc: +:sectanchors: +:sectlinks: + +Library and program to parse and forward HAProxy logs. + +Supported forwarder, + +* Influxdb + + +== Requirements + +* https://golang.org[Go^] for building from source code +* https://git-scm.com/[git^] for downloading source code + +One of supported time series database for storing HAProxy log, either + +* https://portal.influxdata.com/downloads[InfluxDB^] +* https://questdb.io[QuestDB^] + + +== Building + +This steps assume that you already installed `Go` and `git`. + +Get the source code using git, + +---- +$ git clone https://git.sr.ht/~shulhan/haminer +$ cd haminer +$ make +---- + +The binary name is `haminer` build in the current directory. + + +== Configuration + +haminer by default will load it's config from `/etc/haminer.conf`, if not +specified when running the program. + +See +https://git.sr.ht/~shulhan/haminer/tree/main/item/cmd/haminer/haminer.conf[haminer.conf^] +for an example of possible configuration and their explanation. + + +=== Forwarders + +Currently, there are two supported database where haminer can forward the +parsed log: influxdb and questdb. +Haminer support Influxdb v1 and v2. + +==== Influxdb v1 + +For v1, you need to create the user and database first, + +---- +$ influx +> CREATE USER "haminer" WITH PASSWORD 'haminer' +> CREATE DATABASE haminer +> GRANT ALL ON haminer TO haminer +---- + +Example of forwarder configuration, + +---- +[forwarder "influxd"] +version = v1 +url = http://127.0.0.1:8086 +bucket = haminer +user = haminer +password = haminer +---- + +==== Influxdb v2 + +For v2, + +---- +$ sudo influx bucket create \ + --name haminer \ + --retention 30d +---- + +For v2, the example configuration is + +---- +[forwarder "influxd"] +version = v1 +url = http://127.0.0.1:8086 +org = $org +bucket = haminer +token = $token +---- + +==== Questdb + +For questdb the configuration is quite simple, + +---- +[forwarder "questdb"] +url = udp://127.0.0.1:9009 +---- + +We did not need to create the table, questdb will handled that automatically. + + +== Installation + +. Copy configuration from `$SOURCE/cmd/haminer/haminer/conf` to +`/etc/haminer.conf` + +. Update haminer configuration in `/etc/haminer.conf` ++ +-- +For example, +---- +[haminer] +listen = 127.0.0.1:5140 + +... +---- + +Add one or more provider to the configuration as the example above. +-- + +. Update HAProxy config to forward log to UDP port other than rsyslog. ++ +-- +For example, +---- +global + ... + log 127.0.0.1:5140 local3 + ... +---- +Then reload or restart HAProxy. +-- + +. Run the haminer program, ++ +-- +---- +$ haminer +---- +or use a +https://git.sr.ht/~shulhan/haminer/tree/main/item/cmd/haminer/haminer.service[systemd +service^]. +-- |
