部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)
Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集、检索、可视化 Dashboard。本节将实践用 Graylog 来管理 Docker 日志。
Graylog 架构
Graylog 架构如下图所示:
Graylog 负责接收来自各种设备和应用的日志,并为用户提供 Web 访问接口。
Elasticsearch 用于索引和保存 Graylog 接收到的日志。
MongoDB 负责保存 Graylog 自身的配置信息。
与 ELK 一样,Graylog 的部署方案很灵活,快速搭建一个 all-in-one 的环境对于学习很有益处;部署一个高可用高伸缩性的集群对于生成环境也是必要的。
接下来我们将在容器环境下搭建 Graylog。
部署 Graylog
Graylog 及其相关组件都将以容器的方式部署。
MongoDB
docker run --name graylog-mongo -d mongo:3
Elasticsearch
docker run --name graylog-elasticsearch -d elasticsearch:2 elasticsearch -Des.cluster.name="graylog"
Graylog
docker run --link graylog-mongo:mongo \
--link graylog-elasticsearch:elasticsearch \
-p 9000:9000 \
-p 12201:12201/udp \
-e GRAYLOG_WEB_ENDPOINT_URI="http://192.168.56.101:9000/api" \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-d graylog2/server
--link
参数让 Graylog 容器能够用主机名 mongo
和 elasticsearch
访问 MongoDB 和 Elasticsearch 的服务。
-p 9000:9000
映射 Graylog 的 Web 服务端口 9000。
-p 12201:12201/udp
映射 Graylog 接收日志数据的 UDP 端口 12201。
GRAYLOG_WEB_ENDPOINT_URI
指定 Graylog 的 Web 访问 URI,请注意这里需要使用 Docker Host 的外部 IP(在实验环境中为 192.168.56.101)。
GRAYLOG_ROOT_PASSWORD_SHA2
指定 Graylog 管理员用户密码的哈希值,在这个例子中密码为 admin
。可以通过如下命令生成自己的密码哈希,比如:
echo -n yourpassword | shasum -a 256
容器启动后,在 Web 浏览器中访问 http://[Docker Host IP]:9000
用户名/密码 = admin/admin
登录后显示 Getting Started
页面。
配置 Graylog
目前 Graylog 还没法接收任何日志,我们需要配置一个 Input
,点击顶部菜单 System -> Inputs
。
Graylog 支持多种 Input 类型,与 Graylog 对接的 Docker logging driver 是 gelf
,因此这里我们需要运行一个 GELF UDP
类型的 Input。
点击 。
在 Node
列表中选择 Graylog 容器。Title
命名为 docker GELF input
。
其他保持默认值,其中 port 12201
即为前面启动容器时映射到 Host 的端口,用于接收日志数据。
点击,Input 成功运行。
Graylog 已经准备就绪,接下来就可以将容器的日志发送给 Graylog 了,下节继续。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
相关文章
- Docker系列之AspNetCore Runtime VS .NetCore Runtime VS .NET Core SDK(四)
- docker desktop troubleshooting
- 技术分享 | 掌握高频 Docker 命令,夯实内功基础
- Docker最全教程之使用Node.js搭建团队技术文档站(二十三)
- docker registry仓库私搭并配置证书
- 使用Docker实现Jenkins+Python + Pytest +Allure 接口自动化
- 技术分享 | 掌握高频 Docker 命令,夯实内功基础
- Docker技术入门与实战(第2版)2.1 核心概念
- Docker技术入门与实战(第2版)3.8 本章小结
- Docker技术入门与实战(第2版)导读
- 《循序渐进学Docker》——2.2 利用Docker搭建个人博客
- 如何在 Docker 中设置 Go 并部署应用
- 6 个下一代 Docker 监测工具
- docker安装配置elasticSearch
- 牛批!阿里 P8 熬夜冠军手码的 Docker 容器 +k8s 技术 PDF, 你还等啥呢
- SpringBoot项目实现Docker部署
- 手把手教你用Spring Cloud和Docker构建微服务
- 【Docker】安装Presto连接Hive、mysql、oracle、postgresql、SQL server等7种类型数据库
- Jenkins+Docker+Git+Harbor流水线打包
- 转 Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
- Docker Compose
- 《Docker技术入门与实战》——2.1 核心概念
- 《Docker技术入门与实战》——3.1 获取镜像
- 《Docker技术入门与实战》——3.5 创建镜像
- docker image location docker 镜像容器位置 windows10 家庭版 wsl2
- 在虚拟机上安装Docker
- 浅析如何使docker容器可以进行ssh连接
- 在Docker中执行web应用
- 【历史上的今天】3 月 20 日:周以真提出计算思维;Docker 发布;思科收购 Linksys
- docker基本操作
- Docker笔记
- [已解决]报错: Version in docker-compose is unsupported
- 解决kolla ansible docker api client python TypeError: load_config() got an unexpected keyword argument
- docker日志