ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)
2017-11-05 17:10
881 查看
上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示。
几乎所有的软件和应用都有自己的日志文件,容器也不例外。前面我们已经知道 Docker 会将容器日志记录到
要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日志文件转发给 ELK。同时 Filebeat 很聪明,它会监控日志文件,当日志更新时,Filebeat 会将新的内容发送给 ELK。
[b]安装 Filebeat[/b]
下面在 Docker Host 中安装和配置 Filebeat。
当你看到这篇文章时,Filebeat 可能已经有了更新的版本,请参考最新的安装文档 https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html
[b]配置 Filebeat[/b]
Filebeat 的配置文件为
Filebeat 两件事:
监控哪些日志文件?
将日志发送到哪里?
首先回答第一个问题。
在
Host 操作系统的 syslog。
接下来告诉 Filebeat 将这些日志发送给 ELK。
Filebeat 可以将日志发送给 Elasticsearch 进行索引和保存;也可以先发送给 Logstash 进行分析和过滤,然后由 Logstash 转发给 Elasticsearch。
为了不引入过多的复杂性,我们这里将日志直接发送给 Elasticsearch。
如果要发送给 Logstash,可参考后半部分的注释。
当前的日志处理流程如下图所示:
[b]启动 Filebeat[/b]
Filebeat 安装时已经注册为 systemd 的服务,可以直接启动服务。
Filebeat 启动后,正常情况下会将监控的日志发送给 Elasticsearch。刷新 Elasticsearch 的 JSON 接口 http://[Host IP]:9200/_search?pretty 进行确认。
这次我们能够看到
Filebeat 监控的那两个路径下的日志。
好,Elasticsearch 已经创建了日志的索引并保存起来,接下来是在 Kibana 中展示日志。
首先需要配置一个
Kibana 查询和分析 Elasticsearch 中的哪些日志。
指定
Elasticsearch 中的
点击
点击 Kibana 左侧
syslog 日志信息。
下面我们启动一个新的容器,该容器将向控制台打印信息,模拟日志输出。
刷新 Kibana 页面或者点击右上角
图标,马上就能看到
busybox 的日志。
Kibana 也提供了强大的查询功能,比如输入关键字
我们这里只是简单地将日志导入 ELK 并朴素地显示出来,实际上 ELK 还可以对日志进行归类汇总、分析聚合、创建炫酷的 Dashboard 等,可以挖掘的内容很多,玩法很丰富。由于这个教程的重点是容器,这里就不过多展开。下面这张图可以感受一下 ELK 的能力,更多的功能留给大家自己去探索。
ELK 咱们就讨论到这里,下一节学习 Fluentd。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
几乎所有的软件和应用都有自己的日志文件,容器也不例外。前面我们已经知道 Docker 会将容器日志记录到
/var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log,那么只要我们能够将此文件发送给 ELK 就可以实现日志管理。
要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日志文件转发给 ELK。同时 Filebeat 很聪明,它会监控日志文件,当日志更新时,Filebeat 会将新的内容发送给 ELK。
[b]安装 Filebeat[/b]
下面在 Docker Host 中安装和配置 Filebeat。
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-amd64.debsudo dpkg -i filebeat-5.4.0-amd64.deb
当你看到这篇文章时,Filebeat 可能已经有了更新的版本,请参考最新的安装文档 https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html
[b]配置 Filebeat[/b]
Filebeat 的配置文件为
/etc/filebeat/filebeat.yml,我们需要告诉
Filebeat 两件事:
监控哪些日志文件?
将日志发送到哪里?
首先回答第一个问题。
在
paths中我们配置了两条路径:
/var/lib/docker/containers/*/*.log是所有容器的日志文件。
/var/log/syslog是
Host 操作系统的 syslog。
接下来告诉 Filebeat 将这些日志发送给 ELK。
Filebeat 可以将日志发送给 Elasticsearch 进行索引和保存;也可以先发送给 Logstash 进行分析和过滤,然后由 Logstash 转发给 Elasticsearch。
为了不引入过多的复杂性,我们这里将日志直接发送给 Elasticsearch。
如果要发送给 Logstash,可参考后半部分的注释。
当前的日志处理流程如下图所示:
[b]启动 Filebeat[/b]
Filebeat 安装时已经注册为 systemd 的服务,可以直接启动服务。
systemctl start filebeat.service
管理日志
Filebeat 启动后,正常情况下会将监控的日志发送给 Elasticsearch。刷新 Elasticsearch 的 JSON 接口 http://[Host IP]:9200/_search?pretty 进行确认。这次我们能够看到
filebeat-*的
index,以及
Filebeat 监控的那两个路径下的日志。
好,Elasticsearch 已经创建了日志的索引并保存起来,接下来是在 Kibana 中展示日志。
首先需要配置一个
index pattern,即告诉
Kibana 查询和分析 Elasticsearch 中的哪些日志。
指定
index pattern为
filebeat-*,这与
Elasticsearch 中的
index一致。
Time-field name选择
@timestamp。
点击
Create创建
index pattern。
点击 Kibana 左侧
Discover菜单,便可看到容器和
syslog 日志信息。
下面我们启动一个新的容器,该容器将向控制台打印信息,模拟日志输出。
docker run busybox sh -c 'while true; do echo "This is a log message from container busybox!"; sleep 10; done;'
刷新 Kibana 页面或者点击右上角
图标,马上就能看到
busybox 的日志。
Kibana 也提供了强大的查询功能,比如输入关键字
busybox能搜索出所有匹配的日志条目。
我们这里只是简单地将日志导入 ELK 并朴素地显示出来,实际上 ELK 还可以对日志进行归类汇总、分析聚合、创建炫酷的 Dashboard 等,可以挖掘的内容很多,玩法很丰富。由于这个教程的重点是容器,这里就不过多展开。下面这张图可以感受一下 ELK 的能力,更多的功能留给大家自己去探索。
ELK 咱们就讨论到这里,下一节学习 Fluentd。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
相关文章推荐
- ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)
- ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)
- ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)
- 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
- 如何部署 Calico 网络?- 每天5分钟玩转 Docker 容器技术(67)
- 使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
- 使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 如何部署 Calico 网络?- 每天5分钟玩转 Docker 容器技术(67)
- 如何使用 flannel host-gw backend?- 每天5分钟玩转 Docker 容器技术(62)
- 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
- 如何部署 Calico 网络?- 每天5分钟玩转 Docker 容器技术(67)
- 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 如何使用 flannel host-gw backend?- 每天5分钟玩转 Docker 容器技术(62)
- 使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
- 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
- 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
- 限制容器对内存的使用 - 每天5分钟玩转 Docker 容器技术(27)
- 如何使用 Weave 网络?- 每天5分钟玩转 Docker 容器技术(63)