使用docker五步搭建ELK日志收集分析系统

2022-06-18 15:25:33 浏览数 (2)

本文中架构基于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

0 人点赞