本文中架构基于docker搭建,需要您了解docker的基本概念,基本操作和docker1.9之后的自定义overlay网络
本文只介绍了最简化搭建。如果您用于生产,还需要在如下方面完善 1.elastic是有存储目录,需要在docker中进行数据卷映射。配置文件elasticsearch.yml需要根据自己需求自行配置。请参考:https://hub.docker.com/_/elasticsearch/ 2.Dockerhub官方提供的镜像基于不同的基础镜像,不利于网络传输!建议根据自己组织内部镜像重新创建!
Docker搭建ELK的javaweb应用日志收集存储分析系统
第一步:启动elasticsearch
代码语言:javascript复制docker run -d --name myes --net=multihost --ip=192.168.1.2 elasticsearch:2.3
报错:
代码语言:javascript复制/usr/bin/docker-current: Error response from daemon: network multihost not found
解决方案:
docker run -d --name myes -p 80:80 --ip=192.168.1.2 elasticsearch:2.3
/usr/bin/docker-current: Error response from daemon: User specified IP address is supported on user defined networks only.
第二步:启动kibana
代码语言:javascript复制docker run --name mykibana
-e ELASTICSEARCH_URL=http://192.168.1.2:9200
-p 5601:5601
-d kibana:4.5
1.采用自定义网络multihost,ip随机分配 [去掉]
2.在宿主机启动kibana,容器端口5601映射到宿主机端口5601,可以通过http://<宿主机ip>:5601访问kibana
3.参数ELASTICSEARCH_URL指向第一步中启动的elasticsearch
第三步:logstash配置文件
logstash.conf,这个文件名字可以随便起
代码语言:javascript复制vi /config-dir/logstash.conf
填写:
input {
log4j {
mode => "server"
host => "0.0.0.0"
port => 3456
type => "log4j"
}
}
output {
elasticsearch { hosts => ["192.168.1.2"] }
}
输入模式log4j的服务,监听于当前容器的3456端口。也就是数据源需要向容器的3456端口发送日志。
第四步:启动logstash
代码语言:javascript复制docker run -d
-v "$PWD":/config-dir
-p 3456:3456
logstash:2.3
logstash -f /config-dir/logstash.conf