swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6
上篇:https://blog.****.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路径