{"id":37871091,"url":"https://github.com/cloudwatt/bunny","last_synced_at":"2026-01-16T16:40:59.265Z","repository":{"id":11785179,"uuid":"14326141","full_name":"cloudwatt/bunny","owner":"cloudwatt","description":"Remote Nagios host/service check execution worker for mod_bunny","archived":false,"fork":false,"pushed_at":"2014-12-16T17:14:36.000Z","size":264,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-19T15:16:58.037Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudwatt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-12T08:06:06.000Z","updated_at":"2024-06-19T15:16:58.038Z","dependencies_parsed_at":"2022-09-09T06:01:38.184Z","dependency_job_id":null,"html_url":"https://github.com/cloudwatt/bunny","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cloudwatt/bunny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwatt%2Fbunny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwatt%2Fbunny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwatt%2Fbunny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwatt%2Fbunny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudwatt","download_url":"https://codeload.github.com/cloudwatt/bunny/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwatt%2Fbunny/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-16T16:40:58.642Z","updated_at":"2026-01-16T16:40:59.249Z","avatar_url":"https://github.com/cloudwatt.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"bunny: remote Nagios host/service check execution worker\n========================================================\n\n[![Gobuild Download](http://gobuild.io/badge/github.com/cloudwatt/bunny/downloads.svg)](http://gobuild.io/github.com/cloudwatt/bunny)\n\n**bunny** is [mod_bunny](http://github.com/cloudwatt/mod_bunny)'s worker companion: it executes host/service checks commands queued by Nagios's mod_bunny and publishes the check results back into the RabbitMQ broker for mod_bunny to reinject them into Nagios.\n\nRequirements\n------------\n\n* Go language [distribution](http://golang.org/doc/install#download) (\u003e= 1.1)\n* Go [client](https://github.com/streadway/amqp) for AMQP 0.9.1\n\nInstallation\n------------\n\nInside your repository local checkout, execute the following command:\n\n```\nmake \u0026\u0026 sudo make install\n```\n\nThe default installation path is `/usr/bin/bunny` and `/etc/bunny.conf` for configuration; set the environment `PREFIX` to whatever path prefix you prefer (e.g. `PREFIX=/usr/local`).\n\nConfiguration\n-------------\n\nThe configuration file is using JSON format. Here are the supported settings and their default value:\n\n* `\"broker\": \"amqp://guest:guest@localhost:5672/\"` Broker URL (URL syntax: amqp://username:password@host:port/)\n* `\"consumer_id\": \"bunny-worker\"` AMQP consumer identifier\n* `\"consumer_exchange\": \"nagios\"` Broker exchange to connect to for consuming checks messages\n* `\"consumer_exchange_type\": \"direct\"` Broker consumer exchange type*\n* `\"consumer_queue\": \"nagios_checks\"` Queue to bind to for consuming check messages\n* `\"consumer_binding_key\": \"nagios_checks\"` Binding key to use to consume check messages\n* `\"publisher_exchange\": \"nagios\"` Broker exchange to connect to for publishing checks result messages\n* `\"publisher_exchange_type\": \"direct\"` Broker publisher exchange type\n* `\"publisher_routing_key\": \"nagios_results\"` Routing key to apply when publishing check result messages\n* `\"max_exec_timeout\": 30` Maximum check command execution time (in seconds)\n* `\"max_concurrency\": \u003cN CPU * 10\u003e` Maximum check commands allowed to run concurrently\n* `\"retry_wait_time\": 3` Time to wait (in seconds) before trying to reconnect to the broker\n* `\"report_stderr\": false` Report check command output on `stderr` in addition to `stdout`\n* `\"append_worker_hostname\": true` Append worker host name to Nagios check results\n* `\"log_level\": 1` Logging verbosity (0 = none (only errors), 1 = show startup/termination + (dis)connection messages, 2 = same as 1 + show AMQP events and worker activity, 3 = same as 2 + dump received/sent AMQP messages and executed commands execution details)\n\n\\* : To benefit from the _round-robin_ load-balancing RabbitMQ feature, the consumer exchange **MUST** be of type _direct_. Read [this](http://www.rabbitmq.com/tutorials/amqp-concepts.html#exchange-direct) to understand why.\n\nBasic configuration example:\n\n```\n{\n  \"broker\": \"amqp://bunnyUser:bunnyPassword@some.amqp.broker.example.net:5672/\"\n}\n```\n\nUsage\n-----\n\nTo start bunny worker, use the following command (`-c` option specifies path to configuration file):\n\n```\nbunny -c /etc/bunny.conf\n```\n\nNote: `bunny` always runs in foreground, use `\u0026` to start it in background. You can spawn as many bunny instances as you have available CPU cores to level the checks processing among your worker hosts, resulting in a weighted round-robin load balancing.\n\nBugs\n----\n\nProbably. Let me know if you find any.\n\nLicense / Copyright\n-------------------\n\nThis software is released under the MIT License.\n\nCopyright (c) 2013 Marc Falzon / Cloudwatt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudwatt%2Fbunny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudwatt%2Fbunny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudwatt%2Fbunny/lists"}