puppet: Add prometheus server.

This commit is contained in:
Alex Vandiver
2020-07-23 14:23:43 -07:00
committed by Alex Vandiver
parent 19fb58e845
commit 459f37f041
3 changed files with 94 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
global:
# Set the scrape interval to every 15 seconds. Default is every 1 minute.
scrape_interval: 15s
# Evaluate rules every 15 seconds. The default is every 1 minute.
evaluation_interval: 15s
scrape_configs:
# Self-monitoring
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
# Fetch from node_exporter on all of the EC2 hosts
- job_name: "node"
ec2_sd_configs:
- region: us-east-1
port: 9100
refresh_interval: 1m
relabel_configs:
- source_labels: ["__meta_ec2_tag_Name"]
target_label: "instance"
- source_labels: ["__meta_ec2_tag_role"]
target_label: "role"

View File

@@ -0,0 +1,9 @@
[program:prometheus]
command=/srv/prometheus/prometheus --storage.tsdb.path="/var/lib/prometheus" --config.file="/etc/prometheus/prometheus.yaml" --web.listen-address="127.0.0.1:9090"
directory=/srv/prometheus
priority=10
autostart=true
autorestart=true
user=prometheus
redirect_stderr=true
stdout_logfile=/var/log/prometheus.log

View File

@@ -0,0 +1,62 @@
# @summary Gathers Prometheus statistics from all nodes.
#
# Only one instance is necessary.
#
class zulip_ops::profile::prometheus_server {
include zulip_ops::profile::base
include zulip_ops::prometheus::base
$version = '2.27.1'
zulip::sha256_tarball_to { 'prometheus':
url => "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-${version}.linux-amd64.tar.gz",
sha256 => 'ce637d0167d5e6d2561f3bd37e1c58fe8601e13e4e1ea745653c068f6e1317ae',
install => {
"prometheus-${version}.linux-amd64/" => "/srv/prometheus-${version}/",
},
}
file { '/srv/prometheus':
ensure => 'link',
target => "/srv/prometheus-${version}/",
require => Zulip::Sha256_tarball_to['prometheus'],
}
file { '/usr/local/bin/promtool':
ensure => 'link',
target => '/srv/prometheus/promtool',
require => File['/srv/prometheus'],
}
file { '/var/lib/prometheus':
ensure => directory,
owner => 'prometheus',
group => 'prometheus',
require => [ User[prometheus], Group[prometheus] ],
}
file { '/etc/supervisor/conf.d/prometheus.conf':
ensure => file,
require => [
Package[supervisor],
File['/srv/prometheus'],
File['/var/lib/prometheus'],
],
owner => 'root',
group => 'root',
mode => '0644',
source => 'puppet:///modules/zulip_ops/supervisor/conf.d/prometheus.conf',
notify => Service[supervisor],
}
file { '/etc/prometheus':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0644',
}
file { '/etc/prometheus/prometheus.yaml':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => 'puppet:///modules/zulip_ops/prometheus/prometheus.yaml',
notify => Service[supervisor],
}
}