通过优锐课的java学习分享中,在本教程中,我们将了解如何使用这些工具来收集日志并通过Elasticsearch + Logstash + Kibana(又名ELK)对其进行管理。
开发网络应用程序时,我喜欢参考十二要素应用程序建议。 他们处理应用程序日志的方法在第十一条“命令”中:
它不应尝试写入或管理日志文件。 而是,每个正在运行的进程将其未缓冲的事件流写入stdout。
似乎Docker的人们也阅读了此宣言,从而为我们提供了出色的工具来管理容器中应用程序生成的日志。 在本教程中,我们将了解如何使用这些工具来收集日志并通过Elasticsearch + Logstash + Kibana(又名ELK)对其进行管理。
你将学到什么
在这篇文章中,我将介绍:
ELK的简要说明。
如何在Exoscale帐户上创建所需的计算机:一台用于承载ELK堆栈,另一台用于承载演示Web应用程序。
如何使用Docker compose启动ELK。
如何使用Docker日志记录驱动程序将Web应用程序日志路由到ELK。
先决条件
Mac用户:您将需要最新的Docker工具箱。
Linux用户:您将需要Docker引擎,机器和组成。
在这两个系统上,您都需要安装Exoscale的CS工具,您可以使用Python生态系统的pip来获取它:
pip install cs
我们将使用docker-machine在Exoscale上创建所需的实例,然后使用CS修改安全组以允许连接到我们新安装的ELK堆栈。
cs和docker-machine都依赖于Exoscale API,因此他们将需要访问您的API凭据。
使用以下命令导出您外壳程序中的凭据:
export EXOSCALE_ACCOUNT_EMAIL=<your exoscale account email>
export CLOUDSTACK_ENDPOINT=https://api.exoscale.ch/compute
export CLOUDSTACK_KEY="<your exoscale API Key