前言:
为什么要写个博文,在用Docker安装ELK实在遇到太大的坑了,我在安装的时候刚好ELK三个版本更新到了6.X,Filebeat也是6.X版本,但无论是谷歌还是百度,都是些5.X的文章,花了我几天时间一直找问题原因调不通,对于我这个英文水平只有小学生水平的人来说,只能啃官方文档,还好官方文档对各个版本的描述还是详细的,通过描述,才发现5.X与6.X的差别。特此记录下过程,但愿后来的人,不要再给坑了。
架构如下
- Linux版本:
Centos 7 - Docker安装
在线安装吧,如果自定义安装请搜索下安装方法,这里就不再描述了
yum install docker
启用服务
systemctl start docker
systemctl enable docker
- 关于ELK
- ELK实际上是Elasticsearch+Logstash+Kibana的缩写,关于三个组件的详细介绍,请自己查看各大网站文章,这里就不再描述。
- 最近都在研究Docker,出于快速安装方法,本文使用的是ELK For Docker
sudo docker pull sebp/elk
- 运行ELK镜像需要vm.max_map_count至少需要262144内存
[root@elk ~]# vi /etc/sysctl.conf
在尾行添加以下内容
vm.max_map_count=262144
运行ELK镜像
sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
如无意外打开浏览器即可以访问 http://ip:5601 是不是感受到Docker带来更捷
- 安装Filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm
官网址址查看最新版本:https://www.elastic.co/downloads/beats/filebeat- 配置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-*
第一次写图文代码博客,格式控制不好,写得美观的难了,现在看到哪些精美的博客,原来是这么辛苦的,致敬他们
ELK就写到这里了,这里只是一个基础环境,具体配置的还没有去深入研究