如何从Dockerized Node应用程序内向Elasticsearch发送应用程序日志?
我有一个小的node
脚本,其中我使用bunyan
来处理应用程序日志logging。 logging器写入本地存储。 我想发送日志到filebeat
使用filebeat
(这两个都是我的新技术)。
我已经做了一个dockerfile
(集装箱应用程序)(下面),但我不确定如何/在哪里插入必要的说明。 有没有办法将我的日志从elasticsearch
内部发送到elasticsearch
? 而当我在它的时候,也发送任何日志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
访问os。
[ETA:很多的答案已经涵盖了如何从容器外抓取docker
日志 – 例如,在单独的容器中运行filebeat
。 我希望在同一个容器内运行它,但是]