中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

發布時間:2020-07-30 21:04:12 來源:網絡 閱讀:17194 作者:Cinyann 欄目:建站服務器

一、ELK是什么鬼?

ELK實際上是三個工具的集合,Elasticsearch + Logstash + Kibana,這三個工具組合形成了一套實用、易用的監控架構,很多公司利用它來搭建可視化的海量日志分析平臺。

1. ElasticSearch

ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發的,并作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。設計用于云計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。

2. Logstash

Logstash是一個用于管理日志和事件的工具,你可以用它去收集日志、轉換日志、解析日志并將他們作為數據提供給其它模塊調用,例如搜索、存儲等。

3. Kibana

Kibana是一個優秀的前端日志展示框架,它可以非常詳細的將日志轉化為各種圖表,為用戶提供強大的數據可視化支持。

二、ELK有何優勢?

1. 強大的搜索功能,elasticsearch可以以分布式搜索的方式快速檢索,而且支持DSL的語法來進行搜索,簡單的說,就是通過類似配置的語言,快速篩選數據。

2. 完美的展示功能,可以展示非常詳細的圖表信息,而且可以定制展示內容,將數據可視化發揮的淋漓盡致。

3. 分布式功能,能夠解決大型集群運維工作很多問題,包括監控、預警、日志收集解析等。

三、ELK一般用來做啥?

ELK組件在海量日志系統的運維中,可用于解決:

- 分布式日志數據集中式查詢和管理

- 系統監控,包含系統硬件和應用各個組件的監控

- 故障排查

- 安全信息和事件管理

- 報表功能

ELK組件在大數據運維系統中,主要可解決的問題如下:

- 日志查詢,問題排查,上線檢查

- 服務器監控,應用監控,錯誤報警,Bug管理

- 性能分析,用戶行為分析,安全漏洞分析,時間管理

緣起:

在微服務開發過程中,一般都會利用多臺服務器做分布式部署,如何能夠把分散在各個服務器中的日志歸集起來做分析處理,是一個微服務服務需要考慮的一個因素。

搭建一個日志系統

搭建一個日志系統需要考慮一下一些因素:

利用什么技術,是自己實現還利用現成的組件

日志需要定義統一的格式

日志需要擁有一個錨點來進行全局跟蹤

第一個問題,針對小公司來說,基本沒有自己的研發能力,絕對是選用第三方開源的組件了。ELK配置比較簡單,有現成的UI界面,容易檢索日志信息,是首選。 

第二個問題,利用log4j2定義好統一的日志格式,利用logstash過濾日志內容。 

第三個問題,全局跟蹤的ID有幾種生產方式,一種是利用UUID或者生成隨機數,一種是利用數據庫來生成sequence number,還可以通過自定義一個id生成服務來獲取。考慮到自身服務的需要,這里選用生成隨機數來實現。

ELK工作原理:

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

從左邊看起,每一臺webserver上都會部署一個logstash-agent,它的作用是用類似tailf的方式監聽日志文件,然后把新添加的日志發送到redis隊列里面,logstash-indexer負責從redis相應的隊列里面取出日志,對日志進進行加工后輸出到elasticsearch中,elasticsearch會根據要求對日志進行索引歸集,最后用戶可以通過kibana來查看和分析日志。


軟件包下載:

elasticsearch:

wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.2.1/elasticsearch-2.2.1.tar.gz

logstash:

wget https://download.elastic.co/logstash/logstash/logstash-2.2.2.tar.gz

kibana:

wget https://download.elastic.co/kibana/kibana/kibana-4.4.2-linux-x64.tar.gz

環境搭建:

注意:jdk可自行網上搜索安裝方法

注:由于Logstash的運行依賴于Java環境, 而Logstash 1.5以上版本不低于java 1.7,因此推薦使用最新版本的Java。因為我們只需要Java的運行環境,所以可以只安裝JRE,不過這里我依然使用JDK,請自行搜索安裝。


此次搭建需要使用的網絡源:

虛擬機能夠訪問互聯網:


安裝Java環境

yum -y install java-1.8.0-openjdk*


安裝Elasticsearch

tar -xvf elasticsearch-2.2.1.tar.gz -C /usr/local/

ln -s /usr/local/elasticsearch-2.2.1/ /usr/local/elasticsearch

cd /usr/local/elasticsearc


安裝插件:

./bin/plugin install  mobz/elasticsearch-head

插件安裝方法1:

1.elasticsearch/bin/plugin -install mobz/elasticsearch-head

2.運行es

3.打開http://localhost:9200/_plugin/head/

插件安裝方法2:

1.https://github.com/mobz/elasticsearch-head下載zip 解壓

2.建立elasticsearch-1.0.0\plugins\head\_site文件

3.將解壓后的elasticsearch-head-master文件夾下的文件copy到_site

4.運行es

5.打開http://localhost:9200/_plugin/head/


創建用戶和目錄(因為elasticsearch 2.0.0 以上版本不能用root用戶運行)

1
2
3
4
5
[root@localhost]# groupadd -g 1000 elasticsearch
[root@localhost]# useradd -g 1000 -u 1000 elasticsearch
[root@localhost]# sudo -u elasticsearch mkdir /tmp/elasticsearch
[root@localhost]# ls /tmp/elasticsearch
[root@localhost]# sudo -u elasticsearch mkdir /tmp/elasticsearch/{data,logs}

mkdir /usr/local/elasticsearch/config/scripts 


編輯配置文件vim config/elasticsearch.yml  

加如以下四行(注意冒號后面有空格):

path.data: /tmp/elasticsearch/data

path.logs: /tmp/elasticsearch/logs

network.host: 192.168.100.10(服務器IP)

network.port: 9200

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


啟動服務:

sudo -u elastsearch /usr/local/elasticsearch/bin/elasticsearch

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


注意:如果正式應用需要在后臺運行 

1sudo -u elastsearch /usr/local/elasticsearch/bin/elasticsearch -d

注意:

可以看到,它跟其他的節點的傳輸端口為9300,接受HTTP請求的端口為9200。

# curl 192.168.100.10:9200  

{

  "name" : "Wilson Fisk",

  "cluster_name" : "elasticsearch",

  "version" : {

    "number" : "2.2.1",

    "build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",

    "build_timestamp" : "2016-03-09T09:38:54Z",

    "build_snapshot" : false,

    "lucene_version" : "5.4.1"

  },

  "tagline" : "You Know, for Search"

}

返回展示了配置的cluster_name和name,以及安裝的ES的版本等信息。

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


剛剛安裝的head插件,它是一個用瀏覽器跟ES集×××互的插件,可以查看集群狀態、集群的doc內容、執行搜索和普通的Rest請求等。現在也可以使用它打開http://192.168.253.140:9200/_plugin/head/頁面來查看ES集群狀態:

上面的功能還是不錯的!

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


【安裝Logstash---數據日志存儲和傳輸】

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

其實它就是一個收集器而已,收集(input)和傳輸(output),我們需要為它指定Input和Output(當然Input和Output可以為多個)。可以指定input的日志和output到elasticsearch中

tar xvf logstash-2.2.2.tar.gz -C /usr/local/

ln -s /usr/local/logstash-2.2.2/ /usr/local/logstash


測試logstash

(1) 屏幕輸入輸出方式測試

/usr/local/logstash/bin/logstash -e 'input { stdin { } } output { stdout { } }'

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

我們可以看到,我們輸入什么內容logstash按照某種格式輸出,其中-e參數參數允許Logstash直接通過命令行接受設置。這點尤其快速的幫助我們反復的測試配置是否正確而不用寫配置文件。使用CTRL-C命令可以退出之前運行的Logstash。

使用-e參數在命令行中指定配置是很常用的方式

不過如果需要配置更多設置則需要很長的內容。這種情況,我們首先創建一個簡單的配置文件,并且指定logstash使用這個配置文件。例如:在logstash安裝目錄下創建

配置logstash

創建配置文件目錄:
mkdir -p /usr/local/logstash/etc
vim /usr/local/logstash/etc/hello_search.conf

輸入下面:

# cat /usr/local/logstash/etc/hello_search.conf

input {

  stdin {

    type => "human"

  }

}

output {

  stdout {

    codec => rubydebug

  }

  elasticsearch {

        hosts => "192.168.100.10:9200"

  }

}


啟動: /usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/hello_search.conf

(以頻幕上輸入的方式輸入,以rubydebug格式輸出到屏幕,并且傳遞到elasticsearch)

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

測試logstash日志是否傳輸到了elasticsearch 

通過以下接口:

curl 'http://192.168.253.140:9200/_search?pretty'

至此,你已經成功利用Elasticsearch和Logstash來收集日志數據了。


【安裝kibana---展示數據】

注:現在kibanna可以自帶了web服務,bin/kibana就可以直接啟動了,建議不用nginx進行配合啟動了,使用自帶的web

安裝Kibana

下載kibana后,解壓到對應的目錄就完成kibana的安裝

解壓、軟連接

1
2
tar -xzvf kibana-4.4.2-linux-x64.tar.gz -C /usr/local/
ln -s /usr/local/kibana-4.4.2-linux-x64/ /usr/local/kibana

啟動kibanna

1/usr/local/kibana-4.4.2-linux-x64/bin/kibana

或者

1/usr/local/kibana/bin/kibana


此時是沒有連接上elasticsearch

配置kibanna

vim /usr/local/kibana-4.4.2-linux-x64/config/kibana.yml

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


重啟

/usr/local/kibana/bin/kibana 

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


web訪問:

監聽了5601作為web端口

使用http://kibanaServerIP:5601訪問Kibana,登錄后,首先,配置一個索引,默認,Kibana的數據被指向Elasticsearch,使用默認的logstash-*的索引名稱,并且是基于時間的,點擊“Create”即可。

In order to use Kibana you must configure at least one index pattern. Index patterns are used to identify the Elasticsearch index to run search and analytics against. They are also used to configure fields.

為了后續使用Kibana,需要配置至少一個Index名字或者Pattern,它用于在分析時確定ES中的Index

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建



補充:

[配置logstash作為Indexer]

將logstash配置為索引器,并將logstash的日志數據存儲到Elasticsearch,本范例主要是索引本地系統日志

cat /usr/local/logstash/etc/logstash-indexer.conf 

input {

  file {

    type =>"syslog"

     path => ["/var/log/messages", "/var/log/secure" ]

  }

  syslog {

    type =>"syslog"

    port =>"5544"

  }

}

output {

  stdout { codec=> rubydebug }

  elasticsearch {hosts => "192.168.100.10:9200" }

}

執行:

/usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash-indexer.conf 

執行:

echo "谷歌alphago和李世石圍棋大戰"  >> /var/log/messages

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建


每個收集日志的啟動,都是一個獨立的進程

(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

自贡市| 怀化市| 手游| 淮滨县| 义乌市| 任丘市| 同心县| 赤水市| 灌云县| 惠来县| 开鲁县| 齐河县| 留坝县| 交城县| 苍山县| 玉溪市| 山阳县| 鄂托克前旗| 平利县| 杂多县| 盈江县| 申扎县| 大渡口区| 五峰| 日喀则市| 屏东市| 湾仔区| 高台县| 新闻| 当雄县| 彭山县| 河池市| 涟源市| 岱山县| 巴林右旗| 张掖市| 泸溪县| 太仆寺旗| 奇台县| 商丘市| 安康市|