在 Openshift 中解析容器的标准输出
Parse stdout of containers in Openshift
我对 Openshift/Kubernetes 有点菜鸟,所以我希望我能很好地解释我的用例。
我有一个 Docker 小 "program" 的图像,它可以总结如下:它 tails -f 一个日志文件,当找到与配置中指定的正则表达式匹配的东西时,它会向某人发送电子邮件。比如监控应用程序的生产日志,如果在应用程序日志中打印了一个,就向 Ops 团队发送一封带有堆栈跟踪的电子邮件。
当我的应用程序日志是通过主机上的 Weblogic 应用程序 运行 上的 Java EE 生成的,或者另一个 docker 容器生成但已保存的日志时,这工作正常到绑定安装的文件系统,因此可以通过 "monitoring" 容器访问(如果已安装)。
现在我需要部署这个镜像来监控 Openshift 中的 2-3 个微服务 运行。这些微服务记录到标准输出,我没有权限将 root 拥有的路径(如 /var/lib/docker/containers/[container-id]/[container-id]-json.log 挂载到 "monitoring"容器。
能够解析微服务日志的最佳方法是什么?例如,我可以更改他们的 logback 配置,让他们登录到 stdout 和 emptyDir 卷,并创建一个带有微服务+卷+监控容器的 Pod。
谢谢大家的建议,
罗伯托
作为日志聚合器,Docker 很流利。但是,您不能仅使用 openshift 的 ansible 安装程序安装 fluentd(请参阅 deploying-efk). You can install fluentd logging driver on docker host manually (see fluentd-logging-driver). There 的 'getting started' 关于 docker 主机配置。
然后你可以使用任何output plugin来存储日志
如何将日志转发到文件系统上的单个文件?
我对 Openshift/Kubernetes 有点菜鸟,所以我希望我能很好地解释我的用例。
我有一个 Docker 小 "program" 的图像,它可以总结如下:它 tails -f 一个日志文件,当找到与配置中指定的正则表达式匹配的东西时,它会向某人发送电子邮件。比如监控应用程序的生产日志,如果在应用程序日志中打印了一个,就向 Ops 团队发送一封带有堆栈跟踪的电子邮件。
当我的应用程序日志是通过主机上的 Weblogic 应用程序 运行 上的 Java EE 生成的,或者另一个 docker 容器生成但已保存的日志时,这工作正常到绑定安装的文件系统,因此可以通过 "monitoring" 容器访问(如果已安装)。
现在我需要部署这个镜像来监控 Openshift 中的 2-3 个微服务 运行。这些微服务记录到标准输出,我没有权限将 root 拥有的路径(如 /var/lib/docker/containers/[container-id]/[container-id]-json.log 挂载到 "monitoring"容器。
能够解析微服务日志的最佳方法是什么?例如,我可以更改他们的 logback 配置,让他们登录到 stdout 和 emptyDir 卷,并创建一个带有微服务+卷+监控容器的 Pod。
谢谢大家的建议, 罗伯托
作为日志聚合器,Docker 很流利。但是,您不能仅使用 openshift 的 ansible 安装程序安装 fluentd(请参阅 deploying-efk). You can install fluentd logging driver on docker host manually (see fluentd-logging-driver). There 的 'getting started' 关于 docker 主机配置。 然后你可以使用任何output plugin来存储日志
如何将日志转发到文件系统上的单个文件?