# README
Frontman - at a glance
Frontman is a general-purpose monitoring proxy that performs checks on foreign hosts. The main goal is to check services and performs other checks, where no logon-rights are needed for. It's expected to be used in any kind of monitoring solutions, where agent-less checks must be executed over the network. Frontman is a robust check executor that can work in the background of any monitoring solution. It enables developers to build custom solutions. Frontman can be controlled by local Json files or via Json-based HTTP APIs.
Credits
![]() |
Project co-financed by the European Regional Development Fund under the Innovative Economy Operational Programme. Innovation grants. We invest in your future. |
What kind of checks frontman can perform
- ICMP ping
- TCP/UDP – check connection on port
- TCP/UDP – service check (check the connection and the common output pattern)
- SSL – check the certificate validity and expiration date
- HTTP web checks
Run the example
./frontman -i src/github.com/cloudradar-monitoring/frontman/example.json -o result.out
Use ctrl-c
to stop it
Command line Usage
Usage of frontman:
-c config file path (default depends on OS)
-d daemonize – run the process in background
-i JSON file to read the list (required if no hub_url specified in the config)
-o file to write the results (default ./results.out)
-r one run only – perform checks once and exit. Overwrites output file
-s username to install and start the system service
-u stop and uninstall the system service
-p print the active config
-v log level – overrides the level in config file (values "error","info","debug") (default "error")
-version show the frontman version
Configuration
On first run frontman will automatically create the config file and fill it with the default value.
Default config locations:
- Mac OS:
~/.frontman/frontman.conf
- Windows:
./frontman.conf
- UNIX:
/etc/frontman/frontman.conf
If some of the fields are missing in the config frontman
will use the defaults.
To print the active config you can use frontman -p
Also you may want to check the example config that contains comments on each field.
Logs location
- Mac OS:
~/.frontman/frontman.log
- Windows:
./frontman.log
- UNIX:
/etc/frontman/frontman.conf
How to build from sources
go get -d -u github.com/cloudradar-monitoring/frontman
go build -o frontman -ldflags="-X main.version=$(git --git-dir=src/github.com/cloudradar-monitoring/frontman/.git describe --always --long --dirty --tag)" github.com/cloudradar-monitoring/frontman/cmd/frontman
Build binaries and deb/rpm packages
– Install goreleaser
make goreleaser-snapshot
Build MSI package
Should be done on Windows machine
- Download go-msi and put it in the
C:\Program Files\go-msi
- Open command prompt(cmd.exe or powershell)
- Go to frontman directory
cd path_to_directory
- Run
make goreleaser-snapshot
to build binaries - Run
build-win.bat
Versioning model
Frontman uses <major>.<minor>.<buildnumber>
model for compatibility with a maximum number of package managers.
Starting from version 1.2.0 packages with even <minor>
number are considered stable.
Running as a docker container
Check dockerhub for available images.
Passing credentials
Username and password need to be configured via environment variables. You can pass them using the -e
flags.
docker run -d -e FRONTMAN_HUB_USER=YOUR_USERNAME -e FRONTMAN_HUB_PASSWORD=YOUR_PASS cloudradario/frontman:1.0.7