天天看点

部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集、检索、可视化 Dashboard。本节将实践用 Graylog 来管理 Docker 日志。

Graylog 架构如下图所示:

Graylog 负责接收来自各种设备和应用的日志,并为用户提供 Web 访问接口。

Elasticsearch 用于索引和保存 Graylog 接收到的日志。

MongoDB 负责保存 Graylog 自身的配置信息。

与 ELK 一样,Graylog 的部署方案很灵活,快速搭建一个 all-in-one 的环境对于学习很有益处;部署一个高可用高伸缩性的集群对于生成环境也是必要的。

接下来我们将在容器环境下搭建 Graylog。

Graylog 及其相关组件都将以容器的方式部署。

MongoDB

docker run --name graylog-mongo -d mongo:3

Elasticsearch

Graylog

<code>--link</code> 参数让 Graylog 容器能够用主机名 <code>mongo</code> 和 <code>elasticsearch</code> 访问 MongoDB 和 Elasticsearch 的服务。

<code>-p 9000:9000</code> 映射 Graylog 的 Web 服务端口 9000。

<code>-p 12201:12201/udp</code> 映射 Graylog 接收日志数据的 UDP 端口 12201。

<code>GRAYLOG_WEB_ENDPOINT_URI</code> 指定 Graylog 的 Web 访问 URI,请注意这里需要使用 Docker Host 的外部 IP(在实验环境中为 192.168.56.101)。

<code>GRAYLOG_ROOT_PASSWORD_SHA2</code> 指定 Graylog 管理员用户密码的哈希值,在这个例子中密码为 <code>admin</code>。可以通过如下命令生成自己的密码哈希,比如:

容器启动后,在 Web 浏览器中访问 http://[Docker Host IP]:9000

用户名/密码 = admin/admin

登录后显示 <code>Getting Started</code> 页面。

目前 Graylog 还没法接收任何日志,我们需要配置一个 <code>Input</code>,点击顶部菜单 <code>System -&gt; Inputs</code>。

Graylog 支持多种 Input 类型,与 Graylog 对接的 Docker logging driver 是 <code>gelf</code>,因此这里我们需要运行一个 <code>GELF UDP</code> 类型的 Input。

点击 。

在 <code>Node</code> 列表中选择 Graylog 容器。

<code>Title</code> 命名为 <code>docker GELF input</code>。

其他保持默认值,其中 port <code>12201</code> 即为前面启动容器时映射到 Host 的端口,用于接收日志数据。

点击,Input 成功运行。

Graylog 已经准备就绪,接下来就可以将容器的日志发送给 Graylog 了,下节继续。

书籍:

1.《每天5分钟玩转Docker容器技术》

<a href="https://item.jd.com/16936307278.html" target="_blank">https://item.jd.com/16936307278.html</a>

2.《每天5分钟玩转OpenStack》

<a href="https://item.jd.com/12086376.html" target="_blank">https://item.jd.com/12086376.html</a>

本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/1980504

继续阅读