1. 程式人生 > >運維面試篇------1.elk基礎面試

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

相關推薦

面試------1.elk基礎面試

1.ELK是什麼? ELK 其實並不是一款軟體,而是一整套解決方案,是三個軟體產品的首字母縮寫 Elasticsearch:負責日誌檢索和儲存 Logstash:負責日誌的收集和分析、處理 Kibana:負責日誌的視覺化 這三款軟體都是開源軟體,通常是配合使用,而且又先後歸

面試-----3.nginx基礎面試

1.什麼是nginx? Nginx (engine x) 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器 Nginx作為負載均衡伺服器:Nginx 既可以在內部直接支援 Rails 和 PHP 程式對外進行服務,也可以支援作為 HTTP代

Linux高階--自動化之系統安裝基礎知識

Linux高階篇–運維自動化之系統安裝基礎知識 一、 系統安裝過程 系統安裝程式 CentOS系統安裝 系統啟動流程: 1、post加電自檢 2、尋找啟動裝置:硬碟,尋找啟動程式grub 1階段:mbr 446位元組 1.5:mbr後續的27個扇區 2階段:

知識大雜燴1(適合復習時候參考,初學會看著很雜)

運維 命令 基礎 運維知識大雜燴1 ftp下載不了,目錄沒有w權限,產看文件本身有沒有權限。kvm比vmware方便的是可以直接進入虛擬機裏面。vmware 虛擬機有快照的時候只能增加disk ,不能減少disk。短連接(

工程師必須掌握的基礎技能有哪些?

運維工程師必須掌握的基礎技能有哪些?作者:Tanky Woo鏈接:https://www.zhihu.com/question/23665108/answer/25299881來源:知乎著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。1. Linux基礎包括對Linux整體的理解/使用和基

Mysql DBA 高級學習筆記-Mysql常用基礎命令實戰

linux命令行 redhat esp sys dem mys pre 解決 運維學習 7.1 單實例mysql啟動和關閉方法 (1)常規方法啟動數據庫 1.啟動mysql服務命令 [root@localhost ~]# /etc/init.d/mysqld start S

Linux第七課----Linux基礎優化

vpd ext ges 一行 ec2 文件 文件內容 roo 分享圖片 一、find找出文件,並替換文件內容[root@oldbou ~/data]# find /root/data/ -type f -name ‘.txt‘ ./oldboy.txt./acheng.tx

Linux第八課----Linux基礎優化補充

中文亂碼 自動 字符集 linux xshel found linux基礎優化 文件 lan 一、顯示中文亂碼排查與解決辦法1.系統字符集與xshell字符集不匹配2.排查xshell中字符集不是UTF-8,修改xshell中字符集是UTF-8,繼續排查 系

工程師必須掌握的基礎技能和職業前景

集中 kvm 防火墻策略 squid edi 整體 聖經 cnp 運維 運維工程師必須掌握的基礎技能有哪些 運維工程師(Operations),負責維護並確保整個服務的高可用性,同時不斷優化系統架構提升部署效率、優化資源利用率提高整體的ROI。這是百度百科對運維工程師的定義

自動化之ANSIBLE(基礎知識)

simple github remote inux 對象 場景 .tar.gz 使用場景 system Ansible發展史 Ansible ??創始人,Michael DeHaan( Cobbler 與 Func 的作者) ??2012-03-09,發布0.0.1版

一、基礎--1.1Java基礎-final, finally, finalize 的區別

final, finally, finalize 首先,這三個關鍵字沒什麼關聯,只是放在一起比較像,用法用處完全不同。 final:   final關鍵字可以用來修飾類、方法、變數(成員變數和區域性變數),final用的多,下面詳細介紹下   1.1 final 修飾類     final

一、基礎--1.1Java基礎-Exception、Error、RuntimeException與一般異常有何異同

Throwable、Error、Exception、RuntimeException 關係如下類圖所示: Throwable: Throwable類是java語言中所有錯誤或者異常的超類。它的兩個子類是Error和Exception。 Error: Error是Throwable的子類,

Linux入門~1.虛擬機器使用

大家如果剛開始學習linux又沒有實踐的地方,推薦大家安裝使用VMware虛擬機器,百度搜索下載並安裝,一鍵解決所有問題。 接下來介紹虛擬機器使用方法,以linux系統中的虛擬機器為例: 本機中裝有兩臺虛擬機器:Desktop,Server 一  簡單使用虛擬機器 1

2018年秋招崗常見計算機網路基礎知識點總結

靜態變數和非靜態變數的區別: 靜態變數被所有的物件所共享,在記憶體中只有一個副本,當且僅當類在初次載入會被初始化。 非靜態常量是物件所擁有的,在建立物件的時候被初始化存在多個副本,static在不同例項中地址一樣,存在全域性區。 殭屍程序和孤兒程序: 殭屍程序:一個子程序在其父

一、基礎--1.1Java基礎-抽象類和介面的區別

抽象類和介面的區別 抽象類和介面在設計層面的區別主要體現在:介面是對動作的抽象,抽象類是對根源、類的抽象。抽象類表示的是,這個物件是什麼,介面表示的是,這個物件可以做什麼。 比如,男人、女人是人,人是男人女人的抽象類。人可以吃東西,動物也可以吃東西,人還有各種行為,吃東西就可以定義為一種介面。 語法上具

自動化工具 Ansible ——YAML、基礎元素

user pass list 表達 bin people another eve yaml YAML 的介紹   YAML是一個可讀性高的用來表達資料序列的格式。YAML參考了其他多種語言,包括:XML、C語言、Python、Perl等。YAML不是XML,不過,在開發的這

陌生又神祕的無厘頭分析

     運維,一個看起來很陌生的詞語,這是什麼意思呢?運維,這裡指網際網路運維,通常屬於技術部門,與研發、測試、系統管理同為網際網路產品技術支撐的4大部門,這個劃分在國內和國外以及大小公司間都會多少有一些不同。那麼IT運維又是什麼意思呢?度娘是這麼解釋的。 &nbs

Linux日常管理技巧(1)

1.系統狀態檢視 1.1 使用W檢視系統負載 查詢邏輯cpu核數 cat /proc/cpuinfo  檢視作業系統全程 uname -a 檢視作業系統版本lsb_release uptime類似於w命令,但是顯

資訊系統入門

        I T行業幹了有17個年頭了,從最初的軟體開發到專案建設管理,到今天的資訊系統運維,基本沒有靜下心來總結一下,,年齡大了卻心越來越恐慌,恐慌到這麼多年沒有進步和成長的果實讓自己值得欣慰,趁現在還有點心思,今後堅持下去,定期發一些文章,不斷積累,今天總結一下資訊

Java高階-1-Java基礎知識快速過一遍

      在學習Java高階部分知識之前,我們來簡單梳理一下Java基礎語法部分的知識,不會太全,但是基本的,常用到的一一複習一下。 1.Java編碼規範        在這裡,還是要強調Java編碼標準或者規範。以前,我寫程式碼或者指令碼不多,也不知道這個重要性。突然