From cbbceb0ad344ff70de3b73cfef9312b932cbd426 Mon Sep 17 00:00:00 2001 From: Mathias Ewald Date: Mon, 17 Jul 2017 16:00:08 +0000 Subject: Add prometheus and related containers Add container for prometheus, mysqld_exporter, node_exporter and haproxy_exporter Change-Id: I6e4eb0391380e594b708a67365e240d3eeafd88b --- docker/prometheus/prometheus-base/Dockerfile.j2 | 21 +++++++++++++++++++++ docker/prometheus/prometheus-base/extend_start.sh | 9 +++++++++ .../prometheus-haproxy-exporter/Dockerfile.j2 | 20 ++++++++++++++++++++ .../prometheus-mysqld-exporter/Dockerfile.j2 | 20 ++++++++++++++++++++ .../prometheus-node-exporter/Dockerfile.j2 | 20 ++++++++++++++++++++ docker/prometheus/prometheus-server/Dockerfile.j2 | 21 +++++++++++++++++++++ 6 files changed, 111 insertions(+) create mode 100644 docker/prometheus/prometheus-base/Dockerfile.j2 create mode 100644 docker/prometheus/prometheus-base/extend_start.sh create mode 100644 docker/prometheus/prometheus-haproxy-exporter/Dockerfile.j2 create mode 100644 docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 create mode 100644 docker/prometheus/prometheus-node-exporter/Dockerfile.j2 create mode 100644 docker/prometheus/prometheus-server/Dockerfile.j2 (limited to 'docker/prometheus') diff --git a/docker/prometheus/prometheus-base/Dockerfile.j2 b/docker/prometheus/prometheus-base/Dockerfile.j2 new file mode 100644 index 000000000..93da38239 --- /dev/null +++ b/docker/prometheus/prometheus-base/Dockerfile.j2 @@ -0,0 +1,21 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block prometheus_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='prometheus') }} + +{% if base_arch == 'x86_64' %} +ENV prometheus_arch=amd64 +{% elif base_arch == 'aarch64' %} +ENV prometheus_arch=arm64 +{% else %} +ENV prometheus_arch={{ base_arch }} +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block prometheus_base_footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-base/extend_start.sh b/docker/prometheus/prometheus-base/extend_start.sh new file mode 100644 index 000000000..8613330c6 --- /dev/null +++ b/docker/prometheus/prometheus-base/extend_start.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Create log directory, with appropriate permissions +if [[ ! -d "/var/log/kolla/prometheus" ]]; then + mkdir -p /var/log/kolla/prometheus +fi +if [[ $(stat -c %a /var/log/kolla/prometheus) != "755" ]]; then + chmod 755 /var/log/kolla/prometheus +fi diff --git a/docker/prometheus/prometheus-haproxy-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-haproxy-exporter/Dockerfile.j2 new file mode 100644 index 000000000..621faa095 --- /dev/null +++ b/docker/prometheus/prometheus-haproxy-exporter/Dockerfile.j2 @@ -0,0 +1,20 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block haproxy_exporter_header %}{% endblock %} + +{% block haproxy_exporter_repository_version %} +ENV haproxy_exporter_version=0.7.1 +{% endblock %} + +{% block haproxy_exporter_install %} +RUN curl -sSL -o /tmp/haproxy_exporter.tar.gz https://github.com/prometheus/haproxy_exporter/releases/download/v${haproxy_exporter_version}/haproxy_exporter-${haproxy_exporter_version}.linux-${prometheus_arch}.tar.gz \ + && tar xvf /tmp/haproxy_exporter.tar.gz -C /opt/ \ + && rm -f /tmp/haproxy_exporter.tar.gz \ + && ln -s /opt/haproxy_exporter* /opt/haproxy_exporter +{% endblock %} + +{% block haproxy_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 new file mode 100644 index 000000000..e9f6773a2 --- /dev/null +++ b/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 @@ -0,0 +1,20 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block mysqld_exporter_header %}{% endblock %} + +{% block mysqld_exporter_repository_version %} +ENV mysqld_exporter_version=0.10.0 +{% endblock %} + +{% block mysqld_exporter_install %} +RUN curl -ssL -o /tmp/mysqld_exporter.tar.gz https://github.com/prometheus/mysqld_exporter/releases/download/v${mysqld_exporter_version}/mysqld_exporter-${mysqld_exporter_version}.linux-${prometheus_arch}.tar.gz \ + && tar xvf /tmp/mysqld_exporter.tar.gz -C /opt/ \ + && rm -f /tmp/mysqld_exporter.tar.gz \ + && ln -s /opt/mysqld_exporter* /opt/mysqld_exporter +{% endblock %} + +{% block mysqld_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 new file mode 100644 index 000000000..1738285ba --- /dev/null +++ b/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 @@ -0,0 +1,20 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block node_exporter_header %}{% endblock %} + +{% block node_exporter_repository_version %} +ENV node_exporter_version=0.14.0 +{% endblock %} + +{% block node_exporter_install %} +RUN curl -sSL -o /tmp/node_exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v${node_exporter_version}/node_exporter-${node_exporter_version}.linux-${prometheus_arch}.tar.gz \ + && tar xvf /tmp/node_exporter.tar.gz -C /opt/ \ + && rm -f /tmp/node_exporter.tar.gz \ + && ln -s /opt/node_exporter* /opt/node_exporter +{% endblock %} + +{% block node_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/docker/prometheus/prometheus-server/Dockerfile.j2 b/docker/prometheus/prometheus-server/Dockerfile.j2 new file mode 100644 index 000000000..686ac3b25 --- /dev/null +++ b/docker/prometheus/prometheus-server/Dockerfile.j2 @@ -0,0 +1,21 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block prometheus_server_header %}{% endblock %} + +{% block prometheus_server_repository_version %} +ENV prometheus_version=1.7.1 +{% endblock %} + +{% block prometheus_server_install %} +RUN curl -sSL -o /tmp/prometheus.tar.gz https://github.com/prometheus/prometheus/releases/download/v${prometheus_version}/prometheus-${prometheus_version}.linux-${prometheus_arch}.tar.gz \ + && tar xvf /tmp/prometheus.tar.gz -C /opt/ \ + && rm -f /tmp/prometheus.tar.gz \ + && ln -s /opt/prometheus* /opt/prometheus \ + && mkdir -p /etc/prometheus /data +{% endblock %} + +{% block prometheus_server_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus -- cgit v1.2.3