1、elk 是什么 ?
Elastic Stack(舊稱ELK Stack),是一種能夠從任意數據源抽取數據,並實時對數據進行搜索、分析和可視化展現的數據分析框架。(hadoop同一個開發人員)
java 開發的開源的全文搜索引擎工具
基於lucence搜索引擎的
采用 restful - api 標准的
高可用、高擴展的分布式框架
實時數據分析的
官方網站: https://www.elastic.co/products
2、為什么要用elk?
服務器眾多,組件眾多,日志眾多
發現問題困難,技能要求高
業務場景:《實時日志分析展現》
日志主要包括系統日志、應用程序日志和安全日志。
系統運維和開發人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤。
通常,日志被分散的儲存不同的設備上。如果你管理數十上百台服務器,你還在使用依次登錄每台機器的傳統方法查閱日志。這樣是不是感覺很繁瑣和效率低下。
當務之急我們使用集中化的日志管理,例如:開源的 syslog ,將所有服務器上的日志收集匯總。
集中化管理日志后,日志的統計和檢索又成為一件比較麻煩的事情,一般我們使用 grep 、 awk和 wc 等 Linux 命令能實現檢索和統計,
但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
開源實時日志分析 ELK 平台能夠完美的解決我們上述的問題, ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成。
3、體系架構
工作原理如下如所示:
在需要收集日志的所有服務上部署 logstash ,其中 logstash agent ( logstash shipper )用於監控並過濾收集日志,將過濾后的內容發送到 logstash indexer , logstash indexer 將日志收集在一起交給全文搜索服務 ElasticSearch ,
可以用 ElasticSearch 進行自定義搜索
通過 Kibana 來結合自定義搜索進行頁面展示。
3、elk的技術架構
gateway:hdfs、Amazon S3、Local FileSystem、Shared FileSystem
Index module、Search module、 Mapping、River(引入異構數據的插件機制:RabbitMQ-River、Twitter-River)
zen和ec2---zk、scripting(mvel、python、js等)
第三方插件(Head、)
Transport(Thrift、Memcached、Http)
Java(Netty)
restful 和 curl
4、elk的基本概念
node 和 cluster
index(數據庫)->type(表)->document(行)->field (字段)
shards 分片
replicas 復制
5、其他全文搜索
Solr:文本支持強,html、pdf、word、excel、cvs
Elasticsearch:實時數據分析,支持json格式
splunk:
6、resftful風格
7、curl
curl www.baidu.com
curl -o baidu.txt www.baidu.com
curl -O www.baidu.com/xxx.html
curl -i www.baidu.com 顯示HTTP頭信息
curl -v www.baidu.com 顯示過程
curl -X GET/PUT/POST/DELETE www.baidu.com
8、查看官方api
單模式:
多模式: