0cf2c53450
Logstash was added to Kolla as part of the effort to deploy Monasca. Monasca uses Kafka messaging version 0.9 which is not supported by Logstash 5.x with the default Kafka input/output plugins. An attempt to downgrade the plugins to the 4.x series which should be compatible with messaging version 0.9 and Logstash 5.x failed. Therefore, until Monasca is upgraded (work is ongoing) this patch downgrades Logstash to 2.4.1. Although it would have been simpler to perform the downgrade by blacklisting the Logstash 5.x package which is provided as part of the official ELK repo and installing the official repo for Logstash 2.4.1, Ubuntu 18.04 no longer accepts SHA1 hashes (for good reason) and will not install Logstash 2.4.1 from this repo (fails with GPG error). This approach does however work for Centos, but for consistency it was not used. This change therefore modifies the Logstash dockerfile, and directly downloads and installs the Logstash 2.4.1 package. It should be reverted as soon as Monasca is upgraded. Partially-Implements: blueprint monasca-containers Change-Id: I58fba9ceded4b3a198136df084c7d37365ab47a8
69 lines
2.3 KiB
Django/Jinja
69 lines
2.3 KiB
Django/Jinja
FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
|
|
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
|
|
|
|
{% block logstash_header %}{% endblock %}
|
|
|
|
{% import "macros.j2" as macros with context %}
|
|
|
|
{{ macros.configure_user(name='logstash', shell='/bin/bash', homedir='/usr/share/logstash') }}
|
|
|
|
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
|
|
{% set logstash_packages = [
|
|
'java-1.8.0-openjdk-headless'
|
|
] %}
|
|
|
|
ENV JAVA_HOME /usr/lib/jvm/jre-1.8.0-openjdk/
|
|
|
|
{% elif base_distro in ['debian', 'ubuntu'] %}
|
|
{% set logstash_packages = [
|
|
'openjdk-8-jre-headless',
|
|
'logrotate'
|
|
] %}
|
|
|
|
{% if base_arch == 'x86_64' %}
|
|
ARG java_arch=amd64
|
|
{% elif base_arch == 'aarch64' %}
|
|
ARG java_arch=arm64
|
|
{% else %}
|
|
ARG java_arch={{ base_arch }}
|
|
{% endif %}
|
|
|
|
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-${java_arch}/
|
|
|
|
{% endif %}
|
|
|
|
{{ macros.install_packages(logstash_packages | customizable("packages")) }}
|
|
COPY extend_start.sh /usr/local/bin/kolla_extend_start
|
|
|
|
# FIXME(dszumski): Logstash was added to Kolla for Monasca. Monasca is
|
|
# currently tied to an old messaging version in Kafka (0.9) and doesn't
|
|
# work with Logstash 5.x or above. When Monasca is updated to use a more
|
|
# recent messaging version this patch should be reverted and the Monasca
|
|
# Logstash configuration files upgraded to use the new format.
|
|
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
|
|
|
|
ENV logstash_rpm_url=https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.4.1.noarch.rpm
|
|
ENV logstash_rpm_sha1sum=68c5e78c3d941f06f77d638c0756b6aea715bec5
|
|
RUN curl -sSL -o /tmp/logstash.rpm ${logstash_rpm_url} \
|
|
&& echo "${logstash_rpm_sha1sum} /tmp/logstash.rpm" | sha1sum -c \
|
|
&& yum -y install /tmp/logstash.rpm \
|
|
&& rm -f /tmp/logstash.rpm
|
|
|
|
{% elif base_distro in ['debian', 'ubuntu'] %}
|
|
|
|
ENV logstash_deb_url=https://download.elastic.co/logstash/logstash/packages/debian/logstash-2.4.1_all.deb
|
|
ENV logstash_deb_sha1sum=7ba3b174a3ef48a7d0945d9b5c7f12c5005abb47
|
|
RUN curl -sSL -o /tmp/logstash.deb ${logstash_deb_url} \
|
|
&& echo "${logstash_deb_sha1sum} /tmp/logstash.deb" | sha1sum -c \
|
|
&& apt install /tmp/logstash.deb \
|
|
&& rm -f /tmp/logstash.deb
|
|
|
|
{% endif %}
|
|
|
|
RUN chmod 755 /usr/local/bin/kolla_extend_start
|
|
|
|
{% block logstash_footer %}{% endblock %}
|
|
{% block footer %}{% endblock %}
|
|
|
|
USER logstash
|