docker 安装 graylog
必备服务
graylog安装需要三个服务
- mongodb
- es
- graylog
mongo安装
- 拉取镜像
docker pull mongo
2.创建容器并运行
docker run -d --name mongo \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=abc123456 \
-v /usr/local/src/mongo:/etc/mongo \
mongo \
--config /etc/mongo/mongod.conf
Docker 容器内捆绑的配置文件在 /etc/mongo/
挂载的配置文件mongod.conf修改bindIp值
# network interfaces
net:
port: 27017
#远程连接
bindIp: 0.0.0.0
elasticsearch 7.10.1安装
- 拉取镜像
docker pull elasticsearch:7.10.1
2.创建容器并运行
docker run --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
-v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elasticsearch/data:/usr/share/elasticsearch/data \
-v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.10.1
挂载文件宿主机需要赋予文件权限
2. elasticsearch.yml配置文件
# 配置es的集群名称
cluster.name: "docker-cluster"
# 0.0.0.0为不限制,生产环境请设置为固定IP
network.host: 0.0.0.0
# 开启x-pack安全验证 访问时需要密码
xpack.security.enabled: true
# 关闭跨域验证(可以不开启)
http.cors.enabled: true
http.cors.allow-origin: "*"
- 如果需要设置密码,进入容器输入执行命令
bin/elasticsearch-setup-passwords interactive
填写密码即可
graylog安装
- 拉取镜像
docker pull graylog/graylog:4.2.7
- 生成密码和sha2,必需!!!
- 至少64位的密码,随机密码生成,作为 password_secret 的值
pwgen -N 1 -s 96
- 生成密码的sha2作为 root_password_sha2 的值
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
- 创建容器并运行
docker run \
--link mongo \
--link elasticsearch \
--name graylog \
-p 9000:9000 \
-p 12201:12201/udp \
-p 1514:1514 \
-v /usr/local/src/graylog/config/graylog.conf:/usr/share/graylog/data/config/graylog.conf \
-v /usr/local/src/graylog/server/node:/etc/graylog/server/node \
-d graylog/graylog:4.2.7
挂载文件宿主机需要赋予文件权限
5. 配置文件
#创建node-id文件并赋予权限
node_id_file = /etc/graylog/server/node-id
password_secret =上面生成
root_password_sha2 =上面生成
root_timezone = Asia/Shanghai
# Default: 127.0.0.1:9000
http_bind_address = 0.0.0.0:9000
# Default: http://127.0.0.1:9200
#elasticsearch_hosts = http://node1:9200,http://user:password@node2:19200
elasticsearch_hosts = http://user:password@node:9200
# MongoDB connection string
# See https://docs.mongodb.com/manual/reference/connection-string/ for details
#admin代表用户所在数据库
mongodb_uri = mongodb://user:password@node:27017/admin
Docker 容器内捆绑的配置文件存储在 /usr/share/graylog/data/config/
数据接入graylog
- 进入graylog,创建Input
http://localhost:9000/system/inputs
2. 填写相关配置,以beats为例
基本不用修改。
beats 类型input 容器添加5044端口映射后重启,如
-p 5544:5044
filebeat只需修改logstash配置
output.logstash:
#
hosts: ["xx.xx.xx.xx:5544"]