Docker安裝部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)

ELK是由 Elasticsearch、Logstash和Kibana 三部分組件組成。

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

Logstash 是一個徹底開源的工具,它能夠對你的日誌進行收集、分析,並將其存儲供之後使用 nginx

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

+github

Filebeat 是用於單用途數據託運人的平臺。它們以輕量級代理的形式安裝,並未來自成百上千臺機器的數據發送到 Logstash 或 Elasticsearch。
docker

 

 

 Docker 鏡像統一從 https://hub.docker.com/ 下載 (安裝時請使用統一版本)json

 

、Docker 安裝 Elasticsearch

官網鏡像地址:https://hub.docker.com/_/elasticsearchvim

找到目前最新的(Tags)是 7.1.1ruby

# 下載鏡像 查看鏡像
docker pull elasticsearch:7.1.1
docker images

# 建立自定義的網絡(用於鏈接到鏈接到同一網絡的其餘服務(例如Kibana))
docker network create somenetwork

# 運行
elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1

# 查看容器狀態
docker ps

# 檢測 elasticsearch 是否啓動成功
curl 127.0.0.1:9200

Elasticsearch 安裝啓動完成

 

2、Docker 安裝 Kibana

官網鏡像地址:https://hub.docker.com/_/kibanarestful

使用和 elasticsearch 相同版本鏡像 7.1.1 (不同可能會出現問題)網絡

# 下載鏡像 查看鏡像
docker pull kibana:7.1.1
docker images

注意:在本例中,Kibana使用默認配置,並但願鏈接到正在運行的Elasticsearch實例http://localhost:9200

# 運行 Kibana
docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.1.1

# 查看容器啓動狀態
docker ps

 

訪問 http://127.0.0.1:5601  (啓動可能會較慢,如失敗等幾秒再嘗試刷新一下)

 

Kibana 安裝啓動完成

 

3、Docker 安裝 Logstash

官網鏡像地址:https://hub.docker.com/_/logstash

使用同版本鏡像 7.1.1 

# 下載鏡像 查看鏡像
docker pull logstash:7.1.1
docker images

 

我在工做目錄創建一個 docker 目錄 並在裏面建立了 logstash 目錄,用來存放全部配置

 

裏面放了 logstash 的配置文件

 

logstash.yml (文件內容)

path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
conf.d/test.conf (文件內容)

input {
    beats {
    port => 5044
    codec => "json"
}
}

output {
  elasticsearch { hosts => ["elasticsearch:9200"] }
  stdout { codec => rubydebug }
}
啓動 Logstash 

記得映射上面兩個目錄 {path}

docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v {path}/logstash.yml:/usr/share/logstash/config/logstash.yml -v {path}/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1

查看容器運行狀態
docker ps

啓動成功

 

4、Docker 安裝 Filebeat

官網鏡像地址:https://hub.docker.com/_/filebeat

使用同版本鏡像 7.1.1 

# 下載鏡像 查看鏡像
docker pull store/elastic/filebeat:7.1.1
docker images

# 下載默認官方配置文件 (暫時在當前目錄建立一個 filebeat 目錄 用來放 filebeat 配置文件)
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml

# 打開配置文件
vim
filebeat.docker.yml


# 增長下面的配置 (收集 .log 數據 把數據發送到當前網絡5044端口 (logstash 端口) )
# 這個地方的 .log 要保證有幾條測試數據

filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log

output.logstash:
hosts: ['{ip}:5044']
 

# 運行Filebeat

# 請更改下面兩個路徑
{nginx-path} = 本地的日誌文件目錄(映射到容器中 做爲數據源)
{path} = Filebeat配置文件路徑
{ip} =
elasticsearch 地址
docker run--name filebeat--user=root -d --net somenetwork --volume="{nginx-path}:/var/log/nginx/" --volume="{path}/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" --volume="/var/run/docker.sock:/var/run/docker.sock:ro" store/elastic/filebeat:7.1.1
 

# 查看容器啓動狀態
docker ps

 

 

 

啓動成功 

如今去 Kibana 查看數據,已經有數據了 

 

(你們不要拿來命令就執行啊,中間有些路徑之類的要本身改改。)到此 最基本的幾個軟件通信配置 結束了。

還有不少要探索的地方。

待續...
相關文章
相關標籤/搜索