A golang implementation of endlessh exporting Prometheus metrics, visualized by a Grafana dashboard.

endlessh-go

A golang implementation of endlessh exporting Prometheus metrics, visualized by a Grafana dashboard.

Introduction

Endlessh is a great idea that not only blocks the brute force SSH attacks, but also wastes attackers time as a kind of counter-attack. Besides trapping the attackers, I also want to visualize the Geolocations and other statistics of the sources of attacks. Unfortunately the wonderful original C implementation of endlessh only provides text based log, but I do not like the solution that writing extra scripts to parse the log outputs, then exporting the results to a dashboard, because it would introduce extra layers in my current setup and it would depend on the format of the text log file rather than some structured data. Thus I create this golang implementation of endlessh to export Prometheus metrics and a Grafana dashboard to visualize them.

If you want a dashboard of sources of attacks and do not mind the endlessh server, besides trapping the attackers, does extra things including: translating IP to Geohash, exporting Prometheus metrics, and using more memory (about 10MB), this is the solution for you.

Getting Started

Clone the repo then build from source:

go build .
./endlessh-go &

Alternatively, you can use the docker image:

sudo docker run -d -p 2222:2222 shizunge/endlessh-go -logtostderr -v=1

It listens to port 2222 by default.

Then you can try to connect to the endlessh server. Your SSH client should hang there.

ssh -p 2222 localhost

If you want log like the C implementation, you need to set both CLI arguments -logtostderr and -v=1, then the log will go to stderr. You can set different log destinations via CLI arguments.

Usage

Usage of ./endlessh-go

  • -alsologtostderr
    • log to standard error as well as files
  • -conn_type string
    • Connection type. Possible values are tcp, tcp4, tcp6 (default "tcp")
  • -enable_prometheus
    • Enable prometheus
  • -geoip_supplier string
    • Supplier to obtain Geohash of IPs. Possible values are "off", "ip-api", "freegeoip" (default "off")
  • -host string
    • Listening address (default "0.0.0.0")
  • -interval_ms int
    • Message millisecond delay (default 1000)
  • -line_length int
    • Maximum banner line length (default 32)
  • -log_backtrace_at value
    • when logging hits line file:N, emit a stack trace
  • -log_dir string
    • If non-empty, write log files in this directory
  • -logtostderr
    • log to standard error instead of files
  • -max_clients int
    • Maximum number of clients (default 4096)
  • -port string
    • Listening port (default "2222")
  • -prometheus_entry string
    • Entry point for prometheus (default "metrics")
  • -prometheus_port string
    • The port for prometheus (default "2112")
  • -stderrthreshold value
    • logs at or above this threshold go to stderr
  • -v value
    • log level for V logs
  • -vmodule value
    • comma-separated list of pattern=N settings for file-filtered logging

Metrics

This golang implementation exports the following Prometheus metrics.

Metric Type Description
endlessh_client_open_count_total count Total number of clients that tried to connect to this host.
endlessh_client_closed_count_total count Total number of clients that stopped connecting to this host.
endlessh_sent_bytes_total count Total bytes sent to clients that tried to connect to this host.
endlessh_trapped_time_seconds_total count Total seconds clients spent on endlessh.
endlessh_client_open_count count Number of connections of clients.
Labels:
  • ip: IP of the client
  • country: Country of the IP
  • location: Country, Region, and City
  • geohash: Geohash of the location
endlessh_client_trapped_time_seconds count Seconds a client spends on endlessh.
Labels:
  • ip: IP of the client

The metrics is off by default, you can turn it via the CLI argument -enable_prometheus.

It listens to port 2112 and entry point is /metrics by default. The port and entry point can be changed via CLI arguments.

The endlessh-go server stores the geohash of attackers as a label on endlessh_client_open_count, which is also off by default. You can turn it on via the CLI argument -geoip_supplier. The endlessh-go uses service from either ip-api or freegeoip, which may enforce a query rate and limit commercial use. Visit their website for their terms and policies.

Dashboard

screenshot

The dashboard requires Grafana 8.2.

You can import the dashboard from Grafana.com using ID 15156

The IP addresses are clickable and link you to the ARIN database.

Comments
  • Some metrics missing

    Some metrics missing

    Hi, some metrics are missing from grafana dashboard.

    Grafana 8.3.4 Docker: '-logtostderr' '-v=1' '-enable_prometheus' '-geoip_supplier=freegeoip' - Can confirm that IP's, country and trap times metrics are getting to prometheus:2112/metrics (image below).

    image

    image

  • Max-Mind-DB how to?

    Max-Mind-DB how to?

    Hi,

    any chance of getting an example on how to use max-mind-db on endlessh-go?

    Because there are three different db on max-mind an each comes in two flavors.

    The linked online alternatives IP-API.com and freegeoip.live are offline.

    -geoip_supplier=max-mind-db -max_mind_db=/absolute/path/to/GeoLite2-Country.mmdb -geoip_supplier=max-mind-db -max_mind_db=./GeoLite2-Country.mmdb -geoip_supplier=max-mind-db -max_mind_db ./GeoLite2-Country.mmdb

    I guess I am using the wrong database because none of them worked...

    could you point me in the right direction? Thankx.

  • Can you provide an example docker-compose with everything predefined, so we can get the same dashboard running?

    Can you provide an example docker-compose with everything predefined, so we can get the same dashboard running?

    Hi, love the project, Can you provide an example docker-compose with everything predefined, so we can get the same mertic flowing into Prometheus for Grafana?

  • Bump github.com/prometheus/client_golang from 1.13.0 to 1.13.1

    Bump github.com/prometheus/client_golang from 1.13.0 to 1.13.1

    Bumps github.com/prometheus/client_golang from 1.13.0 to 1.13.1.

    Release notes

    Sourced from github.com/prometheus/client_golang's releases.

    1.13.1 / 2022-11-02

    • [BUGFIX] Fix race condition with Exemplar in Counter. #1146
    • [BUGFIX] Fix CumulativeCount value of +Inf bucket created from exemplar. #1148
    • [BUGFIX] Fix double-counting bug in promhttp.InstrumentRoundTripperCounter. #1118

    Full Changelog: https://github.com/prometheus/client_golang/compare/v1.13.0...v1.13.1

    Changelog

    Sourced from github.com/prometheus/client_golang's changelog.

    1.13.1 / 2022-11-01

    • [BUGFIX] Fix race condition with Exemplar in Counter. #1146
    • [BUGFIX] Fix CumulativeCount value of +Inf bucket created from exemplar. #1148
    • [BUGFIX] Fix double-counting bug in promhttp.InstrumentRoundTripperCounter. #1118
    Commits
    • 53e51c4 Merge pull request #1157 from prometheus/cut-1.13.1
    • 79ca0eb Added tip from Björn + Grammarly.
    • 078f11f Cut 1.13.1 release (+ documenting release process).
    • ddd7f0e Fix race condition with Exemplar in Counter (#1146)
    • 1f93f64 Fix CumulativeCount value of +Inf bucket created from exemplar (#1148)
    • 8cc2b6c Fix double-counting bug in promhttp.InstrumentRoundTripperCounter (#1118)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • cant get prometheus metrics even it says it does

    cant get prometheus metrics even it says it does

    hello, i'm using unraid 6.9.2 and i tried your endlessh-go docker. I run it like this:

    sudo docker run -d -p 2222:2222 shizunge/endlessh-go -logtostderr -v=1 -enable_prometheus

    your tool is running, i get "trapped" on port 2222 when trying to connect via ssh. but i dont get managed to get the prometheus metrics from it and i dont know why. looking at the log, all seems to be fine - it starts and logs my ssh connection attemp:

    I0705 04:11:18.579285 1 main.go:102] Starting Prometheus on 0.0.0.0:2112, entry point is /metrics
    I0705 04:11:18.580008 1 main.go:142] Listening on 0.0.0.0:2222
    I0705 04:13:29.392797 1 client.go:69] ACCEPT host=192.168.2.2 port=1693 n=1/4096
    I0705 04:13:34.395198 1 client.go:109] CLOSE host=192.168.2.2 port=1693 time=5.002307282 bytes=71
    
  • Bump docker/setup-buildx-action from 1.6.0 to 1.7.0

    Bump docker/setup-buildx-action from 1.6.0 to 1.7.0

    Bumps docker/setup-buildx-action from 1.6.0 to 1.7.0.

    Release notes

    Sourced from docker/setup-buildx-action's releases.

    v1.7.0

    • Standalone mode by @​crazy-max in (#119)
    • Update dev dependencies and workflow by @​crazy-max (#114 #130)
    • Bump tmpl from 1.0.4 to 1.0.5 (#108)
    • Bump ansi-regex from 5.0.0 to 5.0.1 (#109)
    • Bump @​actions/core from 1.5.0 to 1.6.0 (#110)
    • Bump actions/checkout from 2 to 3 (#126)
    • Bump @​actions/tool-cache from 1.7.1 to 1.7.2 (#128)
    • Bump @​actions/exec from 1.1.0 to 1.1.1 (#129)
    • Bump minimist from 1.2.5 to 1.2.6 (#132)
    • Bump codecov/codecov-action from 2 to 3 (#133)
    • Bump semver from 7.3.5 to 7.3.7 (#136)
    Commits
    • f211e3e Merge pull request #136 from docker/dependabot/npm_and_yarn/semver-7.3.7
    • b23216e Update generated content
    • be7e600 Bump semver from 7.3.5 to 7.3.7
    • 7117987 Merge pull request #119 from crazy-max/standalone
    • 17ebdd4 ci: add jobs to check standalone behavior
    • 3472856 support standalone mode and display version
    • 74283ca Merge pull request #133 from docker/dependabot/github_actions/codecov/codecov...
    • 5b77ad4 Bump codecov/codecov-action from 2 to 3
    • 2a6fbda Merge pull request #132 from docker/dependabot/npm_and_yarn/minimist-1.2.6
    • 03815bd Bump minimist from 1.2.5 to 1.2.6
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump crazy-max/ghaction-docker-buildx from 1 to 3.3.1

    Bump crazy-max/ghaction-docker-buildx from 1 to 3.3.1

    Bumps crazy-max/ghaction-docker-buildx from 1 to 3.3.1.

    Release notes

    Sourced from crazy-max/ghaction-docker-buildx's releases.

    v3.3.1

    This action is ARCHIVED and will not receive any updates, update your workflows to use the official Docker action docker/setup-buildx-action@v1

    • Action moved to Docker organization (#234)
    • Update deps

    v3.3.0

    • Use crazy-max/ghaction-docker-login action
    • Update deps

    v3.2.0

    • qemu-version not taken into account (#220)
    • Remove skip-cache input

    v3.1.0

    • Handle nosuid (#213)

    v3.0.0

    • Use actions/tool-cache for caching
    • skip-cache input no longer useful (deprecated)

    v2.0.1

    • Leverage buildx cache example
    • Build and push to DockerHub example
    • Update deps

    v2.0.0

    • Add cache implementation (#183)
    • Remove version input

    v1.6.2

    • Fix rename across "device" (partition) boundaries (#194)
    • Update deps

    v1.6.1

    • Typo

    v1.6.0

    • Use native GitHub Action tools to download assets and use GitHub API
    • Cleanup local paths from extra fields
    • Remove @actions/github module and use GITHUB_SHA env var instead
    • Audit packages

    v1.5.1

    • Add Codecov
    • Bumps deps

    v1.5.0

    • Add qemu-version input
    • Deprecate version input. Use buildx-version instead

    ... (truncated)

    Changelog

    Sourced from crazy-max/ghaction-docker-buildx's changelog.

    3.3.1 (2020/09/29)

    • Action moved to Docker organization (#234)
    • Update deps
    Commits
    • 126d331 Move deprecation message to sources
    • 22b63fb Adding deprecation warning (#234)
    • 460e673 Bump @​actions/core from 1.2.5 to 1.2.6 (#238)
    • 642efa6 Bump actions/checkout from v2.3.2 to v2.3.3 (#237)
    • 03d7b1e Bump @​actions/core from 1.2.4 to 1.2.5 (#233)
    • 984dbe3 Switch to docker/login-action
    • 2dd6f30 Move zeit/ncc to vercel/ncc
    • 3de5663 Add note about dependabot
    • 846e06f Bump codecov/codecov-action from v1.0.12 to v1.0.13 (#231)
    • bb77f35 Use crazy-max/ghaction-docker-login action
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0

    Bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0

    Bumps github.com/prometheus/client_golang from 1.13.0 to 1.14.0.

    Release notes

    Sourced from github.com/prometheus/client_golang's releases.

    1.14.0 / 2022-11-08

    It might look like a small release, but it's quite opposite 😱 There were many non user facing changes and fixes and enormous work from engineers from Grafana to add native histograms in 💪🏾 Enjoy! 😍

    What's Changed

    • [FEATURE] Add Support for Native Histograms. #1150
    • [CHANGE] Extend prometheus.Registry to implement prometheus.Collector interface. #1103

    New Contributors

    Full Changelog: https://github.com/prometheus/client_golang/compare/v1.13.1...v1.14.0

    1.13.1 / 2022-11-02

    • [BUGFIX] Fix race condition with Exemplar in Counter. #1146
    • [BUGFIX] Fix CumulativeCount value of +Inf bucket created from exemplar. #1148
    • [BUGFIX] Fix double-counting bug in promhttp.InstrumentRoundTripperCounter. #1118

    Full Changelog: https://github.com/prometheus/client_golang/compare/v1.13.0...v1.13.1

    Changelog

    Sourced from github.com/prometheus/client_golang's changelog.

    1.14.0 / 2022-11-08

    • [FEATURE] Add Support for Native Histograms. #1150
    • [CHANGE] Extend prometheus.Registry to implement prometheus.Collector interface. #1103

    1.13.1 / 2022-11-01

    • [BUGFIX] Fix race condition with Exemplar in Counter. #1146
    • [BUGFIX] Fix CumulativeCount value of +Inf bucket created from exemplar. #1148
    • [BUGFIX] Fix double-counting bug in promhttp.InstrumentRoundTripperCounter. #1118
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump docker/setup-buildx-action from 2.1.0 to 2.2.1

    Bump docker/setup-buildx-action from 2.1.0 to 2.2.1

    Bumps docker/setup-buildx-action from 2.1.0 to 2.2.1.

    Release notes

    Sourced from docker/setup-buildx-action's releases.

    v2.2.1

    What's Changed

    Full Changelog: https://github.com/docker/setup-buildx-action/compare/v2.2.0...v2.2.1

    v2.2.0

    What's Changed

    Full Changelog: https://github.com/docker/setup-buildx-action/compare/v2.1.0...v2.2.0

    Commits
    • 8c0edbc Merge pull request #175 from crazy-max/input-list-quotes
    • 1fb9cbd escape surrounding quotes for platforms input
    • 693fdd6 Merge pull request #174 from crazy-max/input-quote
    • fe4c1ac preserve quotes surrounding fields in input list
    • c74574e Merge pull request #172 from docker/dependabot/npm_and_yarn/csv-parse-5.3.1
    • 2d0cf98 update generated content
    • 5f1d4ea Bump csv-parse from 5.3.0 to 5.3.1
    • 59b5ed6 Merge pull request #165 from crazy-max/append
    • bd61d52 update generated content
    • f6efb5f platforms input
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump docker/setup-buildx-action from 2.0.0 to 2.1.0

    Bump docker/setup-buildx-action from 2.0.0 to 2.1.0

    Bumps docker/setup-buildx-action from 2.0.0 to 2.1.0.

    Release notes

    Sourced from docker/setup-buildx-action's releases.

    v2.1.0

    What's Changed

    Full Changelog: https://github.com/docker/setup-buildx-action/compare/v2.0.0...v2.1.0

    Commits
    • 95cb08c Merge pull request #171 from crazy-max/rmsync
    • eb5c2a6 Fix deprecated fs.rmdir
    • 83612be Merge pull request #170 from crazy-max/setOutput
    • 40fefd8 Remove workaround for setOutput
    • 90a1e46 Merge pull request #169 from crazy-max/context-module
    • 5a9fc40 move args logic to context module and add tests
    • 6c48dad Merge pull request #159 from docker/dependabot/npm_and_yarn/uuid-9.0.0
    • 16c2ddb update generated content
    • 0fe8589 Bump uuid from 8.3.2 to 9.0.0
    • f3692cb Merge pull request #167 from docker/dependabot/npm_and_yarn/actions/core-1.10.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump docker/build-push-action from 3.1.1 to 3.2.0

    Bump docker/build-push-action from 3.1.1 to 3.2.0

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps docker/build-push-action from 3.1.1 to 3.2.0.

    Release notes

    Sourced from docker/build-push-action's releases.

    v3.2.0

    What's Changed

    Full Changelog: https://github.com/docker/build-push-action/compare/v3.1.1...v3.2.0

    Commits
    • c56af95 Merge pull request #704 from crazy-max/setOutput
    • 75aaa63 Remove workaround for setOutput
    • f97d6e2 Merge pull request #700 from crazy-max/update-docs
    • 47c00d7 ci: secret job to check for invalid secrets
    • 871b930 docs: update links and layout
    • 105bf59 docs: copy between registries with buildx
    • 48888e0 Merge pull request #699 from crazy-max/docs-outputs
    • 6b820ad docs: note about multiple outputs
    • e1a1035 Merge pull request #665 from baibaratsky/patch-1
    • 0f5a7d4 docs: named contexts
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • [QUESTION] Where does the 'Normal' log output go to? (fail2ban)

    [QUESTION] Where does the 'Normal' log output go to? (fail2ban)

    I am trying to get the logs so fail2ban can read them, but wondered where the logs to to so i can bind them to a volume/mount.

    version: '3.5'
    services:
      endlessh:
        container_name: tarpit-endlessh
        image: shizunge/endlessh-go:latest
        restart: unless-stopped
        command:
          - -interval_ms=1000
          - -logtostderr
          - -v=1
          - -enable_prometheus
          - -geoip_supplier=ip-api
          - -log_dir=/example
        ports:
          - 22:2222
    #      - 9101:2112 #prometheus port (now handled via networks)
        networks:
        - default
        - prometheus
        volumes:
        - /home/user/example:/example
    
    networks:
      prometheus:
        external: true
    

    Here i tried to put it into /example of the container and then ls /home/user/example, but nothing was logged there. I am probably doing something wrong so if you see what mistake i made could you please point it out to me, thanks :)

  • No client locations displayed with GeoIP MaxMind

    No client locations displayed with GeoIP MaxMind

    The Grafana locations panel don't show the client, if you use the MaxMind offline DB. "Time","name","country","geohash","instance","ip","job","location","Value #Seen" 2022-12-19 11:39:00,endlessh_client_open_count,China,s000,192.168.10.214:2112,106.13.29.110,endlessh,China,3 2022-12-20 03:35:00,endlessh_client_open_count,China,s000,192.168.10.214:2112,111.67.202.249,endlessh,China,28 2022-12-19 15:52:00,endlessh_client_open_count,China,s000,192.168.10.214:2112,124.223.26.191,endlessh,China,37 2022-12-20 09:22:00,endlessh_client_open_count,China,s000,192.168.10.214:2112,163.53.90.10,endlessh,China,1 2022-12-19 16:50:00,endlessh_client_open_count,China,s000,192.168.10.214:2112,175.178.40.24,endlessh,China,36

    i assume, geohash shouldn't be "S000". Any idea, how to fix it?

  • Freegeoip adress looks invalid

    Freegeoip adress looks invalid

    func geohashAndLocationFromFreegeoip(address string) (string, string, string, error) { var geo freegeoip response, err := http.Get("https://freegeoip.live/json/" + address)

    As mentioned here https://freegeoip.io/ the api call should be different: freegeoip.io/{format}/{IP_or_hostname}.

Exports Fast.com metrics in the prometheus format, caching the results.
Exports Fast.com metrics in the prometheus format, caching the results.

fastcom-exporter Exports Fast.com metrics in the prometheus format, caching the results.

Nov 14, 2022
gosivy - Another visualization tool for Go process metrics
gosivy - Another visualization tool for Go process metrics

gosivy Another visualization tool for Go process metrics. Gosivy tracks Go process's metrics and plot their evolution over time right into your termin

Nov 27, 2022
go chart is a basic charting library in native golang.
go chart is a basic charting library in native golang.

Package chart is a very simple golang native charting library that supports timeseries and continuous line charts.

Jan 9, 2023
🎨 The adorable charts library for Golang
🎨 The adorable charts library for Golang

go-echarts ?? The adorable charts library for Golang. If a language can be used to build web scrapers, it definitely needs to provide a graceful data

Dec 30, 2022
Globe wireframe visualizations in Golang
Globe wireframe visualizations in Golang

globe Globe wireframe visualizations in Golang backed by pinhole. Getting Started Install globe with $ go get -u github.com/mmcloughlin/globe Start wi

Jan 7, 2023
go-echarts 🎨 The adorable charts library for Golang
go-echarts 🎨 The adorable charts library for Golang

go-echarts ?? The adorable charts library for Golang. If a language can be used to build web scrapers, it definitely needs to provide a graceful data

Jan 4, 2023
🚀Statsview is a real-time Golang runtime stats visualization profiler
🚀Statsview is a real-time Golang runtime stats visualization profiler

Statsview is a real-time Golang runtime stats visualization profiler. It is built top on another open-source project, go-echarts, which helps statsview to show its graphs on the browser.

Dec 29, 2022
Ltree Visualizer - A golang library to visualize postgres ltree type data using DOT language and Graphviz
Ltree Visualizer - A golang library to visualize postgres ltree type data using DOT language and Graphviz

Ltree Visualizer A golang library to visualize postgres ltree type data using DOT language and Graphviz What is Ltree? Ltree is a data type which is u

Jun 12, 2022
Interactive dependency graph visualization tool for golang
Interactive dependency graph visualization tool for golang

Interactive dependency graph visualization tool for golang using the awesome cytoscape graph visualizer.

Sep 1, 2022
A charts library for Golang
A charts library for Golang

go-charts go-charts基于go-chart生成数据图表,无其它模块的依赖纯golang的实现,支持svg与png的输出,Apache ECharts在前端开发中得到众多开发者的认可,go-charts兼容Apache ECharts的配置参数,简单快捷的生成相似的图表(svg或png

Dec 29, 2022
Gfx - Golang file system extension library
Gfx - Golang file system extension library

gfx Golang文件操作扩展库,包含工作和生活中关于文件操作的各种有用的使用方法,包括 更友好的API 文件创建 文件删除 文件复制 一切皆可配置 文件名

Mar 10, 2022
Terraform-grafana-dashboard - Grafana dashboard Terraform module

terraform-grafana-dashboard terraform-grafana-dashboard for project Requirements

May 2, 2022
A Grafana backend plugin for automatic synchronization of dashboard between multiple Grafana instances.

Grafana Dashboard Synchronization Backend Plugin A Grafana backend plugin for automatic synchronization of dashboard between multiple Grafana instance

Dec 23, 2022
Exporter your cypress.io dashboard into prometheus Metrics

Cypress.io dashboard Prometheus exporter Prometheus exporter for a project from Cypress.io dashboards, giving the ability to alert, make special opera

Feb 8, 2022
Creates Prometheus Metrics for PolicyReports and ClusterPolicyReports. It also sends PolicyReportResults to different Targets like Grafana Loki or Slack
Creates Prometheus Metrics for PolicyReports and ClusterPolicyReports. It also sends PolicyReportResults to different Targets like Grafana Loki or Slack

PolicyReporter Motivation Kyverno ships with two types of validation. You can either enforce a rule or audit it. If you don't want to block developers

Aug 6, 2021
A command line tool for mainly exporting logbook records from Google Spreadsheet to PDF file in EASA format
A command line tool for mainly exporting logbook records from Google Spreadsheet to PDF file in EASA format

Logbook CLI This is a command line tool for mainly exporting logbook records from Google Spreadsheet to PDF file in EASA format. It also supports rend

Feb 6, 2022
Github-workflow-dashboard - WEB and CLI dashboard for github action workflows
Github-workflow-dashboard - WEB and CLI dashboard for github action workflows

CLI capable of retrieving github action workflows stats Example usage Dashboard

Aug 30, 2022
Grafana Dashboard Manager

Grafana dash-n-grab Grafana Dash-n-Grab (GDG) -- Dashboard/DataSource Manager. The purpose of this project is to provide an easy to use CLI to interac

Dec 31, 2022
Sensu-go-postgres-metrics - The sensu-go-postgres-metrics is a sensu check that collects PostgreSQL metrics

sensu-go-postgres-metrics Table of Contents Overview Known issues Usage examples

Jan 12, 2022
The metrics-agent collects allocation metrics from a Kubernetes cluster system and sends the metrics to cloudability

metrics-agent The metrics-agent collects allocation metrics from a Kubernetes cluster system and sends the metrics to cloudability to help you gain vi

Jan 14, 2022