提前准备好image
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.16.0 docker pull docker.elastic.co/beats/filebeat:7.16.0 docker pull docker.elastic.co/kibana/kibana:7.16.0启动Elasticsearch
docker run -d -e ES_JAVA_POTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 --name es 5f65aa538b12
如下图所示则Elasticsearch安装正常
启动Kibanacurl 127.0.0.1:9200
# 3aaf63c32c98为容器ID请自行替换 docker run --link 3aaf63c32c98:elasticsearch -p 5601:5601 -d --name kibana edf02b0fa7fa
访问服务ip:5601 如下图所示则Kibana安装正常
这里需要配置kibana.yml,不然kibana默认通过localhost是找不到ES的。
进入容器命令行模式
修改kibana.yml文件
# cc67329ac98b为容器ID请自行替换 docker exec -it cc67329ac98b /bin/bash vi config/kibana.yml
elasticsearch.hosts 是设置elasticsearch的访问ip和端口 如果未更改这里就保持不变
i18n.locale 语言配置,kibana默认是英文界面,修改外为zh-CN就可以汉化。
然后通过 exit 命令 退出当前容器。
如果不放心网络 可以像我一样 ping elasticsearch
# cc67329ac98b为容器ID请自行替换 docker restart cc67329ac98b启动FileBeat
先不着急启动,在启动之前需要完成先建立一份映射的配置文件filebeat.docker.yml,自行选择目录创建。
filebeat.inputs:
- type: filestream
paths:
- /var/log/dev/*.log
fields:
host: dev
service: getwate
setup.kibana.host: "http://kibana:5601"
setup.dashboards.enabled: true
output.elasticsearch:
hosts: ["http://elasticsearch:9200"]
index: "filebeat-%{+yyyy.MM.dd}"
setup.template.name: "my-log"
setup.template.pattern: "my-log-*"
json.keys_under_root: false
json.overwrite_keys: true
processors:
- decode_json_fields:
fields: [""]
target: json
建立好配置文件之后,启动filebeat容器
# 3aaf63c32c98 为es容器ID请自行替换 # cc67329ac98b 为kibana容器ID请自行替换 docker run -d -v ~/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml -v /xxx/logs/:/var/log/dev/ --link 3aaf63c32c98:elasticsearch --link cc67329ac98b:kibana --name filebeat 1c9b04ddc4ef
docker run -d -v ~/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml -v /root/p1/myth/log/:/var/log/myth/ --link 3aaf63c32c98:elasticsearch --link cc67329ac98b:kibana --name filebeat 1c9b04ddc4ef



