ELK学习总结【第一篇】:ELK概述
ELK简介
ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
- 处理方式灵活:Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
- 配置简易上手:Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
- 检索性能高效:虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
- 集群线性扩展:不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
- 前端操作炫丽:Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
当然,ELK Stack 也并不是实时数据分析界的灵丹妙药。在不恰当的场景,反而会事倍功半。
官网地址:https://www.elastic.co
ELK工作原理
在需要收集日志的所有服务上部署 logstash ,作为 logstash agent ( logstash shipper )用于监控并过滤收集日志,将过滤后的内容发送到 logstash indexer ,logstash indexer 将日志收集在一起交给全文搜索服务 ElasticSearch ,可以用 ElasticSearch 进行自定义搜索通过 Kibana 来结合自定义搜索进行页面展示。
服务器端部署及配置
安装JDK
[root@elk ~]# java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
安装logstash
[root@elk ~]# rpm -ivh logstash-2.1.0-1.noarch.rpm
安装Redis
[root@elk ~]# yum install redis -y [root@elk ~]# /etc/init.d/redis start [root@elk ~]# chkconfig redis on
安装elasticsearch
[root@elk ~]# rpm -ivh elasticsearch-2.0.0.rpm warning: elasticsearch-2.0.0.rpm: Header V4 RSA/SHA1 Signature, key ID d88e42b4: NOKEY Preparing... ########################################### [100%] Creating elasticsearch group... OK Creating elasticsearch user... OK 1:elasticsearch ########################################### [100%] ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using chkconfig sudo chkconfig --add elasticsearch ### You can start elasticsearch service by executing sudo service elasticsearch start [root@elk ~]# chkconfig --add elasticsearch [root@elk ~]# /etc/init.d/elasticsearch start 正在启动 elasticsearch: [确定] [root@elk ~]# chkconfig elasticsearch on [root@elk ~]# netstat -tunlp|grep :9 tcp 0 0 ::1:9200 :::* LISTEN 10966/java tcp 0 0 ::ffff:127.0.0.1:9200 :::* LISTEN 10966/java tcp 0 0 ::1:9300 :::* LISTEN 10966/java tcp 0 0 ::ffff:127.0.0.1:9300 :::* LISTEN 10966/java
安装kibana
[root@elk~]# yum install ruby rubygems -y [root@elk~]# gem install bundler [root@elk ~]# tar -zxf kibana-4.2.1-linux-x64.tar.gz -C /application/ [root@elk kibana-4.2.1-linux-x64]# useradd kibana [root@elk kibana-4.2.1-linux-x64]# chown -R kibana:kibana /application/kibana-4.2.1-linux-x64/ [root@elk kibana-4.2.1-linux-x64]# /application/kibana-4.2.1-linux-x64/bin/kibana serve &
客户端部署及配置
安装JDK
[root@elk ~]# java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
安装logstash
[root@elk ~]# rpm -ivh logstash-2.1.0-1.noarch.rpm [root@logstash01 ~]# cat /etc/logstash/conf.d/agent.conf input { file { path => "/var/log/command.log" } # logstash用户需要对文件有读权限 } output { redis { host => "172.16.1.129" # redis IP地址 data_type => "list" key => "logstash:redis" } } [root@elk ~]# /etc/init.d/logstash start [root@elk ~]# chkconfig logstash on 验证logstash与redis结合是否正常 查看redis的监控接口上的输出 # ./redis-cli monitor OK 1444315328.103928 [0 192.168.1.104:56211] "rpush" "logstash:redis" "{\"message\":\"dajihaolinux\",\"@version\":\"1\",\"@timestamp\":\"2015-10-08T14:42:07.550Z\",\"host\":\"0.0.0.0\"}" 如果redis的监控上也有以上信息输出,表明logstash和redis的结合是正常的。
出处:http://www.cnblogs.com/madsnotes/
声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。