一、elk 是什麼 ?html
Elastic Stack(舊稱ELK Stack),是一種可以從任意數據源抽取數據,並實時對數據進行搜索、分析和可視化展示的數據分析框架。(hadoop同一個開發人員)java
java 開發的開源的全文搜索引擎工具node
基於lucence搜索引擎的python
採用 restful - api 標準的數據庫
高可用、高擴展的分佈式框架json
實時數據分析的api
官方網站: https://www.elastic.co/products 安全
二、爲何要用elk?服務器
服務器衆多,組件衆多,日誌衆多restful
發現問題困難,技能要求高
業務場景:《實時日誌分析展示》
日誌主要包括系統日誌、應用程序日誌和安全日誌。
系統運維和開發人員能夠經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由。常常分析日誌能夠了解服務器的負荷,性能安全性,從而及時採起措施糾正錯誤。
一般,日誌被分散的儲存不一樣的設備上。若是你管理數十上百臺服務器,你還在使用依次登陸每臺機器的傳統方法查閱日誌。這樣是否是感受很繁瑣和效率低下。
當務之急咱們使用集中化的日誌管理,例如:開源的 syslog ,將全部服務器上的日誌收集彙總。
集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,通常咱們使用 grep 、 awk和 wc 等 Linux 命令能實現檢索和統計,
可是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法不免有點力不從心。
開源實時日誌分析 ELK 平臺可以完美的解決咱們上述的問題, ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成。
三、體系架構
工做原理以下如所示:
在須要收集日誌的全部服務上部署 logstash ,其中 logstash agent ( logstash shipper )用於監控並過濾收集日誌,將過濾後的內容發送到 logstash indexer , logstash indexer 將日誌收集在一塊兒交給全文搜索服務 ElasticSearch ,
能夠用 ElasticSearch 進行自定義搜索
經過 Kibana 來結合自定義搜索進行頁面展現。
三、elk的技術架構
gateway:hdfs、Amazon S三、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
四、elk的基本概念
node 和 cluster
index(數據庫)->type(表)->document(行)->field (字段)
shards 分片
replicas 複製
五、其餘全文搜索
Solr:文本支持強,html、pdf、word、excel、cvs
Elasticsearch:實時數據分析,支持json格式
splunk:
六、resftful風格
七、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
八、查看官方api
單模式:
多模式: