{"id":18978039,"url":"https://github.com/simplificator/ansible-role-netdata_collector","last_synced_at":"2026-03-19T07:26:43.476Z","repository":{"id":43013446,"uuid":"456858817","full_name":"simplificator/ansible-role-netdata_collector","owner":"simplificator","description":"Configure a Netdata instance to receive streams from other instances","archived":false,"fork":false,"pushed_at":"2024-07-31T08:31:34.000Z","size":36,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-02T15:51:11.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jinja","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/simplificator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-02-08T09:09:13.000Z","updated_at":"2022-02-08T10:59:29.000Z","dependencies_parsed_at":"2023-01-31T05:01:06.949Z","dependency_job_id":"376e4013-1fd2-4b8d-9e63-ba8570d2acd2","html_url":"https://github.com/simplificator/ansible-role-netdata_collector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simplificator/ansible-role-netdata_collector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplificator%2Fansible-role-netdata_collector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplificator%2Fansible-role-netdata_collector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplificator%2Fansible-role-netdata_collector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplificator%2Fansible-role-netdata_collector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplificator","download_url":"https://codeload.github.com/simplificator/ansible-role-netdata_collector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplificator%2Fansible-role-netdata_collector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28804035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"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":"2024-11-08T15:32:00.120Z","updated_at":"2026-01-27T05:33:25.143Z","avatar_url":"https://github.com/simplificator.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Role: Netdata Collector\n\n[![CI](https://github.com/simplificator/ansible-role-netdata_collector/workflows/CI/badge.svg?event=push)](https://github.com/simplificator/ansible-role-netdata_collector/actions?query=workflow%3ACI)\n\nThis role configures an existing Netdata base installation as a server which can collect data from multiple streaming nodes.\n\nIts companion role is the [Netdata node](https://github.com/simplificator/ansible-role-netdata_node).\n\n## Requirements\n\nAn empty Netdata installation, see dependencies.\n\n## Role Variables\n\nThe setup is highly opinionated.\n\n* Caddy as a reverse proxy will be installed.\n* All routes to the dashboard are protected with basic authentication.\n* The stream port is exposed to port 19999 and requires certificate-based authentication.\n* We differ between two types of streaming nodes: `silence` will deactivate all alarms but still collect data. `default` will activate all alarms.\n* Historic data will be stored within Netdatas own database mechanism.\n* We deactivated several TCP/UDP-related metrics\n* Links to Netdata cloud are disabled\n\nThis setup is reflected within the variables:\n\n* `netdata_collector_basic_auth_user`: Name for the basic authentication user name.\n* `netdata_collector_basic_auth_password`: Password for the basic authentication of the reverse proxy. The password needs to be in Caddys hashed base64 format (more about that [here](https://caddyserver.com/docs/caddyfile/directives/basicauth#basicauth)).\n* `netdata_collector_registry_domain`: Will be used for the registry cookie, so you can request different registries but all nodes will be available to browse from the dashboard.\n* `netdata_registry_to_announce`: The central registry where this client should be registered. More information is available [here](https://learn.netdata.cloud/docs/agent/registry).\n* `netdata_collector_default_stream_key`: API key to identify incoming stream traffic. Can be generated via `uuidgen`.\n* `netdata_collector_silent_stream_key`: Same thing as `netdata_collector_default_stream_key`, but alarms for traffic with this UUID won't be sent to any notification system.\n  \nOptional variables:\n\n* `netdata_collector_page_cache_size`: The page cache size option determines the amount of RAM in MiB dedicated to caching Netdata metric values. The actual page cache size will be slightly larger than this figure — see the [memory requirements section](https://learn.netdata.cloud/docs/agent/database/engine/#memory-requirements) for details.\n* `netdata_collector_domain`:  Domain where the reverse proxy should listen to. If no value provided, it'll be set to the value of `netdata_registry_to_announce`.\n* `netdata_collector_db_tiering`: Netdata allows to define different tiers for storing data. When metrics drop one tier, records will be averaged out so it allows to save data for a longer period. You can find more in their [documentation](https://learn.netdata.cloud/docs/agent/database/engine#tiering-in-a-nutshell) including a sample calculation. We expect an array of integers here, which define the amount of tiers including the space they should take up in megabytes, in descending order (means the first entry will be used for Tier 0, second for Tier 1 etc.). For each tier, you need provide `size` and `update_every`.\n* `netdata_hostname`: Allows you to overwrite the hostname of this Netdata host. Default value is \"auto-detected\". Note that a change of this variable could result in a drop of historic data.\n\nAdditionally, we expect that a certificate is placed at `/etc/netdata/ssl/cert.pem`. It'll be used to encrypt the traffic between node and collector. More information can be found in the [netdata installation role](https://github.com/simplificator/ansible-role-netdata_installation).\n\n### Notifications\n\nThe role currently supports Microsoft Teams and Slack as \"recipients\" for notifications.\n\nFor Slack, you need the following values:\n\n* `netdata_collector_custom_slack_sender`: If set to \"yes\", this will activate a custom slack notifier which makes smaller messages.\n* `netdata_collector_slack_alarm_channel`: The channel where netdata should sent its messages.\n* `netdata_collector_slack_webhook`: Webhook to send slack messages.\n\nFor Teams, set the following ones:\n\n* `netdata_collector_teams_recipients`: The channel where netdata should sent its messages.\n* `netdata_collector_teams_webhook`: Webhook URL where Netdata can send its notifications.\n\n## Dependencies\n\n* [simplificator.caddy](https://github.com/simplificator/ansible-role-caddy)\n* [simplificator.netdata_installation](https://github.com/simplificator/ansible-role-netdata_installation)\n\n## Example playbook\n\n```yaml\n---\n- name: Converge\n  hosts: all\n  become: true\n\n  roles:\n    - role: simplificator.netdata_collector\n\n  vars:\n    netdata_collector_basic_auth_user: admin\n    netdata_collector_basic_auth_password: JDJhJDE0JE9FYmltMG9LbVJGNVRld3hWRHMvek9Mb3FhNno5T05hYjFDYllPcjVPOFJrTEtScFBmN1Fl # admin123$\n    netdata_collector_default_stream_key: 267E1130-EDDA-4574-82FA-EF17286B0816\n    netdata_collector_registry_domain: example.com\n    netdata_collector_silent_stream_key: 6840CAB7-AE62-49C3-B5D9-C4323BBAAF94\n    netdata_installation_certificate: certificate\n    netdata_installation_certificate_key: key\n    netdata_registry_to_announce: \"https://registry.example.com\"\n```\n\n## Development\n\n### Variable naming\n\nTo ensure that our Netdata roles remain compatible with each other, follow this variable naming convention:\n\n* Role-specific variables are prefixed with the role name (`netdata_node_` in this case).\n* General variables that are used in multiple roles will be prefixed with just `netdata_`.\n\n## License\n\nMIT / BSD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplificator%2Fansible-role-netdata_collector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplificator%2Fansible-role-netdata_collector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplificator%2Fansible-role-netdata_collector/lists"}