graylog是一个小型的开源日志收集、分析、展示框架。
主要graylog运行需要mongo、elasticsearch,所以他们就组成了一个小的整体。一般在虚拟机上搭建,可以分开安装部署,但是既然是一个日志服务,而且想尽量整理的简单一些,所以考虑直接使用docker容器的方式,而直接一个一个docker run,还是显得很复杂,主要是他们需要做一些配置,而且三个容器之间,graylog依赖于mongo、elasticsearch,还不能先启动graylog。索性就整理一个docker-compose.yml文件,把他们三个一起部署,然后每次要修改配置或者重启就方便很多。
如下是根据一些资料整理的一个简洁的docker-compose.yml配置:
version: '2'
services:
mongodb:
container_name: mongodb
image: mongo:3
restart: always
volumes:
- /data/graylog/mongo_data:/data/db
es:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.5
container_name: es
restart: always
volumes:
- /data/graylog/es_data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
environment:
- TZ=Aisa/Shanghai
- http.host=0.0.0.0
- transport.host=localhost
- network.host=0.0.0.0
- http.cors.allow-origin=*
- http.cors.enabled=true
- discovery.type=single-node
- 'ES_JAVA_OPTS=-Xms1024m -Xmx1024m'
graylog:
image: graylog/graylog:4.0.2
container_name: graylog
restart: always
volumes:
- /data/graylog/graylog_journal:/usr/share/graylog/data/journal
- /data/