基于 ELK + Filebeat 搭建日志中心

674477230 7年前發布 | 85K 次閱讀 Logstash ELK Stack 日志處理 ElasticSearch

基于ELK+Filebeat搭建日志中心

本文是基于docker進行的容器化搭建ELK

當前環境

  1. 系統:centos7
  2. docker 1.12.1

介紹

ElasticSearch

Elasticsearch 是一個實時的分布式搜索和分析引擎,它可以用于全文搜索,結構化搜索以及分析。它是一個建立在全文搜索引擎 Apache Lucene 基礎上的搜索引擎,使用 Java 語言編寫。

Logstash

Logstash 是一個具有實時渠道能力的數據收集引擎,主要用于日志的收集與解析,并將其存入 ElasticSearch中。

Kibana

Kibana 是一款基于 Apache 開源協議,使用 JavaScript 語言編寫,為 Elasticsearch 提供分析和可視化的 Web 平臺。它可以在 Elasticsearch 的索引中查找,交互數據,并生成各種維度的表圖。

Filebeat

引入Filebeat作為日志搜集器,主要是為了解決Logstash開銷大的問題。相比Logstash,Filebeat 所占系統的 CPU 和內存幾乎可以忽略不計。

架構

不引入Filebeat

引入Filebeat

部署

啟動ElasticSearch

docker run -d -p 9200:9200 --name elasticsearch elasticsearch

啟動Logstash

# 1. 新建配置文件logstash.conf
input {
    beats {
        port => 5044
    }
}

output { stdout { codec => rubydebug } elasticsearch {

    #填寫實際情況elasticsearch的訪問IP,因為是跨容器間的訪問,使用內網、公網IP,不要填寫127.0.0.1|localhost
    hosts => ["{$ELASTIC_IP}:9200"] 

}

}

2.啟動容器,暴露并映射端口,掛載配置文件

docker run -d --expose 5044 -p 5044:5044 --name logstash -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf</code></pre>

啟動Filebeat

下載地址: https://www.elastic.co/downloads/beats/filebeat

# 1.下載Filebeat壓縮包
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.2.2-linux-x86_64.tar.gz

2.解壓文件

tar -xvf filebeat-5.2.2-linux-x86_64.tar.gz

3.新建配置文件filebeat.yml

filebeat: prospectors:

- paths:
    - /tmp/test.log #日志文件地址
  input_type: log #從文件中讀取
  tail_files: true #以文件末尾開始讀取數據

output: logstash: hosts: ["{$LOGSTASH_IP}:5044"] #填寫logstash的訪問IP

4.運行filebeat

./filebeat-5.2.2-linux-x86_64/filebeat -e -c filebeat.yml</code></pre>

啟動Kibana

docker run -d --name kibana -e ELASTICSEARCH_URL=http://{$ELASTIC_IP}:9200 -p 5601:5601 kibana

測試

  1. 模擬日志數據
# 1.創建日志文件
touch /tmp/test.log

2.向日志文件中寫入一條nginx訪問日志

echo '127.0.0.1 - - [13/Mar/2017:22:57:14 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"' >> /tmp/test.log</code></pre>

  1. 訪問 http://{$KIBANA_IP}:5601

總結

本文主要講述了如何一步步搭建ELK的過程,以及Filebeat在其中所起的作用。

這兒僅僅給大家做了一個演示,要在生產環境中部署時,還需使用數據卷進行數據持久化,容器內存問題也需考慮,elasticsearch與logstash都是相對吃內存的,如果不加以限制,很可能會拖垮你整個服務器。

當然安全因素也是大家不能忽視的,如傳輸的安全性、端口權限的最小化暴露程度,防火墻設置等。

后續

  1. logstash解析日志格式,如JAVA、nginx、nodejs等日志;
  2. elasticsearch的常用搜索語法;
  3. 通過kibana制作可視化圖表;

 

來自:https://github.com/jasonGeng88/blog/blob/master/201703/elk.md

 

 本文由用戶 674477230 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!