参考资料:
Ubuntu上安装Docker: https://docs.docker.com/install/linux/docker-ce/ubuntu/
ELK官方文档:https://elk-docker.readthedocs.io/
Docker部署ELK的博文:https://juejin.im/post/5b80b37f6fb9a019d53e8b34 (本文建立在此基础上)
ELK介绍:http://docs.flycloud.me/docs/ELKStack/logstash/index.html
拉取ELK镜像:
docker pull sebp/elk
使用docker命令验证是否拉取镜像成功:
docker images
运行容器:
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /Users/song/dockerFile:/data -it -d --name elk sebp/elk
-p 参数为端口映射,格式为 主机端口:容器端口
上述命令表示,ElasticSearch端口为9200, kibana端口为5601, logstash端口为5044;
-v 参数表明,将主机目录/Users/song/dockerFile映射到容器的/data目录下
查看Kibana:
在浏览器中访问Kibana页面, URL为:
http://localhost:5601/
查看ElasticSearch服务:
在浏览器中方巍峨ES页面,URL为:
http://localhost:9200/_search?pretty
Logstash的配置:
vim /Users/song/dockerFile/config/logstash.conf
由于Nginx的log数据格式为:
183.202.215.225 - - [20/Jul/2017:14:39:34 +0800] "GET /stat.html?site=shuidigzh&action=http://d.ifeng.com/webppa/315/060109/index.shtml&uid=150
0530496249_uwejx13000&url=http://d.ifeng.com/webppa/hd/gdian/061516/index.shtml&referrer=http://d.ifeng.com/webppa/315/060109/index.shtml&rehos
t=d.ifeng.com&dateline=1500532799523 HTTP/1.1" 200 0 "http://d.ifeng.com/webppa/hd/gdian/061516/index.shtml" "183.202.215.225" "Mozilla/5.0 (Li
nux; Android 4.3; S8-701w Build/HuaweiMediaPad; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 MQQBrowser/6.2 TBS/0
43305 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/WIFI Language/zh_CN"
我们事先将收集到的日志文件放入/Users/song/dockerFile/data/logs/access.log
于是配置文件可以写为
input {
file {
path => "/data/logs/access.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{IPORHOST:clientip} - - \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}) %{QS:referrer} %{QS:agent}" }
}
}
output {
elasticsearch {
hosts => ["10.90.32.48:9200"]
}
stdout {codec => rubydebug}
}
启动logstash:
先进入容器:
docker exec -it elk bash
进入容器之后,启动logstash:
/opt/logstash/bin/logstash --path.data /root/ -f /data/config/logstash.conf
然后终端窗口就会疯狂显示正在处理的数据了。
Kibana的可视化:
在kibana的界面上
http://127.0.0.1:5601/app/kibana#/management/kibana/index?_g=()
可以在discover界面创建索引
在visualize界面进行可视化(如图标等的绘制)
注意!页面右上角的时间设置,默认似乎是15min之内处理得到的数据,根据需求更改吧……