ELK簡介 es集羣部署 es插件應用

 

Top

NSD ARCHITECTURE DAY03

  1. 案例1:ES集羣安裝
  2. 案例2:ES集羣安裝配置
  3. 案例3:練習curl命令
  4. 案例4:練習插件
  5. 案例5:插入,增長,刪除查詢數據
  6. 案例6:安裝Kibana

1 案例1:ES集羣安裝

1.1 問題

本案例要求:html

  • 準備1臺虛擬機
  • 部署elasticsearch第一個節點
  • 訪問9200端口查看是否安裝成功

1.2 方案

1)ELK是日誌分析平臺,不是一款軟件,而是一整套解決方案,是三個軟件產品的首字母縮寫,ELK分別表明:java

Elasticsearch:負責日誌檢索和儲存node

Logstash:負責日誌的收集和分析、處理linux

Kibana:負責日誌的可視化web

2) ELK組件在海量日誌系統的運維中,可用於解決分佈式日誌數據集中式查詢和管理系統監控等,故障排查,安全信息和事件管理,報表功能數據庫

部署Elasticsearch分佈式集羣安裝,Kibana做爲可視化平臺,實時總結流量和數據的圖表,Logstash用來收集處理日誌,如表-1所示:vim

表-1瀏覽器

1.3 步驟

實現此案例須要按照以下步驟進行。安全

步驟一:先準備一臺虛擬機服務器

1)更改主機名,配置IP,搭建第三方yum源(以前已經搭建過幾回,這裏再也不贅述)

  1. [root@se1 ~]# echo se1 > /etc/hostname
  2. [root@se1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  3. # Generated by dracut initrd
  4. DEVICE="eth0"
  5. ONBOOT="yes"
  6. IPV6INIT="no"
  7. IPV4_FAILURE_FATAL="no"
  8. NM_CONTROLLED="no"
  9. TYPE="Ethernet"
  10. BOOTPROTO="static"
  11. IPADDR=192.168.1.61
  12. PREFIX=24
  13. GATEWAY=192.168.1.254
  14. [root@se1 ~]# vim /etc/yum.repos.d/local.repo
  15. [local_repo]
  16. name=CentOS-$releasever - Base
  17. baseurl="ftp://192.168.1.254/system"
  18. enabled=1
  19. gpgcheck=1
  20. [elk]
  21. name=elk
  22. baseurl="ftp://192.168.1.254/elk"
  23. enabled=1
  24. gpgcheck=0

2)部署elasticsearch第一個節點

  1. [root@se1 ~]# vim /etc/hosts
  2. 192.168.1.61 se1
  3. 192.168.1.62 se2
  4. 192.168.1.63 se3
  5. 192.168.1.64 se4
  6. 192.168.1.65 se5
  7. [root@se1 ~]# yum -y install java-1.8.0-openjdk.x86_64
  8. [root@se1 ~]# java -version
  9. openjdk version "1.8.0_131"
  10. OpenJDK Runtime Environment (build 1.8.0_131-b12)
  11. OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
  12. [root@se1 ~]# sestatus     //查看selinux狀態
  13. SELinux status: disabled
  14. [root@se1 ~]# yum -y install elasticsearch
  15. [root@se1 ~]# vim /etc/elasticsearch/elasticsearch.yml
  16. 17 cluster.name: myelk        //配置集羣名字
  17. 23 node.name: se1        //當前主機名稱
  18. 54 network.host: 0.0.0.0     // 0.0.0.0(監聽全部地址)
  19. 68 discovery.zen.ping.unicast.hosts: ["se1", "se2","se3"]
  20. //聲明集羣裏的主機成員有誰,不須要所有寫進去
  21. [root@se1 ~]# systemctl restart elasticsearch
  22. [root@se1 ~]# systemctl enable elasticsearch
  23. [root@se1 ~]# ss -antup | grep 9200
  24. tcp LISTEN 0 50 :::9200 :::* users:(("java",pid=23231,fd=110))

3)訪問9200端口查看是否安裝成功,如圖-1所示:

圖-1

2 案例2:ES集羣安裝配置

2.1 問題

本案例要求:

  • 一共安裝5臺虛擬機
  • 在全部機器中部署ES
  • 啓動服務查看驗證集羣狀態

2.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:安裝elasticsearch和java-1.8.0-openjdk,同步配置文件

備註:在步驟一已經安裝了一臺elasticsearch,這裏只需再準備四臺便可

1)更改對應的主機名、 ip地址以及搭建yum源(以案例1爲例子)

2)安裝elasticsearch四臺主機一樣操做(以se2爲例子)

  1. [root@se2 ~]# yum -y install java-1.8.0-openjdk.x86_64
  2. [root@se2 ~]# yum -y install elasticsearch

3)同步配置/etc/hosts和/etc/elasticsearch/elasticsearch.yml, 修改node.name字段(以se2爲例子)

  1. [root@se1 ~]# for i in {62..65} ; do scp /etc/hosts 192.168.1.$i:/etc/hosts; done
  2. [root@se1 ~]# for i in {62..65} ; do scp \
  3. /etc/elasticsearch/elasticsearch.yml \
  4. 192.168.1.$i:/etc/elasticsearch/elasticsearch.yml; done
  5. [root@se2 ~]# vim /etc/elasticsearch/elasticsearch.yml
  6. node.name: se2 //另外三臺修改成對應se3,se4,se5
  7. [root@se2 ~]# systemctl restart elasticsearch
  8. [root@se2 ~]# systemctl enable elasticsearch

4)訪問測試,如圖-2所示:

能夠訪問61-65的任意一臺主機, 集羣的節點都是5臺,若先啓動的是se4或se5,這兩個會自動成爲各自的集羣,解決辦法,先啓動集羣裏的se1或se2或se3其中的一臺,或者把se4和se5重啓,se4和se5會自動加進去

ES 集羣驗證:返回字段解析:

」status」: 」green「 集羣狀態:綠色爲正常、黃色表示有問題但不是很嚴重、紅色表示嚴重故障

」number_of_nodes」: 5, 表示集羣中節點的數量

圖-2

3 案例3:練習curl命令

3.1 問題

本案例要求:

  • 練習使用curl命令
  • 理解GET POST
  • 使用curl命令訪問ES集羣

3.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:curl命令的使用

http的請求方法:

經常使用方法 GET,POST,HEAD

其餘方法 OPTIONS,PUT,DELETE,TRACE和CONNECT

ES經常使用:

PUT --增

DELETE --刪

POST --改

GET --查

系統命令curl:

是一個利用URL規則在命令行下工做的文件傳輸工具,能夠說是一款很強大的http命令行工具。它支持多種請求模式,自定義請求頭等強大功能,是一款綜合工具

curl 經常使用參數介紹:

-A 修改請求 agent

-X 設置請求方法

-i 顯示返回頭信息

1)索引的分片信息,如圖-1所示:

  1. [root@room9pc01 ~]# curl -X GET http://192.168.1.61:9200/_cat        

圖-1

2)顯示health的詳細信息,如圖-2所示:

  1. [root@room9pc01 ~]# curl -X GET http://192.168.1.62:9200/_cat/health?v

圖-2

3)查看nodes的幫助,如圖-3所示:

  1. [root@room9pc01 ~]# curl -X GET http://192.168.1.61:9200/_cat/nodes?help

圖-3

4 案例4:練習插件

4.1 問題

本案例要求:

  • 在其中一臺機器上部署插件
  • 使用bigdesk查看集羣狀態
  • 使用head建立index
  • 使用kopf查看數據

4.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:部署插件

插件裝在哪一臺機器上,只能在哪臺機器上使用(這裏安裝在se5機器上面)

1)使用遠程 uri 路徑能夠直接安裝

  1. [root@se5 ~]# cd /usr/share/elasticsearch/bin
  2. [root@se5 bin]# ./plugin install \
  3. ftp://192.168.1.254/elk/elasticsearch-head-master.zip        //安裝head插件
  4. [root@se5 bin]# ./plugin install \
  5. ftp://192.168.1.254/elk/elasticsearch-kopf-master.zip        //安裝kopf插件
  6. [root@se5 bin]# [root@se5 bin]# ./plugin install \
  7. ftp://192.168.1.254/elk/bigdesk-master.zip
  8. //安裝bigdesk插件     
  9. [root@se5 bin]# ./plugin list        //查看安裝的插件
  10. Installed plugins in /usr/share/elasticsearch/plugins:
  11. - head
  12. - kopf
  13. - bigdesk

2)訪問head插件,如圖-4所示:

  1. [root@room9pc01 ~]# firefox http://192.168.1.65:9200/_plugin/head

圖-4

3)訪問kopf插件,如圖-5所示:

  1. [root@room9pc01 ~]# http://192.168.1.65:9200/_plugin/kopf

圖-5

4)訪問bigdesk插件,如圖-6所示:

  1. [root@room9pc01 ~]# http://192.168.1.65:9200/_plugin/bigdesk

圖-6

步驟二:使用head建立index

  1. [root@se5 bin]# curl -X PUT "http://192.168.1.65:9200/index" -d '
  2. > {
  3. > "settings":{
  4. > "index":{
  5. > "number_of_shards":5,        //分片數
  6. > "number_of_replicas":1        //副本數
  7. > }
  8. > }
  9. > }'
  10. {"acknowledged":true}

步驟三:使用kopf查看數據,如圖-7所示:

圖-7

5 案例5:插入,增長,刪除查詢數據

5.1 問題

本案例要求:

  • 使用curl命令鏈接使用ES數據庫
  • 使用PUT方法增長數據
  • 使用POST修改數據
  • 使用GET查詢數據
  • 使用DELETE刪除數據

5.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:增長數據

  1. [root@se5 ~]# locale
  2. [root@se5 ~]# LANG=en_US.UTF-8 //設置編碼
  3. [root@se5 ~]# curl -X PUT "http://192.168.1.65:9200/taindex/teacher/1" -d '{
  4. "職業":"詩人",
  5. "名字":"李白",
  6. "稱號":"詩仙",
  7. "年代":"唐"
  8. }'
  9. {"_index":"taindex","_type":"teacher","_id":"1","_version":2,"_shards":{"total":2,"successful":2,"failed":0},"created":false}

步驟二:修改數據

  1. [root@se5 ~]# curl -X PUT "http://192.168.1.65:9200/taindex/teacher/1" -d '{
  2. "doc":{
  3. "年代": "唐代"
  4. }
  5. }'
  6. {"_index":"taindex","_type":"teacher","_id":"1","_version":3,"_shards":{"total":2,"successful":2,"failed":0},"created":false}

步驟三:查詢數據

  1. [root@se5 ~]# curl -X GET "http://192.168.1.65:9200/taindex/teacher/3?pretty"
  2. {
  3. "_index" : "taindex",
  4. "_type" : "teacher",
  5. "_id" : "3",
  6. "found" : false
  7. }

步驟四:刪除數據

  1. [root@se5 ~]# curl -X DELETE "http://192.168.1.65:9200/taindex/teacher/3?pretty"
  2. {
  3. "found" : false,
  4. "_index" : "taindex",
  5. "_type" : "teacher",
  6. "_id" : "3",
  7. "_version" : 1,
  8. "_shards" : {
  9. "total" : 2,
  10. "successful" : 2,
  11. "failed" : 0
  12. }
  13. }

步驟五:刪除索引

  1. [root@se5 bin]# curl -X DELETE http://192.168.1.65:9200/taindex/
  2. //刪除索引
  3. {"acknowledged":true}
  4. [root@se5 bin]# curl -X DELETE http://192.168.1.65:9200/*     //刪除全部索引
  5. {"acknowledged":true}

6 案例6:安裝Kibana

6.1 問題

本案例要求:

  • 安裝Kibana
  • 配置啓動服務查看5601端口是否正常
  • 經過web頁面訪問Kibana

6.2 步驟

實現此案例須要按照以下步驟進行

步驟一:安裝kibana

1)在另外一臺主機,配置ip爲192.168.1.66,配置yum源,更改主機名

2)安裝kibana

  1. [root@kibana ~]# yum -y install kibana
  2. [root@kibana ~]# rpm -qc kibana
  3. /opt/kibana/config/kibana.yml
  4. [root@kibana ~]# vim /opt/kibana/config/kibana.yml
  5. 2 server.port: 5601        
  6. //若把端口改成80,能夠成功啓動kibana,但ss時沒有端口,沒有監聽80端口,服務裏面寫死了,不能用80端口,只能是5601這個端口
  7. 5 server.host: "0.0.0.0"        //服務器監聽地址
  8. 15 elasticsearch.url: http://192.168.1.61:9200    
  9. //聲明地址,從哪裏查,集羣裏面隨便選一個
  10. 23 kibana.index: ".kibana"    //kibana本身建立的索引
  11. 26 kibana.defaultAppId: "discover"    //打開kibana頁面時,默認打開的頁面discover
  12. 53 elasticsearch.pingTimeout: 1500    //ping檢測超時時間
  13. 57 elasticsearch.requestTimeout: 30000    //請求超時
  14. 64 elasticsearch.startupTimeout: 5000    //啓動超時
  15. [root@kibana ~]# systemctl restart kibana
  16. [root@kibana ~]# systemctl enable kibana
  17. Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /usr/lib/systemd/system/kibana.service.
  18. [root@kibana ~]# ss -antup | grep 5601 //查看監聽端口

3)瀏覽器訪問kibana,如圖-8所示:

  1. [root@kibana ~]# firefox 192.168.1.66:5601

圖-8

4)點擊Status,查看是否安裝成功,所有是綠色的對鉤,說明安裝成功,如圖-9所示:

圖-9

5)用head插件訪問會有.kibana的索引信息,如圖-10所示:

  1. [root@se5 ~]# firefox http://192.168.1.65:9200/_plugin/head/

圖-10

相關文章
相關標籤/搜索