Beats:在 Docker 里运行 Filebeat

Docker 是一套平台即服务(PaaS)产品,它使用操作系统级虚拟化来以称为容器的软件包交付软件。容器彼此隔离,并将它们自己的软件,库和配置文件捆绑在一起; 他们可以通过定义明确的渠道相互交流。所有容器都由单个操作系统内核运行,因此比虚拟机更轻便。在目前的很多IT的架构中,Docker 的使用越来越普及。这很好,但是一旦有多个容器散布在多个节点上,就需要找到一种方法来跟踪其运行状况,存储,CPU 和内存使用情况,网络负载等。

要跟踪这些指标,你需要一个有效的监视解决方案和一些后端存储,以保留容器数据以进行后续分析和处理。 在生产中管理数千个 Docker 容器使得Docker容器监视是我们集群管理流程的重要补充。Elastic Stack 提供了很方便的功能来供我们对 Docker 进行监控。

在今天的文章中,我们来讲述如何对 Docker 里的日志进行监控。我们的配置情况如下:

Beats:在 Docker 里运行 Filebeat

在上面,我们在 Host OS 里安装我们的 Elastic Stack: Elasticsearch 及 Kibana。我们也同时安装自己的 Filebeat docker。

Beats:在 Docker 里运行 Filebeat

安装

安装 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,我们将可以看到:

Beats:在 Docker 里运行 Filebeat

我们可以在上面的地址找到启动的 Elasticsearch。

同样地,我们也需要对我们的 Kibana 进行配置。我们修改 config/kibana.yml:

我们需要根据自己电脑实际的 IP 地址来替换上面的IP地址 192.168.43.220。等修改完后,我们重新启动 Kibana:

Beats:在 Docker 里运行 Filebeat

如果我们上面配置正确,我们可以在浏览器中看到 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 的内容:

来源:Elastic 中国社区官方博客

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月8日
下一篇 2022年9月8日

相关推荐