運維面試篇------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
複合表示式: ()
取反符合: !()