前言
前面写了用打包过elk全家桶的docker镜像来跑elk,但这个给我的的感觉就像雾里看花,对各部件还是几近一无所知。因此我想亲手搭建elasticsearch、logstash、kibana,配置他们,让他们联通跑起来,这样我就能比较清楚地理解他们的运行机机制了。
搭建
环境
为了和生产环境服务器保持一致,我是在centos6.5上进行安装
安装JDK
到java官网获取安装包,执行安装即可
rpm -ivh jdk-xxx-linux-x64.rpm
安装elasticsearch
安装es比较简单,按如下步骤:
- 获取es
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.4/elasticsearch-2.4.4.tar.gz
tar -zxvf elasticsearch-2.4.4.tar.gz
- 配置elasticsearch.yml 文件位于config目录下,主要要配置以下参数如下(满足基础功能,完整的配置根据该文件中的说明)
path.data: /home/xxx/es/data/
path.logs: /home/xxx/es/logs/
network.host: 0.0.0.0
http.port: 9200
- 安装插件
3.1. head插件:能够在浏览器端可视化地查看当前节点es状态、索引等
./bin/plugin install mobz/elasticsearch-head
3.2. kopf插件:可用于查询es中数据
./bin/plugin install lmenezes/elasticsearch-kopf
- 启动es
//加 -d 代表以后台进程启动
./bin/elasticsearch -d
安装Kibana
也比较简单,步骤和es一样:
- 获取kibana 由于es我装的是2.4.4版本,因此kibana根据官方文档要求安装了4.6版的。
- 修改配置文件
//es服务开放的地址和端口
elasticsearch.url: "http://192.168.5.130:9200"
// elasticsearch.username: "user"
// elasticsearch.password: "pass"
//kibana界面端口
server.port: 5601
//监听ip
server.host: "192.168.5.130"
- 启动
kibana启动需要保证es正常启动并且在上述配置文件中成功配置。 执行以下启动。
./bin/kibana
打开192.168.5.130:5601后进入configuration页面,需要设置默认的索引前缀,但是发现无法保存配置,原以为是es版本和kibana版本不匹配的原因导致。于是我又到es官网下载了最新的es5.5和kibana5.5,运行es5.5的时候发现这个版本比较坑,需要做各种系统层级的配置修改才能正常运行,没有老版本那么方便地开箱即用,于是放弃,用回es2.4。到官网上看了下,es2.4和kibana4是能兼容的,也就是意味着,最初的无法保存配置不是版本原因。后来网上查找后知道这是由于es中还没有logstash创建的索引导致。于是我进入lostash到的安装过程中。
安装logstash
- 获取logstash
配合另外两个,安装2.2.0版本 - 启动 同上,执行 bin/logstash及可启动,可通过指定配置文件,或指定配置文件目录:
//没有指定输入输出规则,则按照stdin/stdout
bin/logstash -e
//按照conf中的文件解析
bin/logstash -f agent.conf
//按照目录下的所有配置文件解析
bin/logstash -f /etc/logstash.d/
具体的配置规则会另起一篇文章。
小结
elk全家桶的安装确实挺方便,其实这里也算不上安装,只是简单做了配置、运行了下二进制文件而已。具体各个工具的使用,如logstash与日志文件和ES之间的交互如何配置、Kibana如何实现数据定制化等等,会在接下来的文章中探讨。