Yuvipanda has submitted this change and it was merged.
Change subject: prometheus: Add blackbox exporter role/class
..
prometheus: Add blackbox exporter role/class
https://wikitech.wikimedia.org/wiki/Prometheus/Black_box_exporter
explains how to build the deb. Deb is currently available only
in the tools project
Change-Id: I9050ff361ecf4dcc432bab2c0b5cb3627c6bfbff
---
A modules/prometheus/manifests/blackbox_exporter.pp
A modules/prometheus/templates/blackbox_exporter.yml.erb
A
modules/prometheus/templates/initscripts/prometheus-blackbox-exporter.systemd.erb
A modules/role/manifests/prometheus/blackbox_exporter.pp
M modules/role/manifests/prometheus/tools.pp
5 files changed, 62 insertions(+), 0 deletions(-)
Approvals:
Yuvipanda: Verified; Looks good to me, approved
diff --git a/modules/prometheus/manifests/blackbox_exporter.pp
b/modules/prometheus/manifests/blackbox_exporter.pp
new file mode 100644
index 000..fa7446f
--- /dev/null
+++ b/modules/prometheus/manifests/blackbox_exporter.pp
@@ -0,0 +1,27 @@
+# Prometheus black box metrics exporter. See also
+# https://github.com/prometheus/blackbox_exporter
+#
+# This does 'active' checks over TCP / UDP / ICMP / HTTP / DNS
+# and reports status to the prometheus scraper
+
+class prometheus::blackbox_exporter{
+requires_os('debian >= jessie')
+
+require_package('prometheus-blackbox-exporter')
+
+file { '/etc/prometheus-blackbox_exporter.yml':
+ensure => present,
+mode=> '0444',
+owner => 'root',
+group => 'root',
+content => template('prometheus/blackbox_exporter.yml.erb'),
+notify => Service['prometheus-blackbox-exporter'],
+}
+
+base::service_unit { 'prometheus-blackbox-exporter':
+ensure => present,
+refresh => true,
+systemd => true,
+require => Package['prometheus-blackbox-exporter'],
+}
+}
diff --git a/modules/prometheus/templates/blackbox_exporter.yml.erb
b/modules/prometheus/templates/blackbox_exporter.yml.erb
new file mode 100644
index 000..55b6d5a
--- /dev/null
+++ b/modules/prometheus/templates/blackbox_exporter.yml.erb
@@ -0,0 +1,13 @@
+modules:
+ tcp_connect:
+prober: tcp
+timeout: 5s
+ ssh_banner:
+prober: tcp
+timeout: 5s
+tcp:
+ query_response:
+ - expect: "^SSH-2.0-"
+ icmp:
+prober: icmp
+timeout: 5s
diff --git
a/modules/prometheus/templates/initscripts/prometheus-blackbox-exporter.systemd.erb
b/modules/prometheus/templates/initscripts/prometheus-blackbox-exporter.systemd.erb
new file mode 100644
index 000..2f35925
--- /dev/null
+++
b/modules/prometheus/templates/initscripts/prometheus-blackbox-exporter.systemd.erb
@@ -0,0 +1,7 @@
+[Unit]
+Description=prometheus-blackbox-exporter
+
+[Service]
+User=prometheus
+ExecStart=/usr/bin/blackbox_exporter -config.file
/etc/prometheus-blackbox_exporter.yml
+Restart=on-failure
diff --git a/modules/role/manifests/prometheus/blackbox_exporter.pp
b/modules/role/manifests/prometheus/blackbox_exporter.pp
new file mode 100644
index 000..6d54120
--- /dev/null
+++ b/modules/role/manifests/prometheus/blackbox_exporter.pp
@@ -0,0 +1,14 @@
+# == Class: role::prometheus::blackbox_exporter
+#
+# Role to provision prometheus blackbox / active checks exporter. See
+# https://github.com/prometheus/blackbox_exporter and the module's
documentation.
+
+class role::prometheus::blackbox_exporter {
+include ::prometheus::blackbox_exporter
+
+ferm::service { 'prometheus-blackbox-exporter':
+proto => 'tcp',
+port => '9115',
+srange => '$DOMAIN_NETWORKS',
+}
+}
diff --git a/modules/role/manifests/prometheus/tools.pp
b/modules/role/manifests/prometheus/tools.pp
index fd6afd0..f254ba3 100644
--- a/modules/role/manifests/prometheus/tools.pp
+++ b/modules/role/manifests/prometheus/tools.pp
@@ -59,6 +59,7 @@
require => Prometheus::Server['tools'],
}
+include ::role::prometheus::blackbox_exporter
include ::prometheus::scripts
$targets_path = '/srv/prometheus/tools/targets'
--
To view, visit https://gerrit.wikimedia.org/r/303986
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9050ff361ecf4dcc432bab2c0b5cb3627c6bfbff
Gerrit-PatchSet: 5
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda
Gerrit-Reviewer: Yuvipanda
Gerrit-Reviewer: jenkins-bot <>
___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits