Docker下搭建ELK,超详细,亲测可用

话不多说,直奔主题

因为kibana要依赖ES所以要先启动ES在启动kibana
首先执行

docker pull elasticsearch:7.0.0

下载好了ES的镜像然后继续执行下面代码 注意:(ES和kibana的版本要一致不然可能会出现问题)

docker pull logstash:7.0.0

然后继续执行下面代码

docker pull kibana:7.0.0

然后先启动ES

docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -e "discovery.type=single-node"   -p 9200:9200 -p 9300:9300 --name es01 8f46db60ddd6

然后在浏览器输入云服务器的ip地址加9200端口访问出现下面就为启动成功
在这里插入图片描述
接下来执行下面命令启动kibana

docker run --name kiba -e ELASTICSEARCH_HOSTS=http://192.168.111.136:9200 -e SERVER_PORT=5601  -e SERVER_HOST=0.0.0.0 -p 5601:5601 -d 7f92ab934206

等待一会,然后进入浏览器访问出现下列现象就代表搭建好了
在这里插入图片描述
接下来最复杂的地方配置logstash

docker pull Filebeat

新建logstash文件夹,并在其下新建config、pipeline两个文件夹其中config文件夹下有文件logstash.conf、filebeat.yml。内容分别为:

logstash.conf

input {
  beats {
    host => "localhost"
    port => "5043"
  }
}
filter {
   if [fields][doc_type] == 'order' {
    grok {
            match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" }
        }
   }

   if [fields][doc_type] == 'customer' { # 这里写两个一样的grok,实际上可能出现多种不同的日志格式,这里做个提示而已,当然如果是相同的格式,这里可以不写的
    grok {
            match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" }
        }
   }
}

output {
  stdout { codec => rubydebug }
  elasticsearch {
        hosts => [ "localhost:9200" ]
        index => "%{[fields][doc_type]}-%{+YYYY.MM.dd}"
    }
}

filebeat.yml

filebeat.prospectors:
- paths:
    - /home/user/elk/logs/order/*.log
  multiline:
      pattern: ^\d{4}
      negate: true
      match: after
  fields:
    doc_type: order
- paths:
    - /home/user/elk/logs/customer/*.log
  multiline:
      pattern: ^\d{4}
      negate: true
      match: after
  fields:
    doc_type: customer
output.logstash: # 输出地址
  hosts: ["logstash:5043"]

然后执行下面代码启动

docker run --rm -it --name logstash --link elasticsearch -d -v ~/elk/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash

接下来执行下列代码

docker run --name filebeat -d --link logstash -v ~/elk/logstash/config/filebeat.yml:/usr/share/filebeat/filebeat.yml -v ~/elk/logs/:/home/logs/ filebeat

注意下-v参数挂载的几个本地盘的地址。还有filebeat收集的地址。
好了,本期的内容就到这里了!

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值