diff options
Diffstat (limited to 'kolla/docker/prometheus')
15 files changed, 340 insertions, 0 deletions
diff --git a/kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 new file mode 100644 index 000000000..8f2df0492 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 @@ -0,0 +1,21 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_alertmanager_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_alertmanager_install %} +ADD prometheus-alertmanager-archive /prometheus-alertmanager-source +RUN cp -r /prometheus-alertmanager-source/* /opt/ \ + && ln -s /opt/alertmanager* /opt/prometheus_alertmanager +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_alertmanager_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-base/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-base/Dockerfile.j2 new file mode 100644 index 000000000..123bd4ba3 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-base/Dockerfile.j2 @@ -0,0 +1,17 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='prometheus') }} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 644 /usr/local/bin/kolla_extend_start + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_base_footer %}{% endblock %} diff --git a/kolla/docker/prometheus/prometheus-base/extend_start.sh b/kolla/docker/prometheus/prometheus-base/extend_start.sh new file mode 100644 index 000000000..8613330c6 --- /dev/null +++ b/kolla/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/kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 new file mode 100644 index 000000000..95018facf --- /dev/null +++ b/kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 @@ -0,0 +1,36 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_blackbox_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if base_package_type == 'rpm' %} + {% set blackbox_packages = [ + 'libcap' + ] %} +{% elif base_package_type == 'deb' %} + {% set blackbox_packages = [ + 'libcap2-bin' + ] %} +{% endif %} + +{{ macros.install_packages(blackbox_packages | customizable("packages")) }} + +{% block prometheus_blackbox_exporter_install %} +ADD prometheus-blackbox-exporter-archive /prometheus-blackbox-exporter-source + +RUN ln -s /prometheus-blackbox-exporter-source/* prometheus-blackbox-exporter \ + && mkdir -p /opt/blackbox_exporter/ \ + && cp /prometheus-blackbox-exporter/blackbox_exporter /opt/blackbox_exporter/ \ + && setcap cap_net_raw+ep /opt/blackbox_exporter/blackbox_exporter +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_blackbox_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 new file mode 100644 index 000000000..884f4acd2 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 @@ -0,0 +1,20 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_cadvisor_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_cadvisor_install %} +ADD prometheus-cadvisor-archive /prometheus-cadvisor-source + +RUN cp /prometheus-cadvisor-source /opt/cadvisor \ + && chmod 0755 /opt/cadvisor +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_cadvisor_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 new file mode 100644 index 000000000..63d09409c --- /dev/null +++ b/kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 @@ -0,0 +1,23 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_elasticsearch_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_elasticsearch_exporter_install %} +ADD prometheus-elasticsearch-exporter-archive /prometheus-elasticsearch-exporter-source + +RUN ln -s /prometheus-elasticsearch-exporter-source/* prometheus-elasticsearch-exporter \ + && mkdir -p /opt/elasticsearch_exporter \ + && cp /prometheus-elasticsearch-exporter/elasticsearch_exporter /opt/elasticsearch_exporter/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_elasticsearch_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 new file mode 100644 index 000000000..c32b2f8c7 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_libvirt_exporter_header %}{% endblock %} + +{{ macros.install_packages(prometheus_libvirt_exporter_packages | customizable("packages")) }} + +{% block prometheus_libvirt_exporter_install %} +ADD prometheus-libvirt-exporter-archive /prometheus-libvirt-exporter-source + +RUN ln -s /prometheus-libvirt-exporter-source/* prometheus-libvirt-exporter \ + && cp /prometheus-libvirt-exporter/prometheus-libvirt-exporter /opt/libvirt-exporter + +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_libvirt_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER root diff --git a/kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 new file mode 100644 index 000000000..cb50c2095 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 @@ -0,0 +1,23 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_memcached_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_memcached_exporter_install %} +ADD prometheus-memcached-exporter-archive /prometheus-memcached-exporter-source + +RUN ln -s /prometheus-memcached-exporter-source/* prometheus-memcached-exporter \ + && mkdir -p /opt/memcached_exporter/ \ + && cp /prometheus-memcached-exporter/memcached_exporter /opt/memcached_exporter/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_memcached_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-mtail/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-mtail/Dockerfile.j2 new file mode 100644 index 000000000..a562bfd71 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-mtail/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_mtail_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_mtail_install %} +ADD prometheus-mtail-archive /prometheus-mtail-source + +RUN cp /prometheus-mtail-source/* /opt/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_mtail_footer %}{% endblock %} +{% block footer %}{% endblock %} + +# NOTE(dszumski): We run as root so that mtail can scrape root owned logs +# such as /var/log/secure which are mounted into the container as read only +# for auditing purposes. Longer term we should use a more secure mechanism +# for tailing these logs. +USER root diff --git a/kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 new file mode 100644 index 000000000..f8d2abaa6 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 @@ -0,0 +1,23 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block mysqld_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block mysqld_exporter_install %} +ADD prometheus-mysqld-exporter-archive /prometheus-mysqld-exporter-source + +RUN ln -s /prometheus-mysqld-exporter-source/* prometheus-mysqld-exporter \ + && mkdir -p /opt/mysqld_exporter \ + && cp /prometheus-mysqld-exporter/mysqld_exporter /opt/mysqld_exporter/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block mysqld_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 new file mode 100644 index 000000000..3250d3d7a --- /dev/null +++ b/kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 @@ -0,0 +1,23 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block node_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block node_exporter_install %} +ADD prometheus-node-exporter-archive /prometheus-node-exporter-source + +RUN ln -s /prometheus-node-exporter-source/* prometheus-node-exporter \ + && mkdir -p /opt/node_exporter/ \ + && cp /prometheus-node-exporter/node_exporter /opt/node_exporter/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block node_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 new file mode 100644 index 000000000..437f3a6cd --- /dev/null +++ b/kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 @@ -0,0 +1,22 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_openstack_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_openstack_exporter_install %} +ADD prometheus-openstack-exporter-archive /prometheus-openstack-exporter-source + +RUN mkdir /opt/openstack-exporter \ + && cp /prometheus-openstack-exporter-source/openstack-exporter /opt/openstack-exporter/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_openstack_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 new file mode 100644 index 000000000..3d4d9197b --- /dev/null +++ b/kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 @@ -0,0 +1,24 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_openstack_network_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_openstack_network_exporter_install %} +ADD prometheus-openstack-network-exporter-archive /prometheus-openstack-network-exporter-source + +RUN mkdir /opt/openstack-network-exporter \ + && cp /prometheus-openstack-network-exporter-source /opt/openstack-network-exporter/openstack-network-exporter \ + && chmod 0755 /opt/openstack-network-exporter/openstack-network-exporter +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_openstack_network_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +# NOTE: OVN/OVS are running as root. Since we need to read sockets owned by +# these services we don't switch to the Prometheus user here. diff --git a/kolla/docker/prometheus/prometheus-server/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-server/Dockerfile.j2 new file mode 100644 index 000000000..a3b227d7e --- /dev/null +++ b/kolla/docker/prometheus/prometheus-server/Dockerfile.j2 @@ -0,0 +1,24 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block prometheus_server_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_server_install %} +ADD prometheus-server-archive /prometheus-server-source + +RUN ln -s /prometheus-server-source/* prometheus-server \ + && mkdir -p /opt/prometheus \ + && cp -r /prometheus-server/* /opt/prometheus/ \ + && mkdir -p /etc/prometheus /data +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_server_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus diff --git a/kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j2 new file mode 100644 index 000000000..c6cf79ac3 --- /dev/null +++ b/kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block prometheus_valkey_exporter_header %}{% endblock %} + +{{ macros.install_packages(prometheus_valkey_exporter_packages | customizable("packages")) }} + +{% block prometheus_valkey_exporter_install %} +ADD prometheus-valkey-exporter-archive /prometheus-valkey-exporter-source + +RUN ln -s /prometheus-valkey-exporter-source/* prometheus-valkey-exporter \ + && cp /prometheus-valkey-exporter/redis_exporter /opt/valkey-exporter + +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_valkey_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER prometheus |
