通过docker创建ELK:
前沿:ELK实际上是ElasticSearch + logstash + kibana,架构图如下
一、安装docker:
yum install docker
#设置开机启动
systemctl start docker
systemctl enable docker
二、拉去elk镜像,
docker pull sebp/elk
三、运行ELK镜像需要vm.max_map_count至少需要262144内存
[root@elk ~]# vi /etc/sysctl.conf
在尾行添加以下内容
vm.max_map_count=262144
四、运行ELK镜像
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
如无意外打开浏览器即可以访问 http://ip:5601 是不是感受到Docker带来更捷
五、安装Filebeat,可以将文件下载到etc目录下
下载
ls
安装
rpm -vi filebeat-6.1.1-x86_64.rpm
六、配置Filebeat
cd /etc/filebeat
vi filebeat.yml
注意:Filebeat 6.0后,enabled默认为关闭,如红圈外,必须要修改成true,paths:为你想要抓取分析的日志内容
如果你直接将日志发送到Elasticsearc,请编辑此行Elasticsearc output
如果你直接将日志发送到Logstash,请编辑此行Logstash output
只能使用一行输出,其它的注掉即可
七、启动filebeat
/etc/init.d/filebeat start
#进入ELK容器
cd /etc/logstash/conf.d/
vi 02-beats-input.conf
默认配置如下:
将以下三行删除掉,意思是否使用证书,本例是不使用证书的,如果你需要使用证书,将logstash.crt拷贝到客户端,然后在 filebeat.yml里面添加路径即可
ssl => true
ssl_certificate => “/pki/tls/certs/logstash.crt”
ssl_key => “/pki/tls/private/logstash.key”
注意:sebp/elk docker是自建立了一个证书logstash.crt,默认使用通配配符,如果你使用证书,filebeat.yml使用的服务器地址 必须使用域名,不能使用IP地址,否则会报错
八、打开kibana管理页面:http://ip:5601 新建filebeat-
后续操作自己摸索,写的麻烦!
备注:本人搭建时遇到过很多坑,参考过很多前辈的博客,如有部分雷同请多包涵!