-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathDockerfile.in
109 lines (95 loc) · 5.61 KB
/
Dockerfile.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
FROM zenoss/centos-base:1.1.7-java
MAINTAINER Zenoss <[email protected]>
# Create mount point for isvcs resources
RUN mkdir -p /usr/local/serviced/resources
RUN yum -y --setopt=tsflags="nodocs" install java-11-openjdk-headless && /sbin/scrub.sh
# Install serviced's Elastic
ENV ES_SERVICED_VERSION %ELK_VERSION%
ADD es-serviced-addendum.yaml /var/es-serviced-addendum.yaml
ADD changeESLogProperties.sh /var/changeESLogProperties.sh
RUN wget -qO- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${ES_SERVICED_VERSION}-linux-x86_64.tar.gz | tar -C /opt -xz \
&& cp -r /opt/elasticsearch-${ES_SERVICED_VERSION} /opt/elasticsearch-serviced \
&& cat /var/es-serviced-addendum.yaml >> /opt/elasticsearch-serviced/config/elasticsearch.yml \
&& groupadd -g 1001 elastic \
&& useradd elastic -u 1001 -g 1001 \
&& chown elastic:elastic -R /opt/elasticsearch-serviced \
&& /sbin/scrub.sh
# Install logstash's Elastic
ENV ELK_VERSION %ELK_VERSION%
ADD es-logstash-addendum.yaml /var/es-logstash-addendum.yaml
ADD curator-actions.yml /opt/curator/curator-actions.yml
ADD curator-config.yml /opt/curator/curator-config.yml
COPY elasticsearch-logstash-${ELK_VERSION}.tar.gz /
RUN cp -r /opt/elasticsearch-${ELK_VERSION} /opt/elasticsearch-logstash \
&& sed -i -e 's/^.*http.port.*$/http.port: 9100/' /opt/elasticsearch-logstash/config/elasticsearch.yml \
&& sed -i -e 's/^# bootstrap.memory_lock: true/bootstrap.memory_lock: true/' /opt/elasticsearch-logstash/config/elasticsearch.yml \
&& cat /var/es-logstash-addendum.yaml >> /opt/elasticsearch-logstash/config/elasticsearch.yml \
&& yum -y remove python-requests \
&& pip install --no-cache-dir requests==2.24.0 elasticsearch-curator==5.8.3 \
&& chown elastic:elastic -R /opt/curator \
&& chown elastic:elastic -R /opt/elasticsearch-logstash \
&& /sbin/scrub.sh
ADD es-logstash-start.sh /opt/elasticsearch-logstash/bin
# Install metric consumer
ENV CONSUMER_VERSION 0.1.5
ADD modify-consumer-config.sh /var/modify-consumer-config.sh
RUN mkdir -p /opt/zenoss/log /opt/zenoss/etc/supervisor /opt/zenoss/var
RUN wget -qO- https://zenoss-pip.s3.amazonaws.com/packages/metric-consumer-app-${CONSUMER_VERSION}-zapp.tar.gz | tar -C /opt/zenoss -xz \
&& chmod a+x /opt/zenoss/bin/metric-consumer-app.sh \
&& ln -s /opt/zenoss/etc/metric-consumer-app/metric-consumer-app_supervisor.conf /opt/zenoss/etc/supervisor \
&& /var/modify-consumer-config.sh /opt/zenoss/etc/metric-consumer-app/configuration.yaml \
&& /sbin/scrub.sh
# Install query service
ENV QUERY_VERSION 0.1.22
ADD modify-query-config.sh /var/modify-query-config.sh
RUN mkdir -p /opt/zenoss/log /opt/zenoss/etc/supervisor /opt/zenoss/var
RUN wget -qO- https://zenoss-pip.s3.amazonaws.com/packages/central-query-${QUERY_VERSION}-zapp.tar.gz | tar -C /opt/zenoss -xz \
&& chmod a+x /opt/zenoss/bin/central-query.sh \
&& ln -s /opt/zenoss/etc/central-query/central-query_supervisor.conf /opt/zenoss/etc/supervisor \
&& /var/modify-query-config.sh /opt/zenoss/etc/central-query/configuration.yaml \
&& /sbin/scrub.sh
# Install Logstash
RUN wget -qO- https://artifacts.elastic.co/downloads/logstash/logstash-${ELK_VERSION}-linux-x86_64.tar.gz | tar -C /opt -xz \
&& ln -s /opt/logstash-${ELK_VERSION} /opt/logstash \
&& /opt/logstash-${ELK_VERSION}/bin/logstash-plugin install --local logstash-input-beats \
&& /opt/logstash-${ELK_VERSION}/bin/logstash-plugin install logstash-filter-multiline
# Install Docker registry
ENV REGISTRY_VERSION %REGISTRY_VERSION%
ADD registry-${REGISTRY_VERSION}.tar.gz /
# Install hbase and opentsdb
ENV OPENTSDB_VERSION %OPENTSDB_VERSION%
ENV HBASE_VERSION %HBASE_VERSION%
ENV HAPROXY_VERSION %HAPROXY_VERSION%
ADD set-opentsdb-table-ttl.sh /var/set-opentsdb-table-ttl.sh
ADD opentsdb-${OPENTSDB_VERSION}_hbase-${HBASE_VERSION}.tar.gz /
RUN yum -y install \
gnuplot-minimal \
make \
snappy \
lzo \
gcc-c++ \
openssl-devel \
pcre-static \
pcre-devel \
&& /sbin/scrub.sh
# Install HaProxy
RUN wget -qO- http://www.haproxy.org/download/2.4/src/haproxy-${HAPROXY_VERSION}.tar.gz | tar -C /usr/src -xz \
&& cd /usr/src/haproxy-${HAPROXY_VERSION} \
&& mkdir -p /var/lib/haproxy \
&& make TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1 \
&& make install
# Add supervisord config
ADD supervisor.conf /opt/zenoss/etc/supervisor.conf
# Kibana
RUN wget -qO- https://artifacts.elastic.co/downloads/kibana/kibana-${ELK_VERSION}-linux-x86_64.tar.gz | tar -C /opt -xz \
&& mv /opt/kibana-${ELK_VERSION}-linux-x86_64 /opt/kibana-${ELK_VERSION} \
&& ln -s /opt/kibana-${ELK_VERSION} /opt/kibana \
&& sed -i -e 's@^#elasticsearch.hosts:.*[email protected]: ["http://elasticsearch:9100"]@' /opt/kibana-${ELK_VERSION}/config/kibana.yml \
&& sed -i -e 's@^#server.basePath:.*[email protected]: "/api/controlplane/kibana"@' /opt/kibana-${ELK_VERSION}/config/kibana.yml \
&& sed -i -e 's@^.*kibana.index:.*[email protected]: "kibana-int"@' /opt/kibana-${ELK_VERSION}/config/kibana.yml \
&& sed -i -e 's@^#server.port:.*[email protected]: 5601@' /opt/kibana-${ELK_VERSION}/config/kibana.yml \
&& sed -i -e 's@^#server.host:.*[email protected]: "0"@' /opt/kibana-${ELK_VERSION}/config/kibana.yml \
&& sed -i -e 's@^#server.rewriteBasePath:.*[email protected]: false@' /opt/kibana-${ELK_VERSION}/config/kibana.yml
# HACK: Run kibana so that it will optimize the bundles
# RUN /opt/kibana/bin/kibana 2>&1 | grep -m 1 "Optimization of .* complete in .* seconds"
RUN /opt/kibana/bin/kibana --allow-root --optimize