Docker 是一套平台即服务(PaaS)产品,它使用操作系统级虚拟化来以称为容器的软件包交付软件。容器彼此隔离,并将它们自己的软件,库和配置文件捆绑在一起; 他们可以通过定义明确的渠道相互交流。所有容器都由单个操作系统内核运行,因此比虚拟机更轻便。在目前的很多IT的架构中,Docker 的使用越来越普及。这很好,但是一旦有多个容器散布在多个节点上,就需要找到一种方法来跟踪其运行状况,存储,CPU 和内存使用情况, 络负载等。
要跟踪这些指标,你需要一个有效的监视解决方案和一些后端存储,以保留容器数据以进行后续分析和处理。 在生产中管理数千个 Docker 容器使得Docker容器监视是我们集群管理流程的重要补充。Elastic Stack 提供了很方便的功能来供我们对 Docker 进行监控。
在今天的文章中,我们来讲述如何对 Docker 里的日志进行监控。我们的配置情况如下:
在上面,我们在 Host OS 里安装我们的 Elastic Stack: Elasticsearch 及 Kibana。我们也同时安装自己的 Filebeat docker。
安装
安装 Docker
根据自己的操作系统安装 Docker:
- On Mac: https://hub.docker.
- On Ubuntu: How to Install Docker On Ubuntu 18.04 {2021 Tutorial}
Elastic Stack
对于还没安装 Elasticsearch 和 Kibana 的开发者来说,你可以参考我之前的文章 “Elastic:菜鸟上手指南” 来安装 Elasticsearch 及 Kibana。在我们安装 Elasticsearch 时,我们需要对 config/elasticsearch.yml 作如下的配置:
请注意在上面在 discrovery.seed_hosts 里的 IP 地址 192.168.43.220 就是我电脑的私有 IP 地址。在上面我们把 network.host 设置为 _site_,表明我们的 Elasticsearch 将会绑定到我们的私有 IP 地址上。请参阅 network.host。这个私有IP地址我们可以通过如下的方法获得:
修改完后,我们重新启动我们的Elasticsearch,我们将可以看到:
我们可以在上面的地址找到启动的 Elasticsearch。
同样地,我们也需要对我们的 Kibana 进行配置。我们修改 config/kibana.yml:
我们需要根据自己电脑实际的 IP 地址来替换上面的IP地址 192.168.43.220。等修改完后,我们重新启动 Kibana:
如果我们上面配置正确,我们可以在浏览器中看到 Kibana 的界面。请注意:你需要替换上面的IP地址为自己电脑的 IP 地址。
Filebeat Docker
可从 Elastic Docker 注册表中获取 Filebeat 的 Docker 映像。 基本镜像是 centos:7。
所有已发布的 Docker 镜像和标签的列表可在 www.docker.elastic.co 中获得。
这些镜像在 Elastic 许可下可免费使用。 它们包含开放源代码和免费的商业功能以及对付费商业功能的访问。
下载镜像
获得 Docker 的 Filebeat 就像对 Elastic Docker 注册表发出 docker pull 命令一样简单。
或者,你可以下载其他仅包含 Apache 2.0 许可下可用功能的 Docker 映像。 要下载图像,请访问 www.docker.elastic.co。在上面我们下载的是 Filebeat 7.6.0 版本。这个版本需要和我们的 Elasticsearch 的版本一致。你可以根据自己的版本需求修改上面的命令。
运行 Filebeat setup
使用 setup 命令运行 Filebeat 将创建索引模式并加载可视化效果,仪表板和机器学习作业。 运行以下命令:
在上面,我们需要根据自己的 filebeat 版本修改上面的版本信息。我们也需要根据自己实际的 Elasticsearch 的端口地址进行修改。比如,针对我们的情况,我们把 Elasticsearch 部署在本地,那么上面的 elasticsearch:9000 应该修改为 192.168.43.220:9200。那么上面的命令为:
上面命令的显示结果为:
如果你看到和我一样的输出,则表明你的配置是正确的。在上面我们已经成功地运行了 filebeat setup 这个命令。更多关于这个命令的介绍,可以参阅我之前的文章 “Beats:Beats 入门教程 (二)”。
对 docker 里的 filebeat 进行配置
Docker 映像提供了几种配置 Filebeat 的方法。 传统方法是通过卷挂载提供配置文件,但也可以创建包含配置的自定义映像。
配置文件示例
下载此示例配置文件作为起点:
上面命令下载的 filebeat.docker.yml 文件内容如下:
我们通过修改这个文件把我们想要的 filebeat.yml 文件的配置写进来,比如 elasticsearch 的地址。针对我的情况,我填写 “192.168.43.220:9200”。然后通过下面的卷挂载的办法来完成。 请注意:我们在上面也填写了 Kibana 的地址。
卷挂载安装配置
在 Docker 上配置 Filebeat 的一种方法是通过卷挂载提供 filebeat.docker.yml。 使用 docker run,可以像这样指定卷挂载。
在上面 elasticsearch 指的是我们的 Elasticsearch 的地址。我们需要根据我们自己的情况来进行替换。针对我的情况,我填入我的 Elasticsearch 的IP地址 192.168.43.220,那么我们的命令就是:
在运行上面的命令时,在 terminal中,我们必须先进入到 filebeat.docker.yml 文件所处在的目录下,再运行上面的命令:
我们可以通过如下的命令来查看 docker正在运行:
我们可以看见一个叫做 filebeat 的 container 已经被成功运行。我们可以通过如下的命令来查看 container 里的 filebeat.yml 的内容:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!