Sign inSign up

szgx/logstash

By szgx

•Updated almost 7 years ago

Image
0

119

szgx/logstash repository overview

⁠参考链接

https://github.com/gagara/docker-elk-arm64/tree/master/logstash⁠

⁠创建 Dockerfile

FROM golang:1.8 AS prep_env2yaml

ADD env2yaml/env2yaml.go .

RUN go get gopkg.in/yaml.v2 && \
    mkdir env2yaml && \
    mv env2yaml.go env2yaml/ && \
    cd env2yaml/ && \
    go build

FROM centos:7 AS prep_files

COPY logstash-7.4.1.tar.gz .

RUN mkdir -p /usr/share/logstash && \
    tar -C /usr/share/logstash --strip-components=1 -zxf logstash-7.4.1.tar.gz && rm -f logstash-7.4.1.tar.gz && \
    # Bug: https://github.com/elastic/logstash/issues/10888
    yum install -y zip unzip && \
    mkdir -p /tmp/jruby-complete && \
    unzip -q /usr/share/logstash/logstash-core/lib/jars/jruby-complete-9.2.8.0.jar -d /tmp/jruby-complete && \
    cp /tmp/jruby-complete/META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/arm-linux/{types,platform}.conf && \
    cd /tmp/jruby-complete && \
    zip -qr /tmp/jruby-complete-9.2.8.0.jar * && \
    cp -f /tmp/jruby-complete-9.2.8.0.jar /usr/share/logstash/logstash-core/lib/jars/jruby-complete-9.2.8.0.jar


# This Dockerfile was generated from templates/Dockerfile.j2
FROM centos:7

# Install Java and the "which" command, which is needed by Logstash's shell
# scripts.
RUN yum update -y && yum install -y java-11-openjdk-devel which && \
    yum clean all

# Provide a non-root user to run the process.
RUN groupadd --gid 1000 logstash && \
    adduser --uid 1000 --gid 1000 \
      --home-dir /usr/share/logstash \
      logstash

# Add Logstash itself.
COPY --from=prep_files --chown=1000:0 /usr/share/logstash /usr/share/logstash
RUN chmod -R g=u /usr/share/logstash && \
    find /usr/share/logstash -type d -exec chmod g+s {} \; && \
    ln -s /usr/share/logstash /opt/logstash

WORKDIR /usr/share/logstash

ENV ELASTIC_CONTAINER true
ENV PATH=/usr/share/logstash/bin:$PATH

RUN chown --recursive logstash:root config/

# Ensure Logstash gets a UTF-8 locale by default.
# ENV LANG='en_US.UTF-8' LC_ALL='en_US.UTF-8'

# Place the startup wrapper script.
ADD bin/docker-entrypoint /usr/local/bin/
RUN chmod 0755 /usr/local/bin/docker-entrypoint

USER 1000

COPY --from=prep_env2yaml --chown=logstash:root /go/env2yaml/env2yaml /usr/local/bin/

EXPOSE 5044


LABEL org.label-schema.schema-version="1.0" \
  org.label-schema.vendor="Elastic" \
  org.label-schema.name="logstash" \
  org.label-schema.version="7.4.1" \
  org.label-schema.url="https://www.elastic.co/products/logstash" \
  org.label-schema.vcs-url="https://github.com/elastic/logstash" \
license="Apache-2.0"

ENTRYPOINT ["/usr/local/bin/docker-entrypoint"]

⁠下载 Logstash

https://artifacts.elastic.co/downloads/logstash/logstash-oss-<version>.tar.gz⁠

⁠下载构建资源文件

从参考连接指向的仓库下载 bin 和 env2yaml 目录到构建目录。

⁠构建新的镜像

docker build -t szgx/logstash:7.4.x_armv7 .

⁠镜像使用

创建配置文件:

# logstash.conf
input {
    syslog {
	    type => "syslog-flow"
        port => 5044
    }
}

filter {
    ... ...
}

output {
    elasticsearch {
            hosts => ["http://<container_id>:9200/"]
            index => "test"
        }
}
docker run -p "5044:5044/udp" -v ./logstash.conf:/logstash.conf szgx/logstash:7.4.x_armv7 -f /logstash.conf

Tag summary

Content type

Image

Digest

Size

522.4 MB

Last updated

almost 7 years ago

docker pull szgx/logstash:7.4.1_armv7