一鍵啟動 filebeat 5.1.1 集成 logstash

關(guān)鍵詞: filebeat logstash docker docker-compose

PS : 本篇文章的改進版本垮耳,請點擊filebeat 5.3.1 結(jié)合 rancher 和 data-volume 實現(xiàn)橫向擴展

Background

上一篇文章《結(jié)合docker快速搭建啟動ELK日志收集平臺》講到搭建ELK service,這一章主要為了通過filebeat發(fā)送日志文件到前面我們所搭建的ELK平臺里邊

Filebeat

beats中,filebeat作為輕量級的logs shipper查蓉,幫助用戶將無數(shù)client端上的log文件以一種輕量級的方式轉(zhuǎn)發(fā)并集中日志和文件到ELK stack中榜贴,主要通過elasticsearch或者logstash指定的port進行日志轉(zhuǎn)發(fā),本文主要講filebeat和logstash的integration

Introduction

filebeat:輕量級logs shipper鹃共,在beats中發(fā)送應用日志文件的表現(xiàn)尤為突出驶拱,擁有backpressure-sensitive協(xié)議會讓filebeat知道當logstash忙于處理數(shù)據(jù)的時候蓝纲,自動減緩讀取日志文件內(nèi)容的速度晌纫,給logstash足夠的resource永丝,等到logstash恢復正常之后再回到正常的讀取與發(fā)送速度。

Prerequisite

OS : Centos 7.x
# 如果選擇快速啟動的方式必須有一下兩個要求
Docker engine > 1.12.x
Docker-compose > 1.11.x

安裝并啟動filebeat service

通過直接安裝在宿主機上的方式

  1. 使用RPM安裝官方rpm package

    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm
    sha1sum filebeat-5.1.1-x86_64.rpm
    rpm -vi filebeat-5.1.1-x86_64.rpm 
    
  2. 配置filebeatlogstash host哥牍,相關(guān)配置文件: /etc/filbeat/filebeat.yml
    filebeat配置默認連接elasticsearch嗅辣,這里我們主要使用logstash蛇耀,把無關(guān)的配置注釋掉:

    #-------------------------- Elasticsearch output ------------------------------
    # output.elasticsearch:
    # hosts: ["localhost:9200"]
    

在logstash下面配置logstash host配置并去掉注釋,這里我們以filebeat和logstash在同一臺機器為例译暂,相應的logstash host為localhost:

 #----------------------------- Logstash output --------------------------------
 #output.logstash:
 hosts: ["localhost:5044"]
 index: "logstash-%{+yyyy.MM.dd}"

配置日志目錄撩炊,注意縮進拧咳,這里我們以/var/log/*.log為例,配置也支持*號通配:

- input_type: log

# Paths that should be crawled and fetched. Glob based paths.
paths:
 - /var/log/*.log
  1. 啟動filebeat service
    systemctl start filebeat
    systemctl status filebeat
    
    LC_ALL=C systemctl status filebeat
    \* filebeat.service - filebeat
    Loaded: loaded (/usr/lib/systemd/system/filebeat.service; disabled; vendor preset: disabled)
    Active: active (running) since Sat 2017-03-25 03:59:03 EDT; 43s ago
      Docs: https://www.elastic.co/guide/en/beats/filebeat/current/index.html
    Main PID: 16277 (filebeat)
    Memory: 2.5M
    CGroup: /system.slice/filebeat.service
            `-16277 /usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -path.home /usr/share/filebea...
    
    Mar 25 03:59:03 elk systemd[1]: Started filebeat.
    Mar 25 03:59:03 elk systemd[1]: Starting filebeat...
    

啟動成功祭衩。

通過docker-compose

  1. Clone GIT folder 到本地阅签,建議放在user HOME下,eg:/home/user1/

    cd ~ 
    git clone https://github.com/easonlau02/filebeat.git
    
  2. 修改配置文件:~/filebeat/.env

    # ~/filebeat/.env
    
    # environment
    environment=PROD
    
    # Logstash host
    LOGSTASH_HOST=localhost
    
    # for docker compose volumes: replacement, use absolute path, eg: /var/log/nginx
    # if multiple path, use space to separate them, eg:  VOLUME_FOLDER_LIST="path1 path2 ... ..."
    VOLUME_FOLDER_LIST="/var/log/nginx/"
    
    # for filebeat.hml paths: replacement, support regex, eg: /var/log/nginx/*.log
    # if mutiple file pattern, use space to separate them, eg: PROSPECT_FILE_PATTERN_LIST="path1/*.log path2/*.log.* path3/access.log path4/access.*"
    PROSPECT_FILE_PATTERN_LIST="/var/log/nginx/*.log"
    

上述基本配置屬性是啟動filebeat的基本屬性:

  • environment: 和ELK一樣用來區(qū)分日志環(huán)境
  • LOGSTASH_HOST:: 指定logstash host,這里以localhost為(與logstash在同一臺機器养交,默認經(jīng)過5044 port)碎连,如果不在同一臺機器,需指定logstash的hostname,并確port:5044可以訪問
  • VOLUME_FOLDER_LIST:配置需要發(fā)送的日志文件所在的文件夾絕對路徑疲吸,eg:如果需要發(fā)送/var/log/nginx下的所有.log結(jié)尾的日志文件前鹅,需修改為VOLUME_FOLDER_LIST="/var/log/nginx/"舰绘,如果有多個文件夾,則使用空格分開捂寿,例如VOLUME_FOLDER_LIST="path1 path2 ... ..."
  • PROSPECT_FILE_PATTERN_LIST: filebeat真正讀取的文件路徑秦陋,具體到文件,可以使用*號通配赤嚼,eg: /var/log/nginx/*.log顺又,記住要具體到文件,而不是文件夾蹂空,如果有多中不同文件夾的日志需要發(fā)送果录,同樣使用空格分開,eg: PROSPECT_FILE_PATTERN_LIST="path1/*.log path2/*.log.* path3/access.log path4/access.*"
  1. 使用gen-config.sh生成filebeat.ymldocker-compose.yml文件
    $ cd ~/filebeat/
    $ chmod +x gen-config.sh
    $ ./gen-config.sh
    VOLUME_FOLDER_LIST=/var/log/nginx/
    PROSPECT_FILE_PATTERN_LIST=/var/log/nginx/*.log
    -rw-rw-r--. 1 user1 user1 504 Mar 25 04:24 docker-compose.yml
    -rw-rw-r--. 1 user1 user1 788 Mar 25 04:24 filebeat.yml
    

查看~/filebeat/filebeat.yml

filebeat.prospectors:

- input_type: log
paths:
 - /var/log/nginx/*.log
.....
output.logstash:
# The Logstash hosts
hosts: ["${logstash}:5044"]
index: "logstash-%{+yyyy.MM.dd}"
......

~/filebeat/docker-compose.yml

version: '2'
services:
  filebeat:
    image: eason02/filebeat:5.1.1
    container_name: filebeat-image
    restart: always
    environment:
      - env=${environment}
      - logstash=${LOGSTASH_HOST}
    network_mode: host
    ....
    volumes:
      - ./5.1.1/logs:/etc/filebeat/logs
      - ./5.1.1/data:/etc/filebeat/data
      - ./filebeat.yml:/etc/filebeat/filebeat.yml
      - /var/log/nginx/:/var/log/nginx/
    ....
  1. 使用docker-compose啟動filebeat service
$ cd ~/filebeat/
$ docker-compose up -d
# ouput 
Creating filebeat-image
$ docker container ls -f name=filebeat-image
# output 
CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS               NAMES
bb77764beb8a        eason02/filebeat:5.1.1.1                     "/docker-entrypoin..."   2 minutes ago       Up 2 minutes                            filebeat-image

通過Kibana查看日志localhost:5601

如果ELK沒有收集過日志,當訪問kibana的時候要求先建立index:

回到discovery查看我們通過filebeat發(fā)送的日志:

至此蘸泻,filebeat service安裝并啟動成功,你可以根據(jù)你的需要選擇不同的安裝方式悦施,第二種是經(jīng)過抽離以及優(yōu)化的,有問題大家下面評論穷蛹。未完待續(xù)....

** 文章所有步驟都是經(jīng)過實踐檢驗并可行,若有問題鬼雀,下方請評論

——END——
作者 : Eason蛙吏,專注各種技術(shù)、平臺励烦、集成泼诱,不滿現(xiàn)狀,喜歡改改改
文章屉栓、技術(shù)合作
Email : eason.lau02@hotmail.com</small>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末系瓢,一起剝皮案震驚了整個濱河市句灌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骗绕,老刑警劉巖资昧,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異撤缴,居然都是意外死亡叽唱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遵堵,你說我怎么就攤上這事极颓≈钟#” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵害幅,是天一觀的道長岂昭。 經(jīng)常有香客問我,道長邑遏,這世上最難降的妖魔是什么恰矩? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任外傅,我火速辦了婚禮,結(jié)果婚禮上碾盟,老公的妹妹穿的比我還像新娘技竟。我一直安慰自己,他們只是感情好熙尉,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布搓扯。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爱态。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天俭识,我揣著相機與錄音洞渔,去河邊找鬼。 笑死堤瘤,一個胖子當著我的面吹牛浆熔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慎皱,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼茫多,長吁一口氣:“原來是場噩夢啊……” “哼忽刽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缔恳,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤歉甚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赖钞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體聘裁,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡衡便,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谴餐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡汁展,死狀恐怖厌殉,靈堂內(nèi)的尸體忽然破棺而出公罕,到底是詐尸還是另有隱情,我是刑警寧澤熏兄,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布摩桶,位于F島的核電站,受9級特大地震影響辅斟,放射性物質(zhì)發(fā)生泄漏芦拿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一酵幕、第九天 我趴在偏房一處隱蔽的房頂上張望缓苛。 院中可真熱鬧,春花似錦笔刹、人聲如沸冬耿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爱咬。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勒庄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留局装,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像宣增,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子帖旨,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容