Compare commits

...

8 Commits

5 changed files with 54 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ CONFIGURATION
- manages the main alloy pipeline for loki and prometheus
- manages log rotation for rsyslog to allow adm membership
- manage service
- optional: include nagios target for the alloy service (set `ay_manage_nagios`to `true`)
## Repo Documentation
@@ -53,6 +54,8 @@ See the full Puppet documentation including parameters in `docs/index.html`
All dependencies must be included in the catalogue.
- [confdroid_nagios](https://sourcecode.confdroid.com/confdroid/confdroid_nagios) if nagios monitoring is desired
## Deployment
- native Puppet deployment

View File

@@ -7,4 +7,8 @@ class confdroid_alloy::main::config (
) inherits confdroid_alloy::params {
include confdroid_alloy::main::service
if $ay_manage_nagios == true {
include confdroid_alloy::monitoring::target
}
}

View File

@@ -0,0 +1,23 @@
## confdroid_alloy::monitoring::target.pp
# Module name: confdroid_alloy
# Author: 12ww1160 (12ww1160@puppetsoft.com)
# @summary class manages exports for nagios monitoring
##############################################################################
class confdroid_alloy::monitoring::target (
) inherits confdroid_alloy::params {
if $ay_manage_nagios == true {
@@nagios_service { "check_alloy_${fqdn}":
check_command => "check_nrpe!check_alloy!${ay_procs_allowed}!alloy",
use => 'generic-service',
host_name => $fqdn,
notification_period => '24x7',
service_description => "${fqdn}_check_alloy",
target => $ay_target_service,
owner => 'nagios',
group => 'nagios',
mode => '0640',
contacts => $ay_target_contacts,
}
}
}

View File

@@ -14,6 +14,13 @@
# timestamps in prometheus metrics
# @param [Boolean] ay_prom_track_timestamps_staleness whether to track timestamps
# staleness in prometheus metrics
# @param [String] ay_prom_max_shards the maximum number of shards to use for prometheus metrics
# @param [String] ay_prom_max_samples_per_send the maximum number of samples to send
# @param [String] ay_prom_batch_send_deadline the maximum time to wait before sending
# @param [Boolean] ay_manage_nagios whether to manage nagios service exports
# @param [String] ay_target_service the target file for nagios service exports
# @param [Array] ay_target_contacts the contacts for nagios service exports
# @param [String] ay_procs_allowed the allowed number of processes for nagios service exports
# @summary Class contains all parameters for the confdroid_alloy module.
##############################################################################
class confdroid_alloy::params (
@@ -33,8 +40,20 @@ class confdroid_alloy::params (
String $ay_prom_url = 'https://prometheus.example.net/api/v1/write',
Boolean $ay_prom_honor_timestamps = true,
Boolean $ay_prom_track_timestamps_staleness = true,
String $ay_prom_max_shards = '10',
String $ay_prom_max_samples_per_send = '2000',
String $ay_prom_batch_send_deadline = '5s',
# nagios
Boolean $ay_manage_nagios = false,
String $ay_target_service = '/etc/nagios/conf.d/alloy_service.cfg',
Array $ay_target_contacts = ['nagiosadmin'],
String $ay_procs_allowed = '1:1'
) {
# defaults
$fqdn = $facts['networking']['fqdn']
# service
$ay_service = 'alloy'

View File

@@ -94,6 +94,11 @@ prometheus.remote_write "prometheus" {
username = "<%= @ay_loki_username %>"
password = "<%= @ay_loki_userpass %>"
}
queue_config {
max_shards = <%= @ay_prom_max_shards %>
max_samples_per_send = <%= @ay_prom_max_samples_per_send %>
batch_send_deadline = "<%= @ay_prom_batch_send_deadline %>"
}
}
}
<% end %>