5

我有一个小node脚本,bunyan用于处理应用程序日志记录。记录器写入本地存储。我想将日志发送给elasticsearch使用filebeat(这对我来说都是新技术)。

我已经制作了一个dockerfile容器化应用程序(如下),但我不确定如何/在哪里插入必要的说明。有没有办法elasticsearch从内部发送我的日志docker?当我在做的时候,还要发送docker container& os 发出的任何日志吗?

# dockerfile. 
# installations and entrypoint are to run nightmarejs headless
FROM node:latest

RUN apt-get update &&\
    apt-get install -y libgtk2.0-0 libgconf-2-4 \
    libasound2 libxtst6 libxss1 libnss3 xvfb

WORKDIR /app
COPY ./dist .

# enable installation of private npm modules
ARG NPM_TOKEN  
COPY .npmrc .npmrc  
COPY package.json .
RUN npm i
RUN rm -f .npmrc
COPY entrypoint /
RUN chmod +x /entrypoint
ENTRYPOINT ["/entrypoint"]

CMD DEBUG=nightmare node ./app.js

为了完整起见,entrypoint.js

#!/usr/bin/env bash
set -e

# Start Xvfb
Xvfb -ac -screen scrn 1280x2000x24 :9.0 &
export DISPLAY=:9.0

exec "$@"

如果重要的话,我会将容器部署到我无法ssh访问操作系统的服务中。

[ETA:很多答案已经涵盖了如何从容器外部docker获取日志——例如,在单独的容器中运行。不过,我希望在同一个容器中运行它]filebeat

4

0 回答 0