Puppet Module to configure and distribute LibreNMS_SNMP_Agents.
(Server configuration will come in a future version also)
This Modul doesn't modify configuration of services the Agents are for. So please ensure the services you want to monitor match the requirements. Details for what to do are described or linked per Agent.
It's recommended to use puppet-hiera for configuration
class { 'librenms':
use_local_agents => true,
}use_local_agentsIf set to false Agent Scripts will be copied directly from Github. Default: true
Configuration of Discovery Trigger for LibreNMS. Would be called everytime a LibreNMS Agent is installed.
class {'librenms::discovery':
enabled => false,
librenms_server => 'librenms.local.domain',
api_token => 'myAdminApiToken',
transport_protocol => 'http',
}librenms_serverThe FQDN or IP Address on which LibreNMS is listenapi_tokenis the API Token generated in LibreNMS from an Admin Usertransport_protocoldefines the used transportprotocol. Can behttporhttps
class {'librenms::application':
apache2 => false,
asterisk => false,
backupninja => false,
bind => false,
certificate => false,
chip => false,
dhcp => false,
distribution => false,
entropy => false,
exim => false,
freeradius => false,
freeswitch => false,
gpsd => false,
mdadm => false,
icecast => false,
memcached => false,
mysql => false,
nfs_client => false,
nfs_server => false,
nginx => false,
ntp_client => false,
ntp_server => false,
nvidia => false,
open_grid_scheduler => false,
opensips => false,
osupdate => false,
php_fpm => false,
pi_hole => false,
portactivity => false,
postfix => false,
powerdns => false,
powerdns_recursor => false,
puppet_agent => false,
pureftpd => false,
redis => false,
sdfsinfo => false,
seafile => false,
smartmontools => false,
squid => false,
supervisord => false,
ups_apcups => false,
ups_nut => false,
voipmon => false,
zfs => false,
}<Agent Name>A boolean on whether or not the agent has to be installed. Default: false
- Apache - SNMP extend
- Asterisk - SNMP extend
- Backupninja - SNMP extend
- BIND9/named - SNMP extend
- C.H.I.P - SNMP extend
- Certificate - SNMP extend
- DHCP Stats - SNMP extend
- Distribution - SNMP extend
- Entropy - SNMP extend
- Exim - SNMP extend
- FreeRADIUS - SNMP extend
- FreeSwitch - SNMP extend
- GPSD - SNMP extend
- Icecast - SNMP extend
- Mailcow-dockerized Postfix - SNMP extend
- Mailscanner - SNMP extend
- Mdadm - SNMP extend
- Memcached - SNMP extend
- MySQL - SNMP extend
- NFS Client - SNMP extend
- NFS Server - SNMP extend
- Nginx - SNMP extend
- NTP Client - SNMP extend
- NTP Server/NTPD - SNMP extend
- Nvidia GPU - SNMP extend
- Open Grid Scheduler - SNMP extend
- Opensips - SNMP extend
- OS Updates - SNMP extend
- PHP FPM - SNMP extend
- Pi-Hole - SNMP extend
- Portactivity - SNMP extend
- Postfix - SNMP extend
- PowerDNS - SNMP extend
- PowerDNS Recursor - SNMP extend
- Puppet Agent - SNMP extend
- PureFTPd - SNMP extend
- Redis - SNMP extend
- SDFSinfo - SNMP extend
- Seafile - SNMP extend
- SMART - SNMP extend
- Squid - SNMP extend
- Supervisord - SNMP extend
- UPS APCUPS - SNMP extend
- UPS Nut - SNMP extend
- Voip Monitor - SNMP extend
- ZFS - SNMP extend
class { 'librenms::applications::apache2':
}Ensure all depending configurations are done. For Details take a look here Apache2
class { 'librenms::applications::asterisk':
}No further configurations needed.
class { 'librenms::applications::backupninja':
}No further configurations needed.
class { 'librenms::applications::bind':
rndc => '/usr/sbin/rndc',
call_rndc => true,
stats_file => '/var/run/named/stats',
agent => false,
zero_stats => false,
}rndcThe path to rndccall_rndcA boolean on whether or not to call rndc stats. Suggest to set to false if using netdata. Default: truestats_fileThe path to the named stats file. Default: /var/cache/bind/statsagentA boolean for if this is being used as a LibreNMS agent or not. Default: falsezero_statsA boolean for if the stats file should be zeroed first. Default: false (true if guessed)
Ensure all depending configurations are done. For Details take a look here Bind
class { 'librenms::applications::certificate':
certificates = {},
}certificatesA Hash of certificates to check Default: {}
Example:
{'domains' => [
{'fqdn' => 'www.mydomain.com'},
{'fqdn' => 'some.otherdomain.org',
'port' => 8443},
{'fqdn' => 'personal.domain.net'}
]
}
fqdnthe domain to checkportIf port differs from 443 you can specify it with this optional argument
class { 'librenms::applications::chip':
}No further configurations needed.
class { 'librenms::applications::dhcp':
lease_file => '/var/lib/dhcp/dhcpd.leases',
}lease_fileLease File of DHCP Stats. Default: /var/lib/dhcp/dhcpd.leases
This Agent returns Operation System Details to LibreNMS
class { 'librenms::applications::distribution':
}No further configurations needed.
class { 'librenms::applications::entropy':
}No further configurations needed.
class { 'librenms::applications::exim':
}No further configurations needed.
class { 'librenms::applications::fail2ban':
cache => true,
}trueIf you want to cache results. Default: true
class { 'librenms::applications::bind':
radius_server => 'localhost',
radius_port => 18121,
radius_key => 'adminsecret',
}radius_serverIP or Domain Radius Server is listen on. Default: localhostradius_portPort on which Radius Server is listening. Default: 18121radius_keyKey for authentication.
Ensure all depending configurations are done. For Details take a look here FreeRadius
class { 'librenms::applications::freeswitch':
}No further configurations needed.
class { 'librenms::applications::gpsd':
}No further configurations needed.
class { 'librenms::applications::icecast':
}No further configurations needed.
class { 'librenms::applications::mailcow_dockerized_postfix':
}No further configurations needed.
class { 'librenms::applications::mailscanner':
}No further configurations needed.
class { 'librenms::applications::mdadm':
}No further configurations needed.
class { 'librenms::applications::memcached':
}No further configurations needed.
class { 'librenms::applications::mysql':
user => 'root',
pass => 'root',
host => 'localhost',
port => 3306,
}userUsername. Default: rootpassPassword. Default: roothostIP or Hostname Database Server is listening on. Default: localhostportPort Database Server is listening on. Default 3306
Only FreeBSD Version present
class { 'librenms::applications::nfs_client':
}No further configurations needed.
class { 'librenms::applications::nfs_server':
}No further configurations needed.
class { 'librenms::applications::nginx':
}Ensure all depending configurations are done. For Details take a look here Nginx
class { 'librenms::applications::ntp_client':
}No further configurations needed.
class { 'librenms::applications::ntp_server':
}No further configurations needed.
class { 'librenms::applications::nvidia':
}No further configurations needed.
class { 'librenms::applications::open_grid_scheduler':
}No further configurations needed.
class { 'librenms::applications::opensips':
}No further configurations needed.
class { 'librenms::applications::osupdate':
}No further configurations needed.
class { 'librenms::applications::php_fpm':
}No further configurations needed.
class { 'librenms::applications::pi_hole':
api_auth_key => 'someapiauthkey'
}api_auth_keyTo get all data you must configure your API auth token from Pi-hole server.
class { 'librenms::applications::portactivity':
services => [],
}servicesList of Services to be monitored
Example:
['http, 'ldap', 'imap']
Services should be listed in /etc/services
class { 'librenms::applications::postfix':
}No further configurations needed.
class { 'librenms::applications::postgres':
}No further configurations needed.
class { 'librenms::applications::powerdns':
}No further configurations needed.
class { 'librenms::applications::powerdns_dnsdist':
}No further configurations needed.
class { 'librenms::applications::powerdns_recursor':
}Add to the LibreNMS config.php file such options:
$config['apps']['powerdns-recursor']['api-key'] required, this is defined in the Recursor config
$config['apps']['powerdns-recursor']['port'] numeric, defines the port to connect to PowerDNS Recursor on. The default is 8082
$config['apps']['powerdns-recursor']['https'] true or false, defaults to use http.
class { 'librenms::applications::proxmox':
}No further configurations needed.
class { 'librenms::applications::puppet_agent':
}Ensure all depending configurations are done. For Details take a look here Puppet_Agent
class { 'librenms::applications::pureftpd':
}No further configurations needed.
class { 'librenms::applications::raspberry_pi':
}No further configurations needed.
class { 'librenms::applications::redis':
}No further configurations needed.
class { 'librenms::applications::sdfsinfo':
}No further configurations needed.
class { 'librenms::applications::seafile':
url => 'seafile.mydomain.local',
login => 'somelogin',
password => 'somepassword',
identifier => 'name',
hide_monitoring_account => true,
}urlUrl how to get access to Seafile Server. Default: ''loginLogin to Seafile Server. It is important that used Login has admin privileges. Otherwise most API calls will be denied. Default: ''passwordPassword to the configured login. Default: ''identifierDefines how user accounts are listed in RRD Graph. Options are: name, email. Default: namehide_monitoring_accountWith this Boolean you can hide the Account which you use to access Seafile API. Default: true
class { 'librenms::applications::seafile':
cache => '/var/cache/smart',
use_sn => true,
smart_options => {},
}cacheFile in which Smart Values should be cached. Default: /var/cache/smartuse_snA Boolean which defines if Serial Number of Device or Block Device Name should be used. Default: truesmart_optionsA Hash to add additional Smartctl Parameters to specified Block Devices. Default: {}
Example:
{'da5' => '-d sat',
'twl0,0' => '/dev/twl0 - 3ware,0',
'twl0,1' => '/dev/twl0 - 3ware,1',
'twl0,2' => '/dev/twl0 - 3ware,2',
}
class { 'librenms::applications::squid':
snmp_community => 'squid_snmp_community',
}snmp_communitySNMP Community Squid uses to publish it's data
Ensure all depending configurations are done. For Details take a look here Squid
class { 'librenms::applications::supervisord':
}No further configurations needed.
class { 'librenms::applications::unbound':
}Ensure all depending configurations are done. For Details take a look here Unbound
class { 'librenms::applications::ups_apcups':
}No further configurations needed.
class { 'librenms::applications::ups_nut':
usv => 'my.usv.hostname',
}usvhostname of the USV which has to be monitored
class { 'librenms::applications::voipmon':
}No further configurations needed.
class { 'librenms::applications::zfs':
}No further configurations needed.