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然后先启...
·
话不多说,直奔主题
因为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收集的地址。
好了,本期的内容就到这里了!
更多推荐
已为社区贡献2条内容
所有评论(0)