基於docker部署使用ELK+FileBeat日志管理平台


  Docker從狹義上來講就是一個進程,從廣義上來講是一個虛擬容器,專業叫法為 Application Container(應用容器)。Docker進程和普通的進程沒有任何區別,它就是一個普通的應用進程,不過是用來操作鏡像文件的。所以Docker進程+構建的應用鏡像文件就等於Docker容器。作為時下最熱門的技術,docker輕量、便捷,極大的簡化了后端開發/后期運維工作。同時,ELK+Filebeat的集中式日志解決方案也是大熱。開發環境,Ubuntu 16.04

  1、Docker安裝

  1.校驗Linux內核版本

uname -ir

  Linux內核版本高於3.10,64位系統

  2.獲取最新doker安裝包

wget -qO- https://get.docker.com/ | sh

  如上圖,即安裝完成

  3.啟動docker后台服務

sudo service docker start #啟動守護進程
docker -v # 檢查版本

  如此docker即裝好,具體的安裝詳情,教程很多,不贅述

  2、安裝elk鏡像

  1.拉取 sebp/elk鏡像

sudo docker pull sebp/elk

  鏡像較大,差不多1.65G

  2.說幾個會用到的docker命令

sudo docker images // 查看本地已有鏡像
sudo docker run [image] // 拉取並運行鏡像
sudo docker ps -a // 查看容器狀態
sudo docker stop [image_id] sudo docker rm [image_id] // 刪除指定容器 sudo docker exec -it [image_id] /bin/bash // 進入容器,推薦bash //拷貝容器內文件至主機目錄 sudo docker [image_id]:/etc/pki/tls/certs/logstash-beats.crt ~ exit // 退出容器

  3.運行elk容器

  運行elk容器的時候,需將宿主機的端口轉發到該容器,其中ES端口為9200,kibana端口為5601,logstash為5044(注:可進入容器自行修改,再自由分配);建議將配置文件和數據存放在宿主機,便於后期維護,因此還需要將宿主機目錄掛載在容器/data當中;最終構造的命令如下:

sudo docker run -p  5601:5601 -p 9200:9200 -p 5044:5044  -v /home/nya/dockerFile:/data -it -d --name elk sebp/elk

  4.ELK服務端簡單配置

  這里是將ELK作為服務端,而sebp/elk鏡像默認生成有ssl證書,將證書拷貝至客戶端即可,容器中logstash的相關配置位於/etc/logstash/conf.d,輸入默認配置如下:

input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
    ssl_key => "/etc/pki/tls/private/logstash-beats.key"
  }
}

  :產生的數據文件及相關配置文件,可統一至於 之前掛載的 /data目錄下

  5.簡單測試

  一般不存在問題,可直接訪問Kibana頁面:

  多數無法訪問可能因為網絡不通,即防火牆未打開:

sudo ufw allow 5601 // 開啟5601端口

  3、ELK客戶端配置

  ELK客戶端配置核心在於Filebeat的相關配置

  1.添加elastic key至客戶端

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

  2.安裝apt-transport-https

  由於將使用https傳輸的elastic數據,需安裝apt-transport-https

sudo apt-get install -y apt-transport-https

  3.添加elastic庫並更新apt-get庫

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
sudo apt-get update

  4.安裝Filebeat及相關配置

sudo apt-get install -y filebeat
sudo vi /etc/filebeat/filebeat.yml

  簡版相關配置:

filebeat.prospectors:

- input_type: log

  paths:
    - /data/rosetta/logs/image-search.log
    - /data/rosetta/logs/summary.log
  document_type: syslog
output.logstash:
  hosts: ["ip:5044"]
  bulk_max_size: 2048

  # ssl.certificate_authorities: ["/etc/logstash/logstash.crt"]
  ssl.certificate_authorities: ["/home/nya/logstash-beats.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

  注意:配置文件為 .yml,格式特別重要,尤其是配置key: 后必須有一個空格,否則filebeat啟動失敗。

  5.啟動Filebeat

sudo systemctl start filebeat  // 啟動  
sudo systemctl enable filebeat // 設置為開機啟動
sudo systemctl status filebeat // 檢查服務狀態

  執行檢查服務狀態,返回結果如下圖即可:

  4、校驗並測試

  此處無甚可說,組圖展示:

1.

2.

3.

4.

5.大功告成 -- 結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM