使用docker快速部署elk
1.软件&工具介绍
ELK是三个开源软件的缩写,分别表示: Elasticsearch, Logstash, Kibana,它们都是开源软件。新增了一
个FileBeat,它是一个轻量级的日志收集处理I具(Agent), Filebeat占用资源少, 适合于在各个服务器上
搜集日志后传输给Logstash,官方也推荐此工具。
●Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布
式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索赖
载等。
●Logstash主要是用来日志的搜集、 分析、过滤日志的工具,支持大量的数据获取方式。-般工作方
式为c/s架构,client端安装在需 要收集日志的主机上,server端负责将收到的各 节点日志进行过
滤、修改等操作在一并发往elasticsearch上去。
●Kibana也是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供的日志分析友好
的Web界面,可以帮助汇总、分析和搜索重要数据日志。
Filebeat隶属于Beats。目前Beats包含四种工具:
1. Packetbeat (搜集网络流量数据)
2. Topbeat (搜集系统、进程和文件系统级别的CPU和内存使用情况等数据)
3. Filebeat (搜集文件数据)
4. Winlogbeat (搜集Windows事件日志数据)
2.拉取ELK集成镜像
ELK镜像地址:https://hub.docker.com/r/sebp/elk/tags
[root@localhost ~]# docker full sebp/elk
注:不加版本号默认拉取最新的集成镜像版本(本次拉的最新版本为7.9.2)
3.启动ELK
[root@localhost ~]# echo "vm.max_map_count=262144" > /etc/sysctl.conf
[root@localhost ~]# sysctl -p
[root@localhost ~]# docker run -dit --name elk
-p 5601:5601
-p 9200:9200
-p 5044:5044
-v /opt/elk-data:/var/lib/elasticsearch
-v /opt/elk/logstash:/etc/logstash/conf.d
-v /etc/localtime:/etc/localtime
--restart=always sebp/elk
4.配置ELK
进入容器
[root@localhost ~]# docker exec -it elk /bin/bash
/etc/logstash/ ## logstash配置文件路径
/etc/elasticsearch /# es配置文件路径
/var/1og/ ##日志路径
配置Logstash
[root@localhost ~]# cd /opt/elk/logstash/
[root@localhost logstash]# vim logstash.conf
input {
tcp {
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
5.启动ELK服务
[root@localhost ~]# docker restart elk
[root@localhost ~]# docker ps
访问 http://[ip]:5601
访问: http://locahost:9200