{"id":15605292,"url":"https://github.com/sourcedoctor/puppet-librenms","last_synced_at":"2026-02-12T14:04:48.619Z","repository":{"id":57666949,"uuid":"278182049","full_name":"SourceDoctor/puppet-librenms","owner":"SourceDoctor","description":"Puppet Modul for LibreNMS SNMP Agents","archived":false,"fork":false,"pushed_at":"2026-01-16T21:08:37.000Z","size":403,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-25T12:13:31.609Z","etag":null,"topics":["agent","automation","configuration","librenms","puppet"],"latest_commit_sha":null,"homepage":"","language":"Perl","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/SourceDoctor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-07-08T19:55:38.000Z","updated_at":"2026-01-16T21:08:41.000Z","dependencies_parsed_at":"2025-08-16T18:19:36.119Z","dependency_job_id":"d398827b-c14c-4139-8fcf-0ce407b3b2ee","html_url":"https://github.com/SourceDoctor/puppet-librenms","commit_stats":null,"previous_names":[],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/SourceDoctor/puppet-librenms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SourceDoctor%2Fpuppet-librenms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SourceDoctor%2Fpuppet-librenms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SourceDoctor%2Fpuppet-librenms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SourceDoctor%2Fpuppet-librenms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SourceDoctor","download_url":"https://codeload.github.com/SourceDoctor/puppet-librenms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SourceDoctor%2Fpuppet-librenms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29367865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"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":["agent","automation","configuration","librenms","puppet"],"created_at":"2024-10-03T04:03:53.898Z","updated_at":"2026-02-12T14:04:48.607Z","avatar_url":"https://github.com/SourceDoctor.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"Puppet Module for LibreNMS SNMP Agents\n=================================\n\n[![Build Status](https://travis-ci.org/SourceDoctor/puppet-librenms.svg?branch=master)](https://travis-ci.org/SourceDoctor/puppet-librenms)\n\n\nDescription\n-----------\n\nPuppet Module to configure and distribute [LibreNMS_SNMP_Agents](https://docs.librenms.org/Extensions/Applications/).\n\n(Server configuration will come in a future version also)\n\n\nDependencies\n------------\nThis Modul doesn't modify configuration of services the Agents are for.\nSo please ensure the services you want to monitor match the requirements.\nDetails for what to do are described or linked per Agent.\n\n\nGeneral Information\n-------------------\nIt's recommended to use [puppet-hiera](https://puppet.com/docs/puppet/latest/hiera_intro.html) for configuration\n\n\nUsage\n-----\n\n### Define Source of LibreNMS Agent Scripts\n```puppet\nclass { 'librenms':\n  use_local_agents =\u003e true,\n}\n```\n\n* `use_local_agents` If set to false Agent Scripts will be copied directly from Github. Default: true\n\n\n### Discovery Trigger Configuration\n\nConfiguration of Discovery Trigger for LibreNMS.\nWould be called everytime a LibreNMS Agent is installed.\n\n```puppet\nclass {'librenms::discovery':\n    enabled            =\u003e false,\n    librenms_server    =\u003e 'librenms.local.domain',\n    api_token          =\u003e 'myAdminApiToken',\n    transport_protocol =\u003e 'http',\n}\n```\n\n* `librenms_server` The FQDN or IP Address on which LibreNMS is listen\n* `api_token` is the API Token generated in LibreNMS from an Admin User\n* `transport_protocol` defines the used transportprotocol. Can be `http` or `https`\n\n\n### Which Agent Scripts should be installed\n```puppet\nclass {'librenms::application':\n  apache2             =\u003e false,\n  asterisk            =\u003e false,\n  backupninja         =\u003e false,\n  bind                =\u003e false,\n  certificate         =\u003e false,\n  chip                =\u003e false,\n  chrony              =\u003e false,\n  dhcp                =\u003e false,\n  distribution        =\u003e false,\n  entropy             =\u003e false,\n  exim                =\u003e false,\n  freeradius          =\u003e false,\n  freeswitch          =\u003e false,\n  gpsd                =\u003e false,\n  mdadm               =\u003e false,\n  icecast             =\u003e false,\n  memcached           =\u003e false,\n  mysql               =\u003e false,\n  nfs_client          =\u003e false,\n  nfs_server          =\u003e false,\n  nginx               =\u003e false,\n  ntp_client          =\u003e false,\n  ntp_server          =\u003e false,\n  nvidia              =\u003e false,\n  open_grid_scheduler =\u003e false,\n  opensips            =\u003e false,\n  osupdate            =\u003e false,\n  php_fpm             =\u003e false,\n  pi_hole             =\u003e false,\n  portactivity        =\u003e false,\n  postfix             =\u003e false,\n  powerdns            =\u003e false,\n  powerdns_recursor   =\u003e false,\n  puppet_agent        =\u003e false,\n  pureftpd            =\u003e false,\n  redis               =\u003e false,\n  sdfsinfo            =\u003e false,\n  seafile             =\u003e false,\n  smartmontools       =\u003e false,\n  squid               =\u003e false,\n  supervisord         =\u003e false,\n  ups_apcups          =\u003e false,\n  ups_nut             =\u003e false,\n  voipmon             =\u003e false,\n  zfs                 =\u003e false,\n}\n```\n\n* `\u003cAgent Name\u003e` A boolean on whether or not the agent has to be installed. Default: false\n\n\n### LibreNMS Agent Configuration\n\n1. [Apache](#apache) - SNMP extend\n1. [Asterisk](#asterisk) - SNMP extend\n1. [Backupninja](#backupninja) - SNMP extend\n1. [BIND9/named](#bind9-aka-named) - SNMP extend\n1. [C.H.I.P](#chip) - SNMP extend\n1. [Certificate](#certificate) - SNMP extend\n1. [Chrony](#chrony) - SNMP extend\n1. [DHCP Stats](#dhcp-stats) - SNMP extend\n1. [Distribution](#distribution) - SNMP extend\n1. [Entropy](#entropy) - SNMP extend\n1. [Exim](#exim) - SNMP extend\n1. [FreeRADIUS](#freeradius) - SNMP extend\n1. [FreeSwitch](#freeswitch) - SNMP extend\n1. [GPSD](#gpsd) - SNMP extend\n1. [Icecast](#icecast) - SNMP extend\n1. [Mailcow-dockerized Postfix](#mailcow-dockerized-postfix) - SNMP extend\n1. [Mailscanner](#mailscanner) - SNMP extend\n1. [Mdadm](#mdadm) - SNMP extend\n1. [Memcached](#memcached) - SNMP extend\n1. [MySQL](#mysql) - SNMP extend\n1. [NFS Client](#nfs-client) - SNMP extend\n1. [NFS Server](#nfs-server) - SNMP extend\n1. [Nginx](#nginx) - SNMP extend\n1. [NTP Client](#ntp-client) - SNMP extend\n1. [NTP Server/NTPD](#ntp-server-aka-ntpd) - SNMP extend\n1. [Nvidia GPU](#nvidia-gpu) - SNMP extend\n1. [Open Grid Scheduler](#open-grid-scheduler) - SNMP extend\n1. [Opensips](#opensips) - SNMP extend\n1. [OS Updates](#os-updates) - SNMP extend\n1. [PHP FPM](#php-fpm) - SNMP extend\n1. [Pi-Hole](#pi-hole) - SNMP extend\n1. [Portactivity](#portactivity) - SNMP extend\n1. [Postfix](#postfix) - SNMP extend\n1. [PowerDNS](#powerdns) - SNMP extend\n1. [PowerDNS Recursor](#powerdns-recursor) - SNMP extend\n1. [Puppet Agent](#puppet_agent) - SNMP extend\n1. [PureFTPd](#pureftpd) - SNMP extend\n1. [Redis](#redis) - SNMP extend\n1. [SDFSinfo](#sdfs-info) - SNMP extend\n1. [Seafile](#seafile) - SNMP extend\n1. [SMART](#smart) - SNMP extend\n1. [Squid](#squid) - SNMP extend\n1. [Supervisord](#supervisord) - SNMP extend\n1. [UPS APCUPS](#ups-apcups) - SNMP extend\n1. [UPS Nut](#ups-nut) - SNMP extend\n1. [Voip Monitor](#voipmon) - SNMP extend\n1. [ZFS](#zfs) - SNMP extend\n\n\n#### Apache\n```puppet\nclass { 'librenms::applications::apache2':\n}\n```\n\nEnsure all depending configurations are done.\nFor Details take a look here [Apache2](https://docs.librenms.org/Extensions/Applications/#apache)\n\n\n#### Asterisk\n```puppet\nclass { 'librenms::applications::asterisk':\n}\n```\n\nNo further configurations needed.\n\n\n#### Backupninja\n```puppet\nclass { 'librenms::applications::backupninja':\n}\n```\n\nNo further configurations needed.\n\n\n#### Bind\n```puppet\nclass { 'librenms::applications::bind':\n  rndc       =\u003e '/usr/sbin/rndc',\n  call_rndc  =\u003e true,\n  stats_file =\u003e '/var/run/named/stats',\n  agent      =\u003e false,\n  zero_stats =\u003e false,\n}\n```\n\n* `rndc` The path to rndc\n* `call_rndc` A boolean on whether or not to call rndc stats. Suggest to set to false if using netdata. Default: true\n* `stats_file` The path to the named stats file. Default: /var/cache/bind/stats\n* `agent` A boolean for if this is being used as a LibreNMS agent or not. Default: false\n* `zero_stats` A boolean for if the stats file should be zeroed first. Default: false (true if guessed)\n\n\nEnsure all depending configurations are done.\nFor Details take a look here [Bind](https://docs.librenms.org/Extensions/Applications/#bind9-aka-named)\n\n\n#### Certificate\n```puppet\nclass { 'librenms::applications::certificate':\n  certificates = {},\n}\n```\n\n* `certificates` A Hash of certificates to check Default: {}\n\nExample:\n```\n{'domains' =\u003e [\n    {'fqdn' =\u003e 'www.mydomain.com'},\n    {'fqdn' =\u003e 'some.otherdomain.org',\n     'port' =\u003e 8443},\n    {'fqdn' =\u003e 'personal.domain.net'}\n]\n}\n```\n\n* `fqdn` the domain to check\n* `port` If port differs from 443 you can specify it with this optional argument\n\n\n#### Chip\n\n```puppet\nclass { 'librenms::applications::chip':\n}\n```\n\nNo further configurations needed.\n\n\n#### Chrony\n\n```puppet\nclass { 'librenms::applications::chrony':\n}\n```\n\nNo further configurations needed.\n\n\n#### DHCP-Stats\n```puppet\nclass { 'librenms::applications::dhcp':\n  lease_file =\u003e '/var/lib/dhcp/dhcpd.leases',\n}\n```\n\n* `lease_file` Lease File of DHCP Stats. Default: /var/lib/dhcp/dhcpd.leases\n\n\n#### Distribution\n\nThis Agent returns Operation System Details to LibreNMS\n\n```puppet\nclass { 'librenms::applications::distribution':\n}\n```\n\nNo further configurations needed.\n\n\n#### Entropy\n```puppet\nclass { 'librenms::applications::entropy':\n}\n```\n\nNo further configurations needed.\n\n\n#### Exim\n\n```puppet\nclass { 'librenms::applications::exim':\n}\n```\n\nNo further configurations needed.\n\n\n#### Fail2ban\n```puppet\nclass { 'librenms::applications::fail2ban':\n  cache =\u003e true,\n}\n```\n\n* `true` If you want to cache results. Default: true\n\n\n#### FreeRadius\n```puppet\nclass { 'librenms::applications::bind':\n  radius_server =\u003e 'localhost',\n  radius_port   =\u003e 18121,\n  radius_key    =\u003e 'adminsecret',\n}\n```\n\n* `radius_server` IP or Domain Radius Server is listen on. Default: localhost\n* `radius_port` Port on which Radius Server is listening. Default: 18121\n* `radius_key` Key for authentication.\n\n\nEnsure all depending configurations are done.\nFor Details take a look here [FreeRadius](https://docs.librenms.org/Extensions/Applications/#freeradius)\n\n\n#### Freeswitch\n\n```puppet\nclass { 'librenms::applications::freeswitch':\n}\n```\n\nNo further configurations needed.\n\n\n#### GPSD\n```puppet\nclass { 'librenms::applications::gpsd':\n}\n```\n\nNo further configurations needed.\n\n\n#### Icecast\n```puppet\nclass { 'librenms::applications::icecast':\n}\n```\n\nNo further configurations needed.\n\n\n#### Mailcow-dockerized postfix\n```puppet\nclass { 'librenms::applications::mailcow_dockerized_postfix':\n}\n```\n\nNo further configurations needed.\n\n\n#### Mailscanner\n```puppet\nclass { 'librenms::applications::mailscanner':\n}\n```\n\nNo further configurations needed.\n\n\n#### Mdadm\n```puppet\nclass { 'librenms::applications::mdadm':\n}\n```\n\nNo further configurations needed.\n\n\n#### Memcached\n```puppet\nclass { 'librenms::applications::memcached':\n}\n```\n\nNo further configurations needed.\n\n\n#### MySQL\n```puppet\nclass { 'librenms::applications::mysql':\n  user =\u003e 'root',\n  pass =\u003e 'root',\n  host =\u003e 'localhost',\n  port =\u003e 3306,\n}\n```\n\n* `user` Username. Default: root\n* `pass` Password. Default: root\n* `host` IP or Hostname Database Server is listening on. Default: localhost\n* `port` Port Database Server is listening on. Default  3306\n\n\n#### NFS Client\n\nOnly FreeBSD Version present\n\n```puppet\nclass { 'librenms::applications::nfs_client':\n}\n```\n\nNo further configurations needed.\n\n\n#### NFS Server\n```puppet\nclass { 'librenms::applications::nfs_server':\n}\n```\n\nNo further configurations needed.\n\n\n#### Nginx\n```puppet\nclass { 'librenms::applications::nginx':\n}\n```\n\nEnsure all depending configurations are done.\nFor Details take a look here [Nginx](https://docs.librenms.org/Extensions/Applications/#nginx)\n\n\n#### NTP-Client\n```puppet\nclass { 'librenms::applications::ntp_client':\n}\n```\n\nNo further configurations needed.\n\n\n#### NTP-Server aka NTPd\n```puppet\nclass { 'librenms::applications::ntp_server':\n}\n```\n\nNo further configurations needed.\n\n\n#### Nvidia GPU\n```puppet\nclass { 'librenms::applications::nvidia':\n}\n```\n\nNo further configurations needed.\n\n\n#### Open Grid Scheduler\n```puppet\nclass { 'librenms::applications::open_grid_scheduler':\n}\n```\n\nNo further configurations needed.\n\n\n#### Opensips\n```puppet\nclass { 'librenms::applications::opensips':\n}\n```\n\nNo further configurations needed.\n\n\n#### OS-Updates\n```puppet\nclass { 'librenms::applications::osupdate':\n}\n```\n\nNo further configurations needed.\n\n\n#### PHP FPM\n```puppet\nclass { 'librenms::applications::php_fpm':\n}\n```\n\nNo further configurations needed.\n\n\n#### Pi Hole\n```puppet\nclass { 'librenms::applications::pi_hole':\n  api_auth_key =\u003e 'someapiauthkey'\n}\n```\n\n* `api_auth_key` To get all data you must configure your API auth token from Pi-hole server.\n\n\n#### Portactivity\n```puppet\nclass { 'librenms::applications::portactivity':\n  services =\u003e [],\n}\n```\n\n* `services` List of Services to be monitored\n\nExample:\n```\n['http, 'ldap', 'imap']\n```\n\nServices should be listed in `/etc/services`\n\n\n#### Postfix\n```puppet\nclass { 'librenms::applications::postfix':\n}\n```\n\nNo further configurations needed.\n\n\n#### Postgres\n```puppet\nclass { 'librenms::applications::postgres':\n}\n```\n\nNo further configurations needed.\n\n\n#### PowerDNS\n```puppet\nclass { 'librenms::applications::powerdns':\n}\n```\n\nNo further configurations needed.\n\n\n#### PowerDNS dnsdist\n```puppet\nclass { 'librenms::applications::powerdns_dnsdist':\n}\n```\n\nNo further configurations needed.\n\n\n#### PowerDNS Recursor\n```puppet\nclass { 'librenms::applications::powerdns_recursor':\n}\n```\n\nAdd to the LibreNMS `config.php` file such options:\n`$config['apps']['powerdns-recursor']['api-key']` required, this is defined in the Recursor config\n\n`$config['apps']['powerdns-recursor']['port']` numeric, defines the port to connect to PowerDNS Recursor on. The default is 8082\n\n`$config['apps']['powerdns-recursor']['https']` true or false, defaults to use http.\n\n\n#### Proxmox\n```puppet\nclass { 'librenms::applications::proxmox':\n}\n```\n\nNo further configurations needed.\n\n\n#### Puppet Agent\n```puppet\nclass { 'librenms::applications::puppet_agent':\n}\n```\n\nEnsure all depending configurations are done.\nFor Details take a look here [Puppet_Agent](https://docs.librenms.org/Extensions/Applications/#puppet_agent)\n\n\n#### PureFTPd\n```puppet\nclass { 'librenms::applications::pureftpd':\n}\n```\n\nNo further configurations needed.\n\n\n#### Raspberry Pi\n```puppet\nclass { 'librenms::applications::raspberry_pi':\n}\n```\n\nNo further configurations needed.\n\n\n#### Redis\n```puppet\nclass { 'librenms::applications::redis':\n}\n```\n\nNo further configurations needed.\n\n\n#### SDFS info\n```puppet\nclass { 'librenms::applications::sdfsinfo':\n}\n```\n\nNo further configurations needed.\n\n\n#### Seafile\n```puppet\nclass { 'librenms::applications::seafile':\n  url                     =\u003e 'seafile.mydomain.local',\n  login                   =\u003e 'somelogin',\n  password                =\u003e 'somepassword',\n  identifier              =\u003e 'name',\n  hide_monitoring_account =\u003e true,\n}\n```\n\n* `url` Url how to get access to Seafile Server. Default: ''\n* `login` Login to Seafile Server. It is important that used Login has admin privileges. Otherwise most API calls will be denied. Default: ''\n* `password` Password to the configured login. Default: ''\n* `identifier` Defines how user accounts are listed in RRD Graph. Options are: name, email. Default: name\n* `hide_monitoring_account` With this Boolean you can hide the Account which you use to access Seafile API. Default: true\n\n\n#### Smart\n\n```puppet\nclass { 'librenms::applications::seafile':\n  cache         =\u003e '/var/cache/smart',\n  use_sn        =\u003e true,\n  smart_options =\u003e {},\n}\n```\n\n* `cache` File in which Smart Values should be cached. Default: /var/cache/smart\n* `use_sn` A Boolean which defines if Serial Number of Device or Block Device Name should be used. Default: true\n* `smart_options` A Hash to add additional Smartctl Parameters to specified Block Devices. Default: {}\n\nExample:\n```\n{'da5' =\u003e '-d sat',\n 'twl0,0' =\u003e '/dev/twl0 - 3ware,0',\n 'twl0,1' =\u003e '/dev/twl0 - 3ware,1',\n 'twl0,2' =\u003e '/dev/twl0 - 3ware,2',\n}\n```\n\n\n#### Squid\n```puppet\nclass { 'librenms::applications::squid':\n  snmp_community =\u003e 'squid_snmp_community',\n}\n```\n\n* `snmp_community` SNMP Community Squid uses to publish it's data\n\nEnsure all depending configurations are done.\nFor Details take a look here [Squid](https://docs.librenms.org/Extensions/Applications/#squid)\n\n\n#### Supervisord\n```puppet\nclass { 'librenms::applications::supervisord':\n}\n```\n\nNo further configurations needed.\n\n\n#### Unbound\n```puppet\nclass { 'librenms::applications::unbound':\n}\n```\n\nEnsure all depending configurations are done.\nFor Details take a look here [Unbound](https://docs.librenms.org/Extensions/Applications/#unbound)\n\n\n#### UPS APCUPS\n```puppet\nclass { 'librenms::applications::ups_apcups':\n}\n```\n\nNo further configurations needed.\n\n\n#### UPS Nut\n```puppet\nclass { 'librenms::applications::ups_nut':\n  usv =\u003e 'my.usv.hostname',\n}\n```\n\n* `usv` hostname of the USV which has to be monitored\n\n\n#### Voipmon\n```puppet\nclass { 'librenms::applications::voipmon':\n}\n```\n\nNo further configurations needed.\n\n\n#### ZFS\n```puppet\nclass { 'librenms::applications::zfs':\n}\n```\n\nNo further configurations needed.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcedoctor%2Fpuppet-librenms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcedoctor%2Fpuppet-librenms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcedoctor%2Fpuppet-librenms/lists"}