ELK学习总结
ELK簡介
ELK Stack 是 Elasticsearch、Logstash、Kibana 三個開源軟件的組合。在實時數(shù)據(jù)檢索和分析場合,三者通常是配合共用,而且又都先后歸于 Elastic.co 公司名下,故有此簡稱。
ELK Stack 在最近兩年迅速崛起,成為機器數(shù)據(jù)分析,或者說實時日志處理領域,開源界的第一選擇。和傳統(tǒng)的日志處理方案相比,ELK Stack 具有如下幾個優(yōu)點:
處理方式靈活:Elasticsearch 是實時全文索引,不需要像 storm 那樣預先編程才能使用;
配置簡易上手:Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 設計,都是目前業(yè)界最通用的配置語法設計;
檢索性能高效:雖然每次查詢都是實時計算,但是優(yōu)秀的設計和實現(xiàn)基本可以達到全天數(shù)據(jù)查詢的秒級響應;
集群線性擴展:不管是 Elasticsearch 集群還是 Logstash 集群都是可以線性擴展的;
前端操作炫麗:Kibana 界面上,只需要點擊鼠標,就可以完成搜索、聚合功能,生成炫麗的儀表板。
當然,ELK Stack 也并不是實時數(shù)據(jù)分析界的靈丹妙藥。在不恰當?shù)膱鼍?#xff0c;反而會事倍功半。
官網(wǎng)地址:https://www.elastic.co
ELK工作原理
在需要收集日志的所有服務上部署 logstash ,作為 logstash agent ( logstash shipper )用于監(jiān)控并過濾收集日志,將過濾后的內(nèi)容發(fā)送到 logstash indexer ,logstash indexer 將日志收集在一起交給全文搜索服務 ElasticSearch ,可以用 ElasticSearch 進行自定義搜索通過 Kibana 來結(jié)合自定義搜索進行頁面展示。
服務器端部署及配置
安裝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) [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... OK1:elasticsearch ########################################### [100%] ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using chkconfigsudo chkconfig --add elasticsearch ### You can start elasticsearch service by executingsudo 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 0966/java 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結(jié)合是否正常查看redis的監(jiān)控接口上的輸出 # ./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\"}"總結(jié)
- 上一篇: 分布式锁-zk临时节点
- 下一篇: Kafka、ActiveMQ、Rabbi