feat: add nzbget_exporter (#368)
- add nzbget_exporter class - add exporter to nzbget class Reviewed-on: #368
This commit is contained in:
parent
5a9241940f
commit
53fabc923b
@ -4,6 +4,7 @@ hiera_include:
|
||||
- nzbget
|
||||
- profiles::media::nzbget
|
||||
- profiles::nginx::ldapauth
|
||||
- exporters::nzbget_exporter
|
||||
|
||||
profiles::packages::include:
|
||||
unrar: {}
|
||||
@ -13,6 +14,9 @@ nzbget::params::user: nzbget
|
||||
nzbget::params::group: media
|
||||
nzbget::params::manage_group: false
|
||||
|
||||
# nzbget_exporter
|
||||
exporters::nzbget_exporter::enable: true
|
||||
|
||||
# additional altnames
|
||||
profiles::pki::vault::alt_names:
|
||||
- nzbget.main.unkin.net
|
||||
@ -62,6 +66,9 @@ profiles::consul::client::node_rules:
|
||||
- resource: service
|
||||
segment: nzbget
|
||||
disposition: write
|
||||
- resource: service
|
||||
segment: nzbget_exporter
|
||||
disposition: write
|
||||
|
||||
profiles::yum::global::repos:
|
||||
rpmfusion-free:
|
||||
|
||||
68
modules/exporters/manifests/nzbget_exporter.pp
Normal file
68
modules/exporters/manifests/nzbget_exporter.pp
Normal file
@ -0,0 +1,68 @@
|
||||
class exporters::nzbget_exporter (
|
||||
Boolean $enable = false,
|
||||
String $user = 'nzbget_exporter',
|
||||
String $group = 'nzbget_exporter',
|
||||
Boolean $manage_user = true,
|
||||
Boolean $manage_service = true,
|
||||
Stdlib::Port $port = 9452,
|
||||
Stdlib::HTTPUrl $url = 'http://127.0.0.1:6789',
|
||||
Stdlib::Absolutepath $exec_path = '/usr/bin/nzbget_exporter',
|
||||
){
|
||||
|
||||
if $enable {
|
||||
|
||||
# install required package
|
||||
package {'nzbget_exporter':
|
||||
ensure => installed,
|
||||
}
|
||||
|
||||
# manage the user/group
|
||||
if $manage_user {
|
||||
group { $group:
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
user { $user:
|
||||
ensure => present,
|
||||
shell => '/usr/sbin/nologin',
|
||||
groups => $group,
|
||||
managehome => true,
|
||||
}
|
||||
}
|
||||
|
||||
# manage the systemd service
|
||||
if $manage_service {
|
||||
|
||||
# Use these in notifications or file resources
|
||||
systemd::unit_file { 'nzbget_exporter.service':
|
||||
content => template('exporters/nzbget_exporter.service.erb'),
|
||||
enable => true,
|
||||
active => true,
|
||||
subscribe => Package['nzbget_exporter'],
|
||||
}
|
||||
}
|
||||
|
||||
# manage consul service
|
||||
consul::service { 'nzbget_exporter':
|
||||
service_name => 'nzbget_exporter',
|
||||
address => $facts['networking']['ip'],
|
||||
port => $port,
|
||||
tags => [
|
||||
'metrics',
|
||||
'metrics_scheme=http',
|
||||
'metrics_job=nzbget',
|
||||
],
|
||||
checks => [
|
||||
{
|
||||
id => 'nzbget_exporter_http_check',
|
||||
name => 'nzbget_exporter HTTP Check',
|
||||
http => "http://${facts['networking']['fqdn']}:${port}/metrics",
|
||||
method => 'GET',
|
||||
tls_skip_verify => true,
|
||||
interval => '10s',
|
||||
timeout => '1s',
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
}
|
||||
15
modules/exporters/templates/nzbget_exporter.service.erb
Normal file
15
modules/exporters/templates/nzbget_exporter.service.erb
Normal file
@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Prometheus nzbget_exporter
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User=<%= @user %>
|
||||
Group=<%= @group %>
|
||||
ExecStart=<%= @exec_path %> --host=<%= @url %>
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
KillMode=process
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Loading…
Reference in New Issue
Block a user