日志監控(ELK)


1.ELK是什么?
ELK 其實並不是一款軟件,而是一整套解決方案,是三個軟件產品的首字母縮寫
Elasticsearch:負責日志檢索和儲存
Logstash:負責日志的收集和分析、處理
Kibana:負責日志的可視化
這三款軟件都是開源軟件,通常是配合使用,而且又先后歸於 Elastic.co 公司名下,故被簡稱為 ELK
2.ELK能做什么?
ELK組件在海量日志系統的運維中,可用於解決:
分布式日志數據集中式查詢和管理
系統監控,包含系統硬件和應用各個組件的監控
故障排查
安全信息和事件管理
報表功能


3.簡要概述Elasticsearch?
ElasticSearch 是一個基於 Lucene 的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基於 RESTful API 的 web 接口。
Elasticsearch是用Java開發的,並作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便
Elasticsearch的特點?
4.elasticsearch主要特點
1.實時分析
2.分布式實時文件存儲,並將每一個字段都編入索引
3.文檔導向,所有的對象全部是文檔
4.高可用性,易擴展,支持集群(Cluster)、分片和復制(Shards 和 Replicas)
接口友好,支持 JSON
5.ES 沒有什么?
Elasticsearch 沒有典型意義的事務.
Elasticsearch 是一種面向文檔的數據庫。
Elasticsearch 沒有提供授權和認證特性
6.ES相關概念
Node: 裝有一個 ES 服務器的節點。
Cluster: 有多個Node組成的集群
Document: 一個可被搜素的基礎信息單元
Index: 擁有相似特征的文檔的集合
Type: 一個索引中可以定義一種或多種類型
Filed: 是 ES 的最小單位,相當於數據的某一列
Shards: 索引的分片,每一個分片就是一個 Shard
Replicas: 索引的拷貝


7.ES與關系數據庫對比
ES 與關系型數據庫的對比
在 ES 中,文檔歸屬於一種 類型 (type) ,而這些類型存在於索引 (index) 中,類比傳統關系型數據庫
DB -> Databases -> Tables -> Rows -> Columns
關系型      數據庫          表            行              列  


ES -> Indices   -> Types  -> Documents -> Fields
ES       索引            類型            文檔           域(字段)


8.搭建ES流程安裝第一台 ES 服務器
1.設置主機名稱和 ip 對應關系 192.168.4.11 node1
2.解決依賴關系 openjdk1.8
3.安裝軟件包 elasticsearch
4.修改配置文件 elasticsearch.yml
5.啟動服務
6.檢查服務 netstat -lutunp (9200 9300)
curl:htttp://192.168.4.1:9200/
9.ES集群配置
只需要對配置文件做少量修改,其他配置一樣
ES 集群配置
集群中的所有節點要相互能夠 ping 通,要在所有集群機器上配置 /etc/hosts 中的主機名與 ip 對應關系
集群中所有機器都要安裝 java 環境
cluster.name 集群名稱配置要求完全一致
node.name 為當前節點標識,應配置本機的主機名
discovery 為集群節點機器,不需要全部配置
配置完成以后啟動所有節點服務(有可能會有一定的延時,需要等待幾十秒)


10.ES集群配置驗證
curl http://192.168.4.11:9200/_cluster/health?
11.ES 常用插件
head 插件:
它展現ES集群的拓撲結構,並且可以通過它來進行索引(Index)和節點(Node)級別的操作
它提供一組針對集群的查詢API,並將結果以json和表格形式返回
它提供一些快捷菜單,用以展現集群的各種狀態
ES 常用插件
kopf 插件
是一個ElasticSearch的管理工具
它提供了對ES集群操作的API
bigdesk 插件
是elasticsearch的一個集群監控工具
可以通過它來查看es集群的各種狀態,如:cpu、內存使用情況,索引數據、搜索情況,http連接數等


11.
Elasticsearch提供了一系列RESTful的API
檢查集群、節點、索引的健康度、狀態和統計
管理集群、節點、索引的數據及元數據
對索引進行CRUD操作及查詢操作
執行其他高級操作如分頁、排序、過濾等
POST 或 PUT 數據使用 json 格式
json
JSON的全稱是”JavaScript Object Notation”,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式。
json 傳輸的就是一個字符串
python 中對應的 字符串,列表,字典都可以轉換成對應的 json 格式
Rest API 的簡單使用
_cat API 查詢集群狀態,節點信息
v 參數顯示詳細信息
http://192.168.4.15:9200/_cat/health?v


help 顯示幫助                       信息
http://192.168.4.15:9200/_cat/health?help
Rest API 的簡單使用
nodes 查詢節點狀態信息
http://192.168.4.15:9200/_cat/nodes?v
索引信息
http://192.168.4.15:9200/_cat/indices?v

HTTP Methods 和 RESTful API 設計
HTTP Methods 也叫 HTTP Verbs, 它們是 HTTP 協議的一部分, 主要規定了 HTTP 如何請求和操作服務器上的資源,常見的有GET, POST等
HTTP Methods 一共有九個,分別是 GET,HEAD,POST,PUT,DELETE,TRACE,OPTIONS,CONNECT,PATCH
HTTP Methods
在RESTful API 設計中,常用的有POST,GET,PUT,PATCH 和 DELETE。分別對應對資源的創建,獲取,修改,部分修改和刪除操作。
我們默認訪問 ES API 的方法是 GET,如果要對數據庫增加、刪除、修改數據我們還要使用對應的方法
GET       查詢
POST     增加
PUT       更改
DELETE  刪除

12.kibana是什么
數據可視化平台工具


特點:
靈活的分析和可視化平台
實時總結和流數據的圖表
為不同的用戶顯示直觀的界面
即時分享和嵌入的儀表板




13.
elk-(elasticsearch---kibana----logstash)
kibanna(批量導入數據---批量查詢--在kibana里展示)
logstash(input模塊file---tcp&udp----syslog)
 (output模塊rubydebug---elasticsearch)
        (filter模塊grok)
        (codec)
 (filebeat)


15logstash 是什么
logstash是一個數據采集、加工處理以及傳輸的工具


16.logstash 特點:
所有類型的數據集中處理
不同模式和格式數據的正常化
自定義日志格式的迅速擴展
為自定義數據源輕松添加插件
17.logstash  工作結構


{ 數據源 } ==>
             input {   } ==>
                              filter {   } ==>
                                             output {   } ==>
                                                                { ES }
17.logstash 里面的類型
布爾值類型:  ssl_enable => true
字節類型:     bytes => "1MiB"
字符串類型:  name => "xkops"
數值類型:     port => 22
數組:            match => ["datetime","UNIX"]
哈希:            options => {k => "v",k2 => "v2"}
編碼解碼:     codec => "json"
路徑:            file_path => "/tmp/filename"
注釋:            #


18.logstash 條件判斷
等於:         ==
不等於:      !=
小於:          <
大於:          >
小於等於:   <=
大於等於:   >=
匹配正則:   =~
不匹配正則: !~
logstash 條件判斷
包含:         in
不包含:     not in
與:   and
或:     or
非與:        nand
非或:   xor
復合表達式:   ()
取反符合:      !()
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM