创建elasticsearch
docker run -d --name my-elasticsearch \
-v /data/docker/elk/elasticsearch:/usr/share/elasticsearch/data \
-p 9200:9200 \
-v /etc/localtime:/etc/localtime \
elasticsearch
创建kibana
docker run -d --name my-kibana \
--link my-elasticsearch:elasticsearch \
-p 127.0.0.1:5601:5601 \
-v /etc/localtime:/etc/localtime \
kibana
注意:端口5601未开放,需要通过nginx代理,nginx密码认证
创建logstash
生成配置
创建临时容器
docker run --name test -it logstash:7.0.0 bash
拷贝配置到宿主机
docker cp my-logstash:/etc/logstash/ .
修改vim logstash.yml
path.config: /etc/logstash/conf.d
在conf.d(没有就自己创建)中加入需要监听的日志
删除容器test
创建容器
docker run -dit --name my-logstash \
-p 5044:5044 \
-v /etc/localtime:/etc/localtime \
-v /data/docker/elk/logstash/:/etc/logstash/ \
logstash
增加监听5044-test.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
action => "index"
index => "%{[fields][app]}"
hosts => ["localhost:9200"]
}
stdout{}
}
filebeat发送日志
首先安装filebeat 百度
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- "/你的日志路径/*.log"
multiline:
pattern: '^\d{4}-\d{1,2}-\d{1,2}'
negate: true
match: after
fields:
app: 项目A
- type: log
enabled: true
paths:
- "/你的日志路径/*.log"
multiline:
pattern: '^\d{4}-\d{1,2}-\d{1,2}'
negate: true
match: after
fields:
app: 项目B
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
output.logstash:
hosts: ["你的ip地址:5044"]
启动filebeat测试
创建完索引,然后kibana就能接收数据