{"id":23412668,"url":"https://github.com/olofblomqvist/gelf-lb","last_synced_at":"2025-04-09T04:10:27.755Z","repository":{"id":221069799,"uuid":"753333613","full_name":"OlofBlomqvist/gelf-lb","owner":"OlofBlomqvist","description":"Gelf UDP Loadbalancer","archived":false,"fork":false,"pushed_at":"2024-02-07T09:21:09.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T22:31:37.034Z","etag":null,"topics":["gelf","graylog","loadbalancer","udp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OlofBlomqvist.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-05T22:59:26.000Z","updated_at":"2024-08-16T14:08:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"6961f847-4d7c-4a3f-8870-5f8326714511","html_url":"https://github.com/OlofBlomqvist/gelf-lb","commit_stats":null,"previous_names":["olofblomqvist/gelf-lb"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlofBlomqvist%2Fgelf-lb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlofBlomqvist%2Fgelf-lb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlofBlomqvist%2Fgelf-lb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlofBlomqvist%2Fgelf-lb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OlofBlomqvist","download_url":"https://codeload.github.com/OlofBlomqvist/gelf-lb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247974731,"owners_count":21026742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gelf","graylog","loadbalancer","udp"],"created_at":"2024-12-22T18:17:58.934Z","updated_at":"2025-04-09T04:10:27.750Z","avatar_url":"https://github.com/OlofBlomqvist.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GELF-LB\n\nA simple to use UDP round-robin load-balancer for GELF packets (graylog messages).\n\n# Why\n\nNormally you would not be able to properly do round-robin loadblancing for GELF over UDP properly while using chunked packets as different chunks would end up on different servers, causing the messages to be discarded. This custom implementation will inspect each packet before forwarding, ensuring that all chunks for a specific message id go to the same backend.\n\n# Linux\n\nIn order to build on ubuntu you need to install gcc \u0026 gcc-multilib\n```bash\nsudo apt-get install -y gcc gcc-multilib\n```\n\n# Windows\n\nIt is possible to build \u0026 run this application also on Windows clients such as Windows 11 but it will then not act as a transparent proxy: the source of all log messages will seem to come from the loadbalancer. If you want to run this LB in such environments, you might want to use the \"attach_source_info\" setting to extend all logged messages with the original source ip and dns names.\n\n# How to install\n\nThere is no installer, just a binary. If you do not wish to build it yourself you can download the latest release from the github repository.\n\n# How to run\n\nExample configuration file:\n```toml\nlisten_ip = \"0.0.0.0\" # defaults to 127.0.0.1. can also use ipv6 here like this: \"[::1]\" \nlisten_port = 12201\nweb_ui_port = 8080 # optional , remove to disable\nchunk_size = 1024 # used only if you use settings that modify messages such as: attach_source_info,strip_fields or blank_fields\nuse_gzip = true # defaults to true. used only if you use settings that modify messages such as: attach_source_info,strip_fields or blank_fields.\nstrip_fields = [ # drop any given field from all messages prior to forwarding them.\n    \"password\", \n    \"secret\"\n]\nblank_fields = [ # sets string fields to \"******\" before forwarding\n    \"PID\"\n]\nlog_level = \"info\" # (defaults to RUST_LOG env var if it exists, otherwise 'info') trace/debug/info/warn/error\ntransparent = true # (default:true) keep the original source IP addr when forwarding - this is not allowed on non-server versions of Windows\nattach_source_info = false # (default: false) attach the original source IP and DNS name fields to all logged messages - mostly useful when running on non-server versions of Windows\nallowed_source_ips = [ # defaults to an empty array. use this if you wish to only allow forwarding from specific sources\n    \"192.168.1.122\"\n]\nbackends = [\n    { ip = \"192.168.1.22\", port = 12201 },\n    { ip = \"192.168.1.44\", port = 12201 },    \n]\n```\n\nRun with:\n```bash\n./gelflb ./path/to/your_file.toml\n```\n\nIf you do not provide a path, gelflb will default to looking for \"./gelflb.toml\" in the current directory.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folofblomqvist%2Fgelf-lb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folofblomqvist%2Fgelf-lb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folofblomqvist%2Fgelf-lb/lists"}