ELK(ElasticSearch, Logstash, Kibana)搭建實時日誌分析平臺

ELK平臺介紹

在搜索ELK資料的時候,發現這篇文章比較好,於是摘抄一小段:

以下內容來自: http://baidu.blog.51cto.com/71938/1676798

日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員可以通過日誌瞭解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以瞭解服務器的負荷,性能安全性,從而及時採取措施糾正錯誤。

通常,日誌被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的syslog,將所有服務器上的日誌收集彙總。

集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。

開源實時日誌分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站: https://www.elastic.co/products

  • Elasticsearch是個開源分佈式搜索引擎,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

  • Logstash是一個完全開源的工具,他可以對你的日誌進行收集、過濾,並將其存儲供以後使用(如,搜索)。

  • Kibana 也是一個開源和免費的工具,它Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌。

—————————- 摘抄內容結束——————————-

畫了一個ELK工作的原理圖:

wKioL1jsNbLjc7NOAAExS6LeEAk535.png

如圖:Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser。

ELK平臺搭建

系統環境

System: Centos release 6.6 (Final)

ElasticSearch: elasticsearch-5.3.0.tar.gz

Logstash: logstash-5.3.0.tar.gz

Kibana: kibana-5.3.0-linux-x86_64.tar.gz

Java: openjdk version  ”1.8.0_51″


ELK官網下載: https://www.elastic.co/downloads/


wKioL1jsN-ThuU9yAABdBSZzgOc286.png

ElasticSearch

配置ElasticSearch:

  useradd elk              #ES不允許root啓動服務

tar -zxvf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0
vi config/elasticsearch.yml


修改以下配置項:

cluster.name: es_cluster
node.name: node0
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 172.16.160.122
http.port: 9200


其他的選項保持默認,然後啓動ES:

  su elk

./bin/elasticsearch &

  3、

補:啓動異常:ERROR: bootstrap checks failed
  system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

  問題原因:因爲Centos6不支持SecComp,而ES5.2.1默認bootstrap.system_call_filter爲true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啓動。

  解決方法需要修改幾個地方:

      1, 在elasticsearch.yml中配置,注意要在Memory下面:
  bootstrap.memory_lock: false

  bootstrap.system_call_filter: false

      2,vim /etc/security/limits.d/90-nproc.conf

      *          soft    nproc     65535
      root       soft    nproc     unlimited

      3,vim /etc/sysctl.conf

      vm.max_map_count = 655360

      

     


wKioL1jsbwqRfbbrAABf9p1jnVs303.png

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



Logstash

Logstash的功能如下:

wKioL1jse_XQs7fpAACh9CJ4pRA963.png

其實它就是一個 收集器 而已,我們需要爲它指定Input和Output(當然Input和Output可以爲多個)。而Output就是ElasticSearch。

配置Logstash:

tar -zxvf logstash-5.3.0.tar.gz
cd logstash-5.3.0


編寫配置文件(名字和位置可以隨意,這裏我放在config目錄下,取名爲a_es.conf):

mkdir config
vi config/a_es.conf
input {
        file {
                path => "/tmp/a.log"                                    #創建的測試日誌文件
             }
      }

filter {

       }


output {
        stdout {
                codec => rubydebug
                }
        elasticsearch {
                index => "test_%{+YYYY.MM.dd}"        #索引信息
                hosts => [ "172.16.160.122:9200" ]
                      }
       }


./bin/logstash -f config/a_es.conf

如下圖,證明通信無誤

wKioL1jt-qnDfqp0AACyiHH9sPw776.png

Kibana

配置Kibana:

tar -zxvf kibana-4.3.0-linux-x86.tar.gz
cd kibana-4.3.0-linux-x86
vi config/kibana.yml

server.port: 5601
server.host: "172.16.160.122"
elasticsearch.url: http://172.16.160.122:9200
kibana.index: ".kibana.yml"

./bin/kibana

wKioL1jt_FTSfoZaAAC_43dixZc821.png



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章