092、部署Graylog日志系统(2019-05-16 周四)
Graylog 是与 ELK 可以相提并论的一款几种式日志管理方案,支持数据收集、检索、可视化Dashboard。本机将实践用Graylog来管理Docker日志。
Graylog架构
Graylog 负责接收来自各种设备和应用的日志,并未用户提供Web访问接口。
Elasticsearch 用于索引和保存 Graylog接收到的日志
MongoDB 负责保存 Graylog自身的配置信息
与ELK一样,Graylog的部署方案很灵活,快速搭建一个 all-in-one 的环境对于学习很有好处。部署一个高可用的伸缩性集群对于生产环境也是必要的。
部署Graylog(全部容器方式部署)
部署MongoDB
root@host1:~# docker run --name graylog-mongo -d mongo:3
部署Elasticsearch
root@host1:~# 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://10.12.31.211:9000/api" \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-d graylog2/server
--link graylog-elasticsearch:elasticsearch
让Graylog容器能够用主机名 mongo和Elasticsearch 访问 MongoDB 和 Elasticsearch的服务
-p 9000:9000
映射Graylog的Web服务器端口9000
-p 12201:12201/udp
映射Graylog接收日志数据的UDP 12201 端口
-e GRAYLOG_WEB_ENDPOINT_URI="http://10.12.31.211:9000/api"
指定Graylog的Web访问URI,请注意这里需要使用docker host 的外部IP
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
指定Graylog管理员密码的哈希值,这里用的密码是admin,可以使用命令生产自己的密码哈希“echo -n yourpassword | shasum -a 256”
容器启动后访问 http://10.12.31.211:9000/ admin admin
下面开始配置 Graylog,我们需要先配置一个 Input,在顶部菜单选择 System - Input
Graylog支持多种 Input 类型,与Graylog对接的 Docker logging driver 是 gelf,因此这里我们需要运行一个 GRLF UDP 类型的Input
在弹出的对话框中操作:1、node选择Graylog容器;2、Title命名为 docker GELF input ,然后点击save
配置完成后如下图所示