基础部分
工作原理
es增删改内部原理
ELK集群安装部署
文档管理
索引管理
搜索
聚合分析
分词
数据建模
Java api
零停机
index segment merge
乐观锁并发控制
索引别名
相关度评分算法与定制
近似聚合算法
doc values与fielddata机制原理
父子关系数据建模
高级部分
地理位置搜索与聚合分析
term vector
suggester search
搜索模板定制
query执行剖析
span query
shard分配定制
多种聚合分析
插件开发
通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。实践的目的是了解ELK技术栈的部署和应用。
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
1、目标
安装部署ELK,使之正常工作。集群工作留待以后再实践。
2、部署的机器
服务器1: 192.168.136.144 部署 ELK 三个程序
服务器2: 192.168.136.138 部署logstash agent
以上机器都为 centos 65 虚拟机
安装的ELK版本为:
elasticsearch-2.4.1.tar.gz
kibana-4.5.1-linux-x64.tar.gz
logstash-2.3.2.tar.gz
说明: 本来用ELK 5.0.0版本,但是碰到一个 logstash与ES 连接的问题(和鉴权相关)目前找不到处理办法,所以采用旧的版本来进行实践。用最新版有风险,入门需谨慎!
3、安装过程
3.1 安装前准备
1)下载上面三个软件并上传到144主机
2) 准备java 1.8 (只要jdk 1.8 就可以)
3.2 安装步骤
ELK技术栈的部署将会按下面几个步骤进行
首先安装ES(Elasticsearch)和ES的插件, 然后安装kibana,最后安装 logstash。 在下篇,还继续进行logstash的agent的安装。
1、安装 ES(Elasticsearch)和ES的插件
首先解压elasticsearch-2.4.1.tar.gz ,然后进入目录
然后,我们要修改 config 目录下的配置文件elasticsearch.yml
要修改的内容为
将上面的内容,修改正确,并且确保前面的#去掉,使得该项目生效。由于ES不支持在root 下运行, 所以需要对目录进行授权。 使用root用户登录,并且执行如下命令
chown +R nmc:nmc /home/nmc/dev/elk/elk2.3/elasticsearch-2.4.1/
说明:上面命令是将这个目录以及这个目录下的子目录都授权给nmc用户,隶属于nmc用户组。
然后,我们切换到nmc用户,使用nmc用户来启动ES。 进入 /home/nmc/dev/elk/elk2.3/elasticsearch-2.4.1/
在命令行,执行: ./bin/elasticsearch
启动后,没有报错就表示成功了,我们可以通过浏览器执行 http://192.168.136.144:9200/ 来查看,出现下面界面就表示成功
下面我们可以进行 es 插件 head的安装。 head 之前的安装比较简单,在es没有启动的时候,执行 ./bin/plugin install mobz/elasticsearch-head
在我的环境下,执行已经无法下来这个包了。(估计5.0出来后,这个包已经整合了) 从网上下载了head 包,解压有,上传到 /home/nmc/dev/elk/elk2.3/elasticsearch-2.4.1/plugins
重启启动es,我们可以通过url http://192.168.136.144:9200/_plugin/head/来查看插件
好了 ES部分的安装就到这里。下面我们来安装 kibana
2、 安装kibana
用root 用户,解压缩 kibana,然后进入到这个目录。修改 config 目录下的kibana.yml
确保上面的配置生效。然后,我们启动kibana。执行 ./bin/kibana启动后,我们通过url http://192.168.136.144:5601/来进入 kibana 界面。
可以按默认的直接创建。然后点击最上方的discover 来观察
3、 下面我们安装logstash。 同样解压后进入该目录,
原来没config目录,我自己建立了一个,并且在config目录,创建一个配置文件。
通过配置文件中 output 将 logstash 与 ES 连接起来。
下面我们启动logstash,启动后,我们从logstash 窗口输入任何的内容,都能通过ES 反馈到 kibana界面上。