- 1 环境
- 2 拉取镜像
- 3 创建自定义网络
- 4 启动容器
- 4.1 启动elasticsearch
- 5 kibana配置
- 5.1 配置kibana.yml文件
- 5.2 kibana启动
- 5.3 修改为中文
- 6 logstash配置
- 6.1 logstash.yml文件
- 6.2 my.conf文件
- 6.3 logstash启动
- 7 filebeat配置
- 7.1 创建测试目录
- 7.2 配置filebeat.yml文件
- 8 结语
CentOS Linux release 8.3.2011
2 拉取镜像docker pull elasticsearch:7.16.1 docker pull kibana:7.16.1 docker pull logstash:7.16.1 docker pull elastic/filebeat:7.16.13 创建自定义网络
docker network create somenetwork4 启动容器 4.1 启动elasticsearch
命令:
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.16.15 kibana配置 5.1 配置kibana.yml文件
- docker exec -it 02dd46d2e7f9(镜像id) /bin/bash
- cd config/
- vi kibana.yml
命令:
docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.16.1
- docker exec -it 02dd46d2e7f9(镜像id) /bin/bash
- cd config/
- vi kibana.yml
- 添加:i18n.locale: “zh-CN”
存放位置:自定义目录/mydata/docker/logstash/
配置内容:
http.host: "0.0.0.0" #配置elasticsearch集群地址 xpack.monitoring.elasticsearch.hosts: [ "http://192.168.226.132:9200" ] #允许监控 xpack.monitoring.enabled: true #目录为挂载目录,启动命令指定的 path.config: /usr/share/logstash/conf.d/my.conf6.2 my.conf文件
存放位置:自定义目录/mydata/docker/logstash/conf.d
配置内容:
input {
beats {
port => 5044
client_inactivity_timeout => 36000
}
}
output {
elasticsearch {
hosts => ["http://192.168.226.132:9200"]
index => "myindex-%{+YYYY.MM}"
}
}
6.3 logstash启动
docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v /mydata/docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /mydata/docker/logstash/conf.d:/usr/share/logstash/conf.d logstash:7.16.17 filebeat配置 7.1 创建测试目录
项目日志目录:/var/log/logapp
放入日志文件:xx.log
存放位置:自定义目录/mydata/docker/filebeat
配置内容:
# 定义info1应用的input类型、以及存放的具体路径
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/logapp/*.log
tags: ["logapp"]
fields:
index: logapp
#============================= Filebeat modules ===============================
filebeat.config.modules:
# Glob pattern for configuration loading
path: ${path.config}/modules.d/*.yml
# Set to true to enable config reloading
reload.enabled: true
# ============================== logstash =====================================
output.logstash:
hosts: ["192.168.226.132:5044"] #192.168.226.132为logstash安装的服务器ip
enabled: true
#============================== Kibana =====================================
setup.kibana:
host: "192.168.226.132:5601"
#============================== elasticsearch =====================================
#output.elasticsearch:
# hosts: ["192.168.226.132:9200"]
# enabled: true
7.3 filebeat启动
启动命令:
docker run -d -u root --name filebeat --net somenetwork -v /var/log/logapp:/var/log/logapp:rw -v /mydata/docker/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro elastic/filebeat:7.16.1
7.4 测试
myindex-2021.12索引是 my.conf里index属性那里配置的
8 结语配置logstash.yml的path.config一定要注意其目录,之前我就是因为这个走了很多弯路,在网上看其他大佬的都没发现到这个问题



