[MediaWiki-commits] [Gerrit] operations/puppet[production]: prometheus: Add blackbox exporter role/class

2016-08-10 Thread Yuvipanda (Code Review)
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


[MediaWiki-commits] [Gerrit] operations/puppet[production]: prometheus: Add blackbox exporter role/class

2016-08-10 Thread Yuvipanda (Code Review)
Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/303986

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/role/manifests/prometheus/blackbox_exporter.pp
3 files changed, 54 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/86/303986/1

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/role/manifests/prometheus/blackbox_exporter.pp 
b/modules/role/manifests/prometheus/blackbox_exporter.pp
new file mode 100644
index 000..0127e99
--- /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   => '9150',
+srange => '$DOMAIN_NETWORKS',
+}
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/303986
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9050ff361ecf4dcc432bab2c0b5cb3627c6bfbff
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits