使用ELK搭建蘑菇博客日志收集
使用ELK搭建蘑菇博客日志收集
前言
前阵子学习了ElasticStack的技术栈,其中包括ElasticSearch 、Beats、Kibana、Logstash。因为打算将其用于蘑菇博客的项目中,关于ElasticStack的技术栈学习,可以参考前面写的博客~
拉取ElasticStack镜像
通过本教程,可以非常方便的给蘑菇博客项目,集成ELK用于分布式日志收集
为了更加方便的部署ELK环境,我已经提前将环境打包成了Docker镜像,发布到了DockerHub中,所以我们只需要拉取我提前制作的ElasticStack镜像即可
1 | # 拉取镜像 |
拉取完成后,查看我们的镜像信息,容量大概在4.16G左右
制作容器
在我们拉取完成后,就可以开始通过镜像制作我们的ElasticStack容器了
1 | docker run --privileged -d -it -h elastic_stack --name elastic_stack -v /etc/localtime:/etc/localtime:ro -p 11122:22 -p 9200:9200 -p 5601:5601 -p 5044:5044 -p 9600:9600 moxi/elastic_stack /usr/sbin/init |
其中这里主要使用的端口号有
- 11122:用于建立ssh连接内部容器
- 9200:ElasticSearch默认端口号
- 5601:Kibana默认端口号
- 5044:Logstash默认端口号
执行完上面的命令后,如果没有错误,那么就代表执行成功
然后我们就可以通过在启动一个xshell窗口,连接我们的容器了
输入你服务器的ip地址,以及端口号为 11122,然后点击确定,然后在输入服务器的账号和密码
- 账号:root
- 密码:mogu2018
即可进入到我们的容器内部,我们到/soft目录下,能看到里面安装的软件
- ElasticSearch:分布式搜索引擎
- jdk:java1.8
- kibana:图形化工具
- logstash:用于数据的过滤和处理
启动ElasticSearch
因为ElasticSearch的启动配置要求比较高,所以我们需要修改一些配置,首先我们到宿主机【是刚刚安装Docker的机器,不是现在容器里面!!】
1 | # 到宿主机上打开文件 |
然后再去启动ElasticSearch,因为ElasticSearch不能使用root用户直接启动,所以我们需要切换到elsearch
1 | # 切换用户 |
启动完成后,我们就可以看到ElasticSearch运行在9200端口上
我们输入下面的地址到浏览器中访问
1 | http://your_ip:9200/ |
如果出现下面的内容,表示ElasticSearch服务已经正常启动~
启动Logstash
Logstash的作用就是收集Beats发送过来的数据,然后进行处理,处理完成后,在将其推送到ElasticSearch中,如果需要查看更多的关于Logstash,可以跳转到上面提到的博客中
我们首先到Logstash目录
1 | cd /soft/logstash |
然后我们可以查看配置文件
1 | vim mogu-dashboard.conf |
可以看到我之前配置的信息
1 | input { |
我们可以通过获取到传递过来的from字段,就是在filebeat时候指定的 一个字段,代表是这条日志属于哪个模块的,然后在根据logstash的if判断,然后生成不同的ElasticSearch索引
下面,我们指定该配置文件后,然后启动项目
1 | # 前台启动 |
注意:logstash的启动可能会比较慢,需要耐心的等待一会~
启动完成后,会占用9600端口~,同时经过logstash的数据都会发送到ElasticSearch中
启动Beats
启动filebeat
filebeat是一个轻量级的日志文件收集器,主要用于收集我们的一些日志文件【它和应用服务器存放在一起】
需要注意,Beats不在我们ELK服务器上进行启动了,我们需要到部署蘑菇博客的服务器上,然后找到Beats目录
我们首先需要到我们应用服务器中,然后启动filebeats 【如果你的目录下没有,可以参考 Beats入门简介 安装】
1 | # 进入到filebeat目录 |
然后查看我们的配置文件
1 | vim mogu-dashboard.yml |
然后修改我们配置文件中logstash的地址,我们要把它改成刚刚部署的logstash服务器的ip即可
1 | filebeat.inputs: |
然后启动我们的filebeat
1 | # 前台启动 |
启动完成后,我们能够看到日志文件已经被加载
启动Kibana
Kibana的作用就是对我们的数据进行图形化的显示,首先我们到Kibana目录 【回到ELK目录下】
1 | # 到kibana安装目录 |
因为Kibana和ElasticSearch一样,不支持root用户启动,所以我们继续切换成elsearch用户
1 | su elsearch |
然后启动
1 | ./bin/kibana |
查看启动信息,我们发现Kibana启动在5601端口号
启动后,我们在浏览器中访问我们的地址
1 | http://your_ip:5601 |
我们找到dashboard就可以看到蘑菇博客的日志记录了
tip:这里就只介绍了ElasticStack的日志收集,关于更多的Kibana图形化页面,小伙伴可以参考其它文件进行配置,这里就不列举出来啦~