文章目录
一、docer安装
二、Docker Compose安装
- 第一种方式:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 第二种方式:
wget https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose
- 授权:
chmod +x /usr/local/bin/docker-compose
- 测试是否安装成功:
docker-compose --version
三、创建目录/usr/local/graylog
该目录下新建文件 docker-compose.yml
version: '2'
services:
# MongoDB: https://hub.docker.com/_/mongo/
mongodb:
image: mongo:3
volumes:
- mongo_data:/data/db
# Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.x/docker.html
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.5
volumes:
- es_data:/usr/share/elasticsearch/data
environment:
- http.host=0.0.0.0
- transport.host=localhost
- network.host=0.0.0.0
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
# Graylog: https://hub.docker.com/r/graylog/graylog/
graylog:
image: graylog/graylog:3.2
volumes:
- graylog_journal:/usr/share/graylog/data/journal
environment:
# CHANGE ME (must be at least 16 characters)!
- GRAYLOG_PASSWORD_SECRET=somepasswordpepper
# Password: admin
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
- GRAYLOG_HTTP_EXTERNAL_URI=http://xx.xx.xx.xx:9000/
links:
- mongodb:mongo
- elasticsearch
depends_on:
- mongodb
- elasticsearch
ports:
# Graylog web interface and REST API
- 9000:9000
# Syslog TCP
- 1514:1514
# Syslog UDP
- 1514:1514/udp
# GELF TCP
- 12201:12201
# GELF UDP
- 12201:12201/udp
# Volumes for persisting data, see https://docs.docker.com/engine/admin/volumes/volumes/
volumes:
mongo_data:
driver: local
es_data:
driver: local
graylog_journal:
driver: local
默认账号密码:admin,如需修改密码
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
输入密码回车,把得到的值替换:
配置:GRAYLOG_ROOT_PASSWORD_SHA2
外网访问:GRAYLOG_HTTP_EXTERNAL_URI=http:外网地址:9000
注意服务器开启端口
四、开始安装
使用公开的数据目录启动所有服务:
docker-compose up -d
如果yml名称为graylog.yml则使用下面命令启动
-d表示后台运行
sudo docker-compose -f graylog.yml up -d
重启docker-compose restart
五、springboot logback集成
引入maven依赖:
<dependency>
<groupId>de.siegmar</groupId>
<artifactId>logback-gelf</artifactId>
<version>2.0.0</version>
</dependency>
logback-spring.xml,内容如下:
<configuration>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
<graylogHost>xxx.xxx.xxx.xxx</graylogHost>
<graylogPort>12201</graylogPort>
</appender>
<!-- 控制台输出日志级别 -->
<root level="info">
<appender-ref ref="GELF" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
六、配置Graylog
-
在浏览器访问http://ip:9000
-
这里默认用户名密码都是admin
-
选择System按钮中的input,录入一个输入源
-
填写title,选择node就可以了确定了。
- 这里以GELF UDP为例,在图中位置选择GELF UDP,选择完成后点击Launch new input
- 在Node处选择自己安装的,剩下的就根据需要填写即可
- 保存完成后如图,到这里就已经配置完成了。
测试:
curl -XPOST http://ip:12201/gelf -p0 -d '{"short_message":"这是一条消息", "host":"172.3.3.3", "facility":"test", "_foo":"bar"}'
#七、官方文档地址:
官方文档