elk單臺環境搭建(1)

1、簡介
一、核心組成
ELK由Elasticsearch、Logstash和Kibana三部分組件組成;
Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash是一個徹底開源的工具,它能夠對你的日誌進行收集、分析,並將其存儲供之後使用
Kibana是一個基於瀏覽器頁面的Elasticsearch前端展現工具。Kibana所有使用HTML語言和Javascript編寫的

二、組件做用
Logstash: logstash server端用來蒐集日誌;
Elasticsearch: 存儲各種日誌;
Kibana: web化接口用於查詢和可視化日誌;
三、ELK工做流程
在須要收集日誌的全部服務上部署logstash,做爲logstash agent(logstash shipper)用於監控並過濾收集日誌,而後經過logstash indexer將日誌收集在一塊兒交給全文搜索服務ElasticSearch,能夠用ElasticSearch進行自定義搜索經過Kibana 來結合自定義搜索進行頁面展現。html

wKiom1hFXljjhlFLAAEhr73I6-A152.png


2、下載所需軟件前端

wget http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz
java

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.tar.gz
node

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

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


3、安裝步驟vim

一、首先安裝jdk後端

安裝jdk-8u45-linux-x64
root身份登陸系統 將jdk-8u45-linux-x64.tar.gz拷貝到/opt下面
cd /opt
tar zxvf jdk-8u45-linux-x64.tar.gz
        解壓後 生成的文件名字叫作jdk-8u45
vim /etc/profile
把以下代碼放到文件的最後面
export JAVA_HOME=/opt/jdk-8u45
export JAVA_BIN=/opt/jdk-8u45/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JAVA_BIN PATH CLASSPATH
source /etc/profile瀏覽器

二、安裝Logstashruby

tar –zxf logstash-1.5.2.tar.gz -C /usr/local/
安裝完成後運行以下命令:

/usr/local/logstash-1.5.2/bin/logstash agent -f logstash-test1.conf
# /usr/local/logstash-1.5.2/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Logstash startup completed
this is test!
2015-07-15T03:28:56.938Z dell-09 this is test!

咱們能夠看到,咱們輸入什麼內容logstash按照某種格式輸出,其中-e參數參數容許Logstash直接經過命令行接受設置。這點尤爲快速的幫助咱們反覆的測試配置是否正確而不用寫配置文件。使用CTRL-C命令能夠退出以前運行的Logstash。
使用-e參數在命令行中指定配置是很經常使用的方式,不過若是須要配置更多設置則須要很長的內容。這種狀況,咱們首先建立一個簡單的配置文件,而且指定logstash使用這個配置文件。例如:在logstash安裝目錄(/usr/local/logstash-1.5.2)下建立一個「基本配置」測試文件logstash-test.conf,文件內容以下:
  
# cat logstash-test.conf
input { stdin { } }
output {
   stdout { codec=> rubydebug }
}
Logstash使用input和output定義收集日誌時的輸入和輸出的相關配置,本例中input定義了一個叫"stdin"的input,output定義一個叫"stdout"的output。不管咱們輸入什麼字符,Logstash都會按照某種格式來返回咱們輸入的字符,其中output被定義爲"stdout"並使用了codec參數來指定logstash輸出格式。


三、安裝Elasticsearch

# tar -zxf elasticsearch-1.6.0.tar.gz -C /usr/local/
啓動Elasticsearch兩種方式:
# /usr/local/elasticsearch-1.6.0/bin/elasticsearch
# nohup /usr/local/elasticsearch-1.6.0/bin/elasticsearch >nohup &  後臺啓動

驗證及確認elasticsearch的9200端口已監聽,說明elasticsearch已成功運行
[root@dell-09 tmp]# ss -tunpl |grep 9200
tcp    LISTEN     0      50                    :::9200                 :::*      users:(("java",16633,99))


接下來咱們在logstash安裝目錄下建立一個用於測試logstash使用elasticsearch做爲logstash的後端的測試文件logstash-test.conf,該文件中定義了stdout和elasticsearch做爲output,這樣的「多重輸出」即保證輸出結果顯示到屏幕上,同時也輸出到elastisearch中。

cat logstash-test-simple.conf

input { stdin { } }
output {
   elasticsearch {host => "localhost" }
   stdout { codec=> rubydebug }
}

/usr/local/logstash-1.5.2/bin/logstash agent -f logstash-test-simple.conf
Logstash startup completed
es logstash #手動添加
{
       "message" => "es logstash",
      "@version" => "1",
    "@timestamp" => "2016-12-06T01:58:49.672Z",
          "host" => "dell-09"
}

驗證
使用curl命令發送請求來查看ES是否接收到了數據:
curl 'http://localhost:9200/_search?pretty'

wKioL1hGHDCgv6UnAAB77Lzal3o483.png-wh_50

若是看到上圖內容說明已經能夠用Elasticsearch和Logstash來收集日誌數據了。

四、安裝elasticsearch插件
Elasticsearch-kopf插件能夠查詢Elasticsearch中的數據,安裝elasticsearch-kopf,只要在你安裝Elasticsearch的目錄中執行如下命令便可:

# cd /usr/local/elasticsearch-1.7.2/bin
# ./plugin -install lmenezes/elasticsearch-kopf


訪問kopf:

http://10.193.1.86:9200/_plugin/kopf/#!/nodes

wKioL1hGHonygP-LAAED_U2uUzQ036.png


五、安裝Kibana
# tar -zxf kibana-4.1.1-linux-x64.tar.gz -C /usr/local/

啓動kibana
# /usr/local/kibana-4.1.1-linux-x64/bin/kibana

使用http://localhost:5601訪問Kibana,登陸後,首先,配置一個索引,默認,Kibana的數據被指向Elasticsearch,使用默認的logstash-*的索引名稱,而且是基於時間的,點擊「Create」便可。而後點擊discover


如圖:

wKioL1hGH9Dwv3GTAAFDipdnmwI016.png-wh_50

note:

碎碎念:

①單機的elk到這基本已經完成了,主要部署思路仍是在須要收集日誌的全部服務上部署logstash,做爲logstash agent(logstash shipper)用於監控並過濾收集日誌,而後logstash indexer將日誌收集在一塊兒交給全文搜索服務ElasticSearch,能夠用ElasticSearch進行自定義搜索經過Kibana 來結合自定義搜索進行頁面展現。

②若是生產服務器過多,有不少日誌處理的話建議用zookeeper+kafka+elk

……

相關文章
相關標籤/搜索