swarm叢集下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6
阿新 • • 發佈:2018-11-23
上篇:https://blog.csdn.net/qq_35299863/article/details/83658048
之前介紹了叢集下tengine代理elasticsearch叢集,以及kibana實現CI/CD,現在介紹如何做一套ELK叢集
軟體環境:filebeat-5.6.11 + redis-3.2 + logstash-5.6 + kibana-5.6 + es5.6
filebeat是用來收集本機日誌,所以沒用docker,其他軟體都是跑在叢集下的。
1:首先把redis搞起來:filebeat–>redis–>logstash–>es–>kibana
docker映象(由於redis是有狀態的,我需要指定一臺跑我的映象,直接用compose檔案):
命令:docker stack deploy -c redis-compose.yaml test
version: ‘3’
services:
redis:
image: redis:3.2
command: redis-server --appendonly yes
ports:
- “6379:6379”
volumes:
- /var/lib/docker/redis_data:/data
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime
deploy:
replicas: 1
placement:
constraints: [node.hostname == swarmMaster66.cdel.com]
networks:
default:
external:
name: cdel
這個時候redis就可以用了,快吧!
2:接下來是filebeat,下載filebeat-5.6.11-linux-x86_64.tar包
https://www.elastic.co/downloads/past-releases/filebeat-5-6-11
官網下載後解壓,進入目錄,配置filebeat.yml
filebeat.prospectors:
- type: log
paths:- /logs路徑
tags: [“192.168.192.65-tengine”]
- /logs路徑
- type: log
paths:- /logs路徑
tags: [“192.168.192.65-jenkins”]
output.redis:
hosts: [“192.168.192.66”]
port: 6379
key: “test”
編輯儲存,開啟命令:nohup ./filebeat -e -c filebeat.yml > /dev/null &
這個時候keys是有的,當你把logstash配置好後就被消費了
3:接下來是配置logstash
docker pull logstash:5.6
打tag,推到我們自己的映象倉庫,然後把Dockerfile以及配置放在git倉庫
看下配置:
git上完事了,接下來是jenkins上建立一個自由風格的job:
第一次構建先把更新去掉,然後去叢集建立專案,之後放開:
docker service create --name test_logstash --network cdel --update-failure-action rollback harbor.xxx.com/swarm/test_logstash:1
完事了,這個時候logstash已經把日誌傳送給了es叢集下,你可以去kibana下建立索引了
預設這樣的頁面就說明成功啦!!
有可能日誌沒產生,索引暫時沒法建立,一旦有日誌,索引那裡就不會提示報錯了
歡迎留言
- /logs路徑