Graylog是强大的日志管理、分析工具。它基于 Elasticsearch, Java和MongoDB。Graylog可以收集监控多种不同应用的日志。但是为了示范说明,我只收集syslog。并且,我将会把用到的组件全部安装到一个单独的服务器上。对于大型、生产系统你可以把组件分开安装在不同的服务器上,这样可以提高效率。
Graylog有4个基本组件:
Graylog Server:这个服务负责接收和处理日志/消息,并且和其他组件沟通。
Elasticsearch:存储所有的日志,它的性能依赖内存和硬盘IO。
MongoDB:存储元数据,负载不高。
Web接口:用户接口。
1.打开graylog2官方文档,地址如下:
2.从文档中找有用的信息,进行安装,这里采用的安装方式是docker安装,包含的组件有graylog2/server:2.1.2-1,mongo:3,elasticsearch:2.3"
首先,先把挂在的文件目录,文件建好,如下是graylog要用到的挂在目录,mongo和elasticsearch的不再赘述,对照着docker-compose.yml 建就ok了。
mkdir /graylog/config cd /graylog/config wget https://raw.githubusercontent.com/Graylog2/graylog2-images/2.0/docker/config/graylog.conf wget https://raw.githubusercontent.com/Graylog2/graylog2-images/2.0/docker/config/log4j2.xml
docker-compose.yml 文件内容如下:
version: '2'
services:
mongo:
image: "mongo:3"
volumes:
- /graylog/data/mongo:/data/db
ports:
- "27017:27017"
elasticsearch:
image: "elasticsearch:2.3"
volumes:
- /graylog/data/elasticsearch:/usr/share/elasticsearch/data
command: "elasticsearch -Des.cluster.name='graylog'"
ports:
- "9200:9200"
- "9300:9300"
graylog:
image: graylog2/server:2.1.2-1
volumes:
- /graylog/data/journal:/usr/share/graylog/data/journal
- /graylog/config:/usr/share/graylog/data/config
environment:
GRAYLOG_WEB_ENDPOINT_URI: http://192.168.30.190:9000/api
#GRAYLOG_REST_TRANSPORT_URI: :12900
depends_on:
- mongo
- elasticsearch
ports:
- "9000:9000"
- "12900:12900"
注意:192.168.30.190是内网服务器的ip,
官网给出的示例中 graylog2/server的版本是2.0.3-2,实际按照这个版本安装的时候,我的是有问题的, 换成了2.1.2-1才ok、如图标注1
另外:这里其实遇到了几个问题折腾了好几天,主要是针对标注2的地方折腾的。
最早的时候这个参数我是参照了网上第一个博客没有配置的,结果如图:
172.23.0.4是graylog docker容器的ip,于是改掉,改成了官网一样的配置,也就是
结果:
还是不行,于是想到了127.0.0.1是本机ip。这时候登陆到了CentOS7 的虚拟机可视化图形界面内部,发现是可以正常访问的,但是用的本地window宿主主机看,还是报错,报错如上图,反复尝试,思考,查看官网文档,感觉是127.0.0.1的配置限制了只可以本机访问,于是改成了 :9000,192.168.30.190是虚拟机centos7 的ip,结果ok。
这里要注意,官方有这么一段,看起来是设置登陆名的,我没有用,删除了。